ALT Linux Distributions development
 help / color / mirror / Atom feed
From: Arseny Maslennikov <arseny@altlinux.org>
To: Distributions development <devel-distro@lists.altlinux.org>
Subject: [devel-distro] sysusers (was: Атомарный образ)
Date: Fri, 31 Jan 2025 17:30:03 +0300
Message-ID: <Z5zeaxPn6Dzdb99E@cello> (raw)
In-Reply-To: <956286cc-0e9c-4cb2-8f06-e9b600a20c4f@udalov.online>

[-- Attachment #1: Type: text/plain, Size: 8521 bytes --]

> > 31.01.2025 17:10, Евгений Синельников пишет:
> > > Дмитрий,
> > > 
> > > спасибо за подробное описание, внятное изложение и полезные ссылки.
> > > 
> > > Думаю, эту историю нужно "переварить". Хотелось бы понять и
> > > осмыслить куда мы движемся и общий прогресс вместе с нами куда
> > > движется.

On Fri, Jan 31, 2025 at 07:29:26PM +0600, Дмитрий wrote:
> В данный момент я считаю что самое важное влияние которое оказывают
> мейнтейнеры и пакетная база в репозитории на такой образ - это следование
> следующим декларативам:
> 
> https://www.freedesktop.org/software/systemd/man/latest/systemd-sysusers.html

Мы (как минимум в моём лице) давно мечтаем переехать на декларативное
описание "системных" UID/GID из пакетов. Но внедрить sysusers — это
задача непростая.

Во-первых, systemd-sysusers никогда не будет поддерживать
https://altlinux.org/tcb по двум причинам:
— потому что они там, в проекте systemd, курят непонятно что[1],
— "ALT is a niche distro"[2] (c) Lennart Poettering.
[1] https://github.com/systemd/systemd/commit/9ab315ccf22a56ce28d442d94c5e4e3c416739c5
[2] https://github.com/systemd/systemd/issues/33787#issuecomment-2296116655
Т. е. для успокоения утилиты grpck, решающей непонятно какую задачу и
лезущей в shadow database непонятно зачем, были проделаны особые усилия,
сделавшие код systemd-sysusers зависящим от реализации shadow. А для tcb
теперь требуются особые усилия, которые Леннарт реально не хочет
ни предпринимать, ни даже сопровождать.

Во-вторых, в альте поддерживается и жизнь без systemd. sysusers может
быть собрана и использована как standalone-утилита, но см. предыдущий
абзац.

Поэтому разбирать sysusers.d/*.conf нужно какой-то своей программой.

В-третьих, нужна будет поддержка со стороны rpm-build и rpm. Если
вызывать sysusers в секции %pre, то для инсталляций со свободным
управлением пакетами (т. е. всех, кроме таких, о которых ваш тред)
большой разницы нет. Пока у меня не сложилось устойчивого мнения о том,
как здесь быть. (Предложения лучше в devel@)

> https://www.freedesktop.org/software/systemd/man/latest/systemd-tmpfiles-setup.service.html

А вот это в ALT успешно применяется. :)

> А ALT в данный момент очень мало пакетов собраны с учетом этих правил.
> Вероятно мне придется проверять каждый пакет которые будет добавлен в
> систему после ее установки и описывать эти правила вручную. Но если все
> пакеты будут собраны с использованием этих правил - переключением между
> образами и обновление будут тривиальной задачей, необходимые юзеры и папки
> буду созданы автоматически и для самовоспроизведения и корректной работы
> единственным важным обновлением будут папки /usr и /etc

Каталоги.
Папки — это mbox/Maildir, а директория — это орган власти в I французской
республике. :)

> 31.01.2025 18:29, Дмитрий пишет:
> > Если я правильно понял вопрос о мейнтейнерах, то для них, по сути,
> > ничего не меняется, когда система на основе |bootc| находится в режиме
> > контейнера с системой можно работать как угодно, используя любые
> > пакетные менеджеры, будь то |apt-get|, |epm| или другие.
> > 
> > В частности, используется пакетная база Sisyphus со всеми её
> > особенностями. Когда система запускается на хостовой машине, появляются
> > некоторые нюансы в работе с ней, но в процессе внесения изменений мы
> > снова оказываемся в контейнерной среде, где можем применять любые
> > встроенные механизмы установки пакетов локально.
> > 
> > Однако, под "чистым" использованием системы следует понимать минимизацию
> > установки пакетов непосредственно в саму систему. Вместо этого
> > рекомендуется опираться на контейнерные установщики, такие как
> > |flatpak|, |brew|, |distrobox| и подобные. Это скорее рекомендация, чем
> > строгая необходимость, но такой подход помогает сохранить систему более
> > предсказуемой и управляемой.
> > 
> > Так же благодаря особенностям сборки, мы можем гибко настраивать образ:
> > добавлять аргументы в загрузку ядра (nvidia), изменять любые
> > конфигурации в /etc (не затронутые пользователем) и многое другое. Это
> > позволяет создавать готовые образы, адаптированные под различные цели и
> > устройства.
> > 
> > По сути главное что меняется -  это доставка пакетов: вместо
> > традиционного подхода используется OCI-контейнер с его слоями и
> > особенностями. Кроме того, мы получаем дополнительные преимущества,
> > такие как хранение всех изменений в виде |ostree| коммитов с
> > возможностью "путешествовать" по ним на этапе загрузки через |GRUB|.
> > Либо путешествовать на разные состояния образа в облаке, так как в в OCI
> > лежит образ целиком или даже в перспективе перемещаться между любыми
> > bootc-совместимыми образами на основе ALT (/var куда переместился home и
> > другие папки не затрагиваются)
> > 
> > Делюсь ссылками:
> > 
> > 1. Концептуальная составляющей такого рода системы
> > https://0pointer.net/blog/fitting-everything-together.html
> > 
> > 2. Об используемых технологиях и перспективах
> > https://containers.github.io/bootable/
> > 
> > 3. В частности документация bootc
> > https://containers.github.io/bootc/
> > 
> > 4. Так же у Red Hat полно документации разной
> > https://developers.redhat.com/articles/2024/09/24/bootc-getting-started-bootable-containers#
> > 
> > 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2025-01-31 14:30 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-31 10:30 [devel-distro] Атомарный образ Дмитрий
2025-01-31 12:29   ` Дмитрий
2025-01-31 13:29     ` Дмитрий
2025-01-31 14:30       ` Arseny Maslennikov [this message]
2025-02-01  1:06         ` [devel-distro] sysusers Vitaly Lipatov
2025-01-31 13:51   ` [devel-distro] Атомарный образ Arseny Maslennikov
2025-01-31 14:20     ` Дмитрий

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z5zeaxPn6Dzdb99E@cello \
    --to=arseny@altlinux.org \
    --cc=devel-distro@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Distributions development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-distro devel-distro/ http://lore.altlinux.org/devel-distro \
		devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com
	public-inbox-index devel-distro

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-distro


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git