<?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: заметки с тегом astralinux</title>
<link>https://blog.m9k.space/tags/astralinux/</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>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>