Как перевести с OpenRC на systemd?

Можно систему c iso образа перевести на systemd? Пробовал прописывать в use флаг systemd, но все равно для установки systemd не хватает dbus[systemd].

Это нужно в make.conf прописать, глобально. И пересобрать всё, что зацепит - небинарно. И калькоутилиты не факт, что будут корректно работать.

Я в make.conf/custom прописал. Потом сделал emerge -avDN @world.

Этого не достаточно.
Я наверное год назад для фана решил переехать на systemd, правда я всё делал в виртуалке. Получился примерно такой список действий:

  1. Замаскировать строчку INSTALL_MASK в файле/var/db/repos/calculate/profiles/default/make.defaults
  2. Замаскировать строчку с -systemd в файле /var/db/repos/calculate/profiles/default/use.mask
  3. Скопировать данные из каталога /usr/portage/profiles/targets/systemd/. Копируются файлы масок пакетов, юзов и т.д., в каталог /etc/portage/profile/ (будет лучше, если раскидать их по отдельным каталогам, чтоб не было путаницы)
  4. Отредактировать make.conf, выставить USE флаги “systemd udev”, прочие свои хотелки.
  5. Перед emerge -avuND world, нужно скачать файлы portage, т.к. изначально в Calculate Linux они отстутствуют. Скачивается они командой emerge-websync, но перед этим необходимо отредактировать файл /etc/portage/repos.conf/gentoo.conf, в строке sync-type должно стоять webrsync или rsync, но не git, иначе команда не сработает.
  6. Запускаем emerge -avuND world
  7. Скорее всего, будет блокировка пакетов из-за systemd, eudev и sysvinit. Для разрешения конфликта нужно с sysvinit у systemd снять флаг sysv-utils, а eudev удалить из world командой emerge --deselect eudev.
  8. Сделать ссылку на файл ln -sf /proc/self/mounts /etc/mtab
  9. Можно собрать Gentoo-sources, т.к. там просто одной галкой можно включить поддержку systemd
  10. Запустить systemctl preset-all и systemd-machine-id-setup
1 Like