「OpenRC」の版間の差分
細 (1版 をインポートしました) |
|||
1行目: | 1行目: | ||
[[Category:ブートプロセス]] |
[[Category:ブートプロセス]] |
||
[[en:OpenRC]] |
[[en:OpenRC]] |
||
+ | [[ru:OpenRC]] |
||
− | {{Note|デフォルトでは Arch は [[systemd|systemd]] を使用しています。OpenRC を使う場合、助けを求める時はそのことを明記して下さい。}} |
||
+ | {{Related articles start}} |
||
+ | {{Related|eudev}} |
||
+ | {{Related|init}} |
||
+ | {{Related|init 比較表}} |
||
+ | {{Related|SysVinit}} |
||
+ | {{Related articles end}} |
||
+ | {{Warning|デフォルトでは Arch は [[systemd]] を使用しています。OpenRC を使う場合、助けを求める時はそのことを明記して下さい。}} |
||
OpenRC は Gentoo の開発者によってメンテナンスされている init システムです。OpenRC は依存関係を前提とした init システムで、sysvinit などの init プログラムが動いているシステムで動作します。OpenRC は sysvinit を置き換えるものではありません。 |
OpenRC は Gentoo の開発者によってメンテナンスされている init システムです。OpenRC は依存関係を前提とした init システムで、sysvinit などの init プログラムが動いているシステムで動作します。OpenRC は sysvinit を置き換えるものではありません。 |
||
7行目: | 14行目: | ||
== インストール == |
== インストール == |
||
− | OpenRC は [[ |
+ | OpenRC は [[AUR]] から利用可能です。{{AUR|openrc}} または {{AUR|openrc-git}} パッケージを選んでインストールできます。また、{{AUR|openrc-arch-services-git}} (arch で openrc を使うために必要なサービスファイルを提供します) と {{AUR|openrc-sysvinit}} (伝統的な sysvinit に多少のパッチがあてられたバージョン) もインストールする必要があります。initscripts と互換性を保つために、{{AUR|openrc-sysvinit}} は sysvinit の init バイナリを {{ic|/usr/bin/init-openrc}} としてインストールします。 |
− | パッケージはデフォルトの位置である {{Ic|/etc}} ではなく {{Ic|/etc/openrc}} の元にインストールされるので、ユーザーは必要に応じて initscripts や [[ |
+ | パッケージはデフォルトの位置である {{Ic|/etc}} ではなく {{Ic|/etc/openrc}} の元にインストールされるので、ユーザーは必要に応じて initscripts や [[systemd]] に切り替えることが可能です。 |
== 設定 == |
== 設定 == |
||
15行目: | 22行目: | ||
OpenRC を使って起動するには {{Ic|1=init=/usr/bin/init-openrc}} を使用しているブートローダーの設定のカーネル行に追加してください。systemd に戻したい場合は、設定したところを {{ic|1=init=/usr/lib/systemd/systemd}} に変えて下さい。 |
OpenRC を使って起動するには {{Ic|1=init=/usr/bin/init-openrc}} を使用しているブートローダーの設定のカーネル行に追加してください。systemd に戻したい場合は、設定したところを {{ic|1=init=/usr/lib/systemd/systemd}} に変えて下さい。 |
||
− | OpenRC の設定に関する詳細な資料は、[http://www.calculate-linux.org/main/en/openrc_manuals man ページ] を見たり、 |
+ | OpenRC の設定に関する詳細な資料は、[http://www.calculate-linux.org/main/en/openrc_manuals man ページ] を見たり、[http://wiki.gentoo.org/wiki/OpenRC gentoo wiki] を参照してください。 |
udev サービスはデフォルトでは有効になっていないので注意してください。有効にするには、次を実行してください: |
udev サービスはデフォルトでは有効になっていないので注意してください。有効にするには、次を実行してください: |
||
# rc-update add udev sysinit |
# rc-update add udev sysinit |
||
+ | |||
+ | === サービス === |
||
+ | |||
+ | OpenRC のサービスは root で {{ic|rc-update add ''service_name'' ''runlevel''}} を実行することで有効にできます。最低でも以下のサービスを有効化することが推奨されます: |
||
+ | {| class="wikitable" |
||
+ | ! サービス名 |
||
+ | ! [https://wiki.gentoo.org/wiki/OpenRC#Named_runlevels ランレベル] |
||
+ | ! 説明 |
||
+ | |- |
||
+ | | udev |
||
+ | | sysinit |
||
+ | | デバイスのホットプラグ |
||
+ | |- |
||
+ | | alsa |
||
+ | | default |
||
+ | | [[ALSA]] の状態 |
||
+ | |- |
||
+ | | acpid |
||
+ | | default |
||
+ | | ACPI イベント |
||
+ | |- |
||
+ | | dbus |
||
+ | | default |
||
+ | | メッセージバス |
||
+ | |- |
||
+ | | dcron |
||
+ | | default |
||
+ | | スケジュール |
||
+ | |- |
||
+ | | syslog-ng |
||
+ | | default |
||
+ | | システムログ |
||
+ | |} |
||
+ | |||
+ | [https://wiki.gentoo.org/wiki/Systemd#Native_services Native services] や[[デーモン]]も参照してください。 |
||
=== ネットワーク === |
=== ネットワーク === |
||
34行目: | 76行目: | ||
network サービスはデフォルトで起動時のランレベルに追加されるため、これ以外の設定は必要ありません。 |
network サービスはデフォルトで起動時のランレベルに追加されるため、これ以外の設定は必要ありません。 |
||
− | また、[[ |
+ | また、[[NetworkManager]] や [[dhcpcd]]、さらに {{AUR|netcfg}} などを使うことも可能です。それぞれのサービスを有効にしてください。 |
− | 一般的な、ネットワークの設定の詳細においては |
+ | 一般的な、ネットワークの設定の詳細においては[[ネットワーク設定]]を見て下さい。 |
=== ログ === |
=== ログ === |
||
68行目: | 110行目: | ||
OpenRC でロケールを設定する方法が備わっていません。しかしながら、{{ic|/etc/locale.conf}} ファイルを使って設定することが可能です。このファイルは {{ic|/etc/profile.d/locale.sh}} で読み込まれます。 |
OpenRC でロケールを設定する方法が備わっていません。しかしながら、{{ic|/etc/locale.conf}} ファイルを使って設定することが可能です。このファイルは {{ic|/etc/profile.d/locale.sh}} で読み込まれます。 |
||
− | ロケールの設定に関する詳細は、[[ |
+ | ロケールの設定に関する詳細は、[[ロケール]]を参照してください。 |
== トラブルシューティング == |
== トラブルシューティング == |
||
100行目: | 142行目: | ||
# Flush all pending disk writes now |
# Flush all pending disk writes now |
||
sync; sync |
sync; sync |
||
+ | |||
+ | === /etc/sysctl.conf not found === |
||
+ | |||
+ | デフォルトで、sysctl の設定をロードするために {{ic|sysctl --system}} が実行されます [https://github.com/OpenRC/openrc/blob/master/init.d/sysctl.Linux.in#L17]。Arch では存在しない {{ic|/etc/sysctl.conf}} も読み込まれます [https://www.archlinux.org/news/deprecation-of-etcsysctlconf/]。 |
||
+ | |||
+ | ファイルが見つからないというエラーを表示させたくない場合、ファイルを作成してください: |
||
+ | |||
+ | # touch /etc/sysctl.conf |
||
+ | |||
+ | == OpenRC でデスクトップ環境を使う == |
||
+ | |||
+ | ''OpenRC'' で[[デスクトップ環境]]を使う場合、ConsoleKit が役に立ちます。[https://gist.github.com/ad73f9087f39d7cadd8e サービス] を {{ic|/etc/openrc/init.d}} にインストールして、有効化してください: |
||
+ | |||
+ | # rc-update add consolekit default |
||
+ | |||
+ | 詳しくは [[ConsoleKit]] を参照。 |
||
== systemd との比較 == |
== systemd との比較 == |
||
122行目: | 180行目: | ||
* [[Wikipedia:OpenRC]] |
* [[Wikipedia:OpenRC]] |
||
* [https://bbs.archlinux.org/viewtopic.php?id=152606 Arch 上の OpenRC に関するフォーラムスレッド] |
* [https://bbs.archlinux.org/viewtopic.php?id=152606 Arch 上の OpenRC に関するフォーラムスレッド] |
||
+ | * [http://blog.notfoss.com/posts/openrc-on-arch-linux/ Blog: OpenRC on Arch Linux] |
2015年11月11日 (水) 22:51時点における版
OpenRC は Gentoo の開発者によってメンテナンスされている init システムです。OpenRC は依存関係を前提とした init システムで、sysvinit などの init プログラムが動いているシステムで動作します。OpenRC は sysvinit を置き換えるものではありません。
目次
インストール
OpenRC は AUR から利用可能です。openrcAUR または openrc-gitAUR パッケージを選んでインストールできます。また、openrc-arch-services-gitAUR (arch で openrc を使うために必要なサービスファイルを提供します) と openrc-sysvinitAUR (伝統的な sysvinit に多少のパッチがあてられたバージョン) もインストールする必要があります。initscripts と互換性を保つために、openrc-sysvinitAUR は sysvinit の init バイナリを /usr/bin/init-openrc
としてインストールします。
パッケージはデフォルトの位置である /etc
ではなく /etc/openrc
の元にインストールされるので、ユーザーは必要に応じて initscripts や systemd に切り替えることが可能です。
設定
OpenRC を使って起動するには init=/usr/bin/init-openrc
を使用しているブートローダーの設定のカーネル行に追加してください。systemd に戻したい場合は、設定したところを init=/usr/lib/systemd/systemd
に変えて下さい。
OpenRC の設定に関する詳細な資料は、man ページ を見たり、gentoo wiki を参照してください。
udev サービスはデフォルトでは有効になっていないので注意してください。有効にするには、次を実行してください:
# rc-update add udev sysinit
サービス
OpenRC のサービスは root で rc-update add service_name runlevel
を実行することで有効にできます。最低でも以下のサービスを有効化することが推奨されます:
サービス名 | ランレベル | 説明 |
---|---|---|
udev | sysinit | デバイスのホットプラグ |
alsa | default | ALSA の状態 |
acpid | default | ACPI イベント |
dbus | default | メッセージバス |
dcron | default | スケジュール |
syslog-ng | default | システムログ |
Native services やデーモンも参照してください。
ネットワーク
ネットワークを立ち上げて動かす方法は複数存在します。一つは /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"
network サービスはデフォルトで起動時のランレベルに追加されるため、これ以外の設定は必要ありません。
また、NetworkManager や dhcpcd、さらに netcfgAUR などを使うことも可能です。それぞれのサービスを有効にしてください。
一般的な、ネットワークの設定の詳細においてはネットワーク設定を見て下さい。
ログ
syslog-ng
syslog-ng を使う場合、/etc/syslog-ng/syslog-ng.conf
内の次の行をコメントアウトしてください:
unix-dgram("/run/systemd/journal/syslog")
そして、代わりに次の行を追加してください:
unix-dgram("/dev/log");
起動時のログ
OpenRC の起動時のログはデフォルトで無効になっています。有効にするには、/etc/openrc/rc.conf
内の次の行をアンコメントしてください:
#rc_logger="YES"
ホストネーム
OpenRC は /etc/openrc/conf.d/hostname
からホストネームを設定します。
以下は設定ファイルの例:
/etc/openrc/conf.d/hostname
hostname="myhostname"
モジュールの自動ロード
OpenRC は /etc/modules-load.d/
フォルダを使用せず、そのかわりに /etc/openrc/conf.d/modules
を使います。
このファイルに以下のように行を追加してください:
modules=acpi_cpufreq
ロケール
OpenRC でロケールを設定する方法が備わっていません。しかしながら、/etc/locale.conf
ファイルを使って設定することが可能です。このファイルは /etc/profile.d/locale.sh
で読み込まれます。
ロケールの設定に関する詳細は、ロケールを参照してください。
トラブルシューティング
/tmp のアンマウント時にエラーが起こる
システムをシャットダウンするときに、以下のようなエラーメッセージが表示されることがあります:
* Unmounting /tmp ... * in use but fuser finds nothing [ !! ]
この問題は /etc/openrc/conf.d/localmount
に以下を追加することで修正できます:
no_umounts="/tmp"
IPv6 が無効にできない
OpenRC は /etc/openrc
の sysconf ディレクトリにインストールした場合に起こります。
/etc/openrc/sysctl.d
下のファイル (拡張子は .conf にしてください) に以下を記述することで修正できます:
# Disable ipv6 net.ipv6.conf.all.disable_ipv6 = 1
シャットダウン中に読み込み専用での root の再マウントが失敗する
この問題が発生する場合、/etc/openrc/init.d/mount-ro
を編集して以下を:
telinit u
次の行の後に記述してください:
# Flush all pending disk writes now sync; sync
/etc/sysctl.conf not found
デフォルトで、sysctl の設定をロードするために sysctl --system
が実行されます [1]。Arch では存在しない /etc/sysctl.conf
も読み込まれます [2]。
ファイルが見つからないというエラーを表示させたくない場合、ファイルを作成してください:
# touch /etc/sysctl.conf
OpenRC でデスクトップ環境を使う
OpenRC でデスクトップ環境を使う場合、ConsoleKit が役に立ちます。サービス を /etc/openrc/init.d
にインストールして、有効化してください:
# rc-update add consolekit default
詳しくは ConsoleKit を参照。
systemd との比較
systemd | OpenRC | 説明 |
---|---|---|
systemctl list-units |
rc-status |
動作中のサービスの状態を表示 |
systemctl --failed |
rc-status --crashed |
失敗した、クラッシュしたユニット・サービスの確認 |
systemctl --all |
rc-update -v show |
利用できるユニット・サービスを全て表示 |
systemctl {start,stop,restart,status} xyz |
/etc/openrc/init.d/xyz {start,stop,restart,status} |
ユニット・サービスをすぐに起動・停止・再起動・状態を表示 |
systemctl {enable,disable} xyz |
rc-update {add,del} xyz |
サービス・ユニットを追加もしくは削除 |
この表は この投稿 からの引用です。