OpenRC (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи OpenRC. Дата последней синхронизации: 3 февраля 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Важно: Arch Linux официально поддерживает только systemd. При обращении за поддержкой, пожалуйста, укажите, что пользуетесь OpenRC

OpenRC - менеджер служб, поддерживаемый разработчиками Gentoo. Это система инициализации на основе зависимостей, которая работает вместе с программой инициализации SysVinit.

Установка

OpenRC и сопутствующие пакеты доступны в AUR. Для получения подробной информации о компонентах инициализации смотрите Init.

Установите пакет openrcAUR или openrc-gitAUR. С версии 0.25 OpenRC предоставляет собственный init (/usr/bin/openrc-init). В качестве альтернативы можно использовать busybox. Файлы сервисов содержатся в пакете openrc-arch-services-gitAUR.

Для поддержки совместимости с initscripts-forkAUR, файлы настроек будут установлены в /etc/openrc/. Бинарный sysvinit init устанавливается в /usr/bin/openrc-init для совместимости с systemd-sysvcompat или подобных пакетов.

Загрузка

Для загрузки с OpenRC, добавьте init=/usr/bin/openrc-init в параметры ядра. Чтобы вернуться к systemd, удалите этот параметр ядра.

Каталог /etc/openrc/conf.d, и файл /etc/openrc/rc.d используются для настройки.

Настройка

Для получения общей информации о настройке OpenRC смотрите:

Подготовка

Смотрите Init#Configuration.

Службы

Службы OpenRC включаются от имени суперпользователя (root) используя rc-update add имя службы runlevel. По крайней мере рекомендуется включить следующие службы:

Имя службы Runlevel Описание
udev sysinit Устройство горячего подключения
alsa default ALSA state
acpid default ACPI events
dbus default Шина сообщений
dcron default Планировщик
syslog-ng default Системные журналы (логи)

Смотрите также Native services и демоны.

Сеть

Для общей информации по сети смотрите Network configuration.

Сеть настраивается с помощью newnet. [1] Измените файл /etc/openrc/conf.d/network; поддерживаются обе команды ip (iproute2) и ifconfig (net-tools). Ниже приведён пример с использованием ip.

ip_eth0="192.168.1.2/24"
defaultiproute="via 192.168.1.1"
ifup_eth0="ip link set \$int mtu 1500"

Сетевой сервис добавляется в загрузочный уровень по умолчанию, так что дальнейшие действия не требуются.

Примечание: Вы также можете воспользоваться NetworkManager, dhcpcd или netcfgAUR включая соответствующие сервисы. netcfgAUR имитирует поведение netctl (смотрите [2] если вы хотите включать профили соединения при загрузке - требующие wpa_actiond). Вы можете проконсультироваться с официальной документацией или старой wiki документацией (последняя версия 2012-05-13)

Логи загрузки

Чтобы включить ведение журнала загрузки, раскомментируйте строку rc_logger="YES" в /etc/openrc/rc.conf. Когда он включен, журналы загрузки хранятся в /var/log/rc.log

Имя хоста (Hostname)

OpenRC устанавливает имя хоста из /etc/openrc/conf.d/hostname. Файл выглядит следующим образом:

# Set to the hostname of this machine
hostname="myhostname"

Модули ядра

OpenRC использует /etc/openrc/conf.d/modules вместо /etc/modules-load.d. Например:

/etc/openrc/conf.d/modules
# Вы должны ознакомится с настройками и документацией вашего ядра
# для списка модулей и их параметров.

modules="vboxdrv acpi_cpufreq"

Локаль

Раскладка клавиатуры настраивается с помощью /etc/openrc/conf.d/keymaps и /etc/openrc/conf.d/consolefont. Вы также можете настроить параметры через файл /etc/locale.conf, который получается с помощью /etc/profile.d/locale.sh.

Смотрите [3] и Locale для подробностей.

Решение проблем

Ошибка при размонтировании /tmp

При выключении системы, вы можете получить сообщение об ошибке, например:

* Unmounting /tmp ... 
* in use but fuser finds nothing [ !! ]

Это можно исправить путем добавления

no_umounts="/tmp"

в /etc/openrc/conf.d/localmount

Примечание: Эта проблема проявляется только если ваш tmp примонтирован как tmpfs.

Не работает отключение IPv6

Одним из вариантов является добавление:

# Disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1

в файле с расширением .conf в /etc/openrc/sysctl.d

Во время выключения, и перемонтирования раздела root, происходят ошибки чтения

Если такое происходит, отредактируйте файл /etc/openrc/init.d/mount-ro и поместите:

telinit u

после следующей строки:

# Flush all pending disk writes now
sync; sync

Не найден /etc/sysctl.conf

По умолчанию, sysctl --system вызывается для загрузки настройки sysctl. [4][устаревшая ссылка 2020-08-04] Он содержит файл /etc/sysctl.conf, который удалён в Arch. [5]

Чтобы предотвратить ошибку "файл не найден", создайте файл:

# touch /etc/sysctl.conf

Использование OpenRC с окружением рабочего стола (DE)

Если используется OpenRC с окружением рабочего стола, может помочь ConsoleKit. Установите сервис в /etc/openrc/init.d, и включите его:

# rc-update add consolekit default

Для большей информации смотрите ConsoleKit.

Смотрите также