<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>M9K blog: заметки с тегом debian</title>
<link>https://blog.m9k.space/tags/debian/</link>
<description>Заметки обо всём: devops, lifestyle, культура.</description>
<author>M</author>
<language>ru</language>
<generator>E2 (v3877; Aegea)</generator>

<itunes:owner>
<itunes:name>M</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Заметки обо всём: devops, lifestyle, культура.</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Proxmox 7 + Debian 12|13 LXC Template</title>
<guid isPermaLink="false">210</guid>
<link>https://blog.m9k.space/all/proxmox-7-debian-12-13-lxc-template/</link>
<pubDate>Sat, 07 Feb 2026 03:27:43 +0000</pubDate>
<author>M</author>
<comments>https://blog.m9k.space/all/proxmox-7-debian-12-13-lxc-template/</comments>
<description>
&lt;p&gt;У Proxmox есть неплохая обратная совместимость с более свежими версиями LXC-контейнеров по сравнению с той версией Debian, на которой основан текущий релиз. В нашем случае используется Proxmox 7 (на базе Debian 11).&lt;/p&gt;
&lt;p&gt;При попытке создать контейнер получаем ошибку вида:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;TASK ERROR: unable to create CT 100 - unsupported debian version '1X'&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Для обхода проблемы правим файл&lt;br /&gt;
/usr/share/perl5/PVE/LXC/Setup/Debian.pm в двух местах.&lt;/p&gt;
&lt;p&gt;Обновляем карту версий:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;my $version_map = { 'stretch/sid' =&amp;gt; 9.1, 'buster/sid' =&amp;gt; 10, 'bullseye/sid'=&amp;gt; 11, 'bookworm/sid'=&amp;gt; 12, 'trixie/sid' =&amp;gt; 13, 'kali-rolling'=&amp;gt; 11, };&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Расширяем допустимый диапазон версий:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;if !($version &amp;gt;= 4 &amp;amp;&amp;amp; $version &amp;lt;= 14);&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;После этого перезапускаем связанные демоны:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;systemctl restart pvedaemon 
systemctl restart pveproxy&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Готово, контейнер успешно создаётся.&lt;/p&gt;
&lt;p&gt;Разумеется, это грязный хак: при обновлениях Proxmox изменения будут перезаписаны, так что решение подходит только как временное.&lt;/p&gt;
</description>
</item>

<item>
<title>CouchDB, Debian, AstraLinux, Docker и все-все-все</title>
<guid isPermaLink="false">201</guid>
<link>https://blog.m9k.space/all/skreschivaem-uzha-i-ezha/</link>
<pubDate>Thu, 14 Aug 2025 10:40:09 +0000</pubDate>
<author>M</author>
<comments>https://blog.m9k.space/all/skreschivaem-uzha-i-ezha/</comments>
<description>
&lt;p&gt;Возникла необходимость запустить Couchdb в контейнере, где базовая ось (и базовые же пакеты) должны быть очень-очень свежими, в противной случай контейнер не проходит встроенную проверку на безопасность.&lt;br /&gt;
Стандартный официальный образ собран на базе Debian 12.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;FROM debian:bookworm-slim&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Простая замена базового образа на&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;FROM debian:trixie-slim&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;приводит к тому, что контейнер не собирается по зависимостям.&lt;br /&gt;
Смотрим официальную репу в части зависимостей и видим прекрасное — libmozjs-78-0 (&gt;= 78.15.0). Пробуем ставить свежую версию, которая есть в репах — не помогает, пакет couchdb принципиально требует libmozjs-78-0.&lt;/p&gt;
&lt;p&gt;Ок, скрещиваем ежа и ужа.&lt;/p&gt;
&lt;p&gt;У debian есть механизм apt-pinning. Это механизм, позволяющий задать приоритеты для версий пакетов из разных источников (репозиториев, release-веток, PPA), чтобы фиксировать версию, запрещать обновление или предпочитать конкретный источник.&lt;/p&gt;
&lt;p&gt;Коротко приоритеты делятся на:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt; 0 — никогда не устанавливать.&lt;/li&gt;
&lt;li&gt;1..99 — ставить только при явном указании версии.&lt;/li&gt;
&lt;li&gt;100 — приоритет уже установленной версии.&lt;/li&gt;
&lt;li&gt;500 — дефолт для неприоритетных источников.&lt;/li&gt;
&lt;li&gt;990 — приоритет для целевого релиза (-t), либо если явно указан release.&lt;/li&gt;
&lt;li&gt;&gt;1000 — разрешает понижение версии (downgrade) к закреплённой.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Добавляет в наш Dockerfile:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;RUN echo &amp;quot;deb http://deb.debian.org/debian bookworm main&amp;quot; &amp;gt; /etc/apt/sources.list.d/bookworm.list &amp;amp;&amp;amp; \
    echo &amp;quot;Package: *\nPin: release n=bookworm\nPin-Priority: 500&amp;quot; &amp;gt; /etc/apt/preferences.d/bookworm &amp;amp;&amp;amp; \
    echo &amp;quot;Package: *\nPin: release n=trixie\nPin-Priority: 600&amp;quot; &amp;gt; /etc/apt/preferences.d/trixie &amp;amp;&amp;amp; \
    echo &amp;quot;deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ bookworm main&amp;quot; \
            &amp;gt; /etc/apt/sources.list.d/couchdb.list &amp;amp;&amp;amp; \
    apt-get update&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Основная часть пакетов ставится из свежей репы, часть, которых в ней нет — из старых.&lt;/p&gt;
</description>
</item>


</channel>
</rss>