「OpenRC」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(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 は [[AUR|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}} としてインストールします。
+
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 や [[systemd|systemd]] に切り替えることが可能です。
+
パッケージはデフォルトの位置である {{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 ページ] を見たり、[http://www.gentoo.org/doc/en/openrc-migration.xml gentoo guide] や [http://wiki.gentoo.org/wiki/OpenRC gentoo wiki] を参照してください。
+
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|NetworkManager]] や [[dhcpcd|dhcpcd]]、さらに {{AUR|netcfg}} などを使うことも可能です。それぞれのサービスを有効にしてください。
+
また、[[NetworkManager]] や [[dhcpcd]]、さらに {{AUR|netcfg}} などを使うことも可能です。それぞれのサービスを有効にしてください。
   
一般的な、ネットワークの設定の詳細においては [[Network Configuration]] を見て下さい。
+
一般的な、ネットワークの設定の詳細においては[[ネットワーク設定]]を見て下さい。
   
 
=== ログ ===
 
=== ログ ===
68行目: 110行目:
 
OpenRC でロケールを設定する方法が備わっていません。しかしながら、{{ic|/etc/locale.conf}} ファイルを使って設定することが可能です。このファイルは {{ic|/etc/profile.d/locale.sh}} で読み込まれます。
 
OpenRC でロケールを設定する方法が備わっていません。しかしながら、{{ic|/etc/locale.conf}} ファイルを使って設定することが可能です。このファイルは {{ic|/etc/profile.d/locale.sh}} で読み込まれます。
   
ロケールの設定に関する詳細は、[[Locale|ここ]]を参照してください。
+
ロケールの設定に関する詳細は、[[ロケール]]を参照してください。
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
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時点における版

関連記事

警告: デフォルトでは Arch は systemd を使用しています。OpenRC を使う場合、助けを求める時はそのことを明記して下さい。

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 サービスはデフォルトで起動時のランレベルに追加されるため、これ以外の設定は必要ありません。

また、NetworkManagerdhcpcd、さらに netcfgAUR などを使うことも可能です。それぞれのサービスを有効にしてください。

一般的な、ネットワークの設定の詳細においてはネットワーク設定を見て下さい。

ログ

syslog-ng

syslog-ng を使う場合、/etc/syslog-ng/syslog-ng.conf 内の次の行をコメントアウトしてください:

unix-dgram("/run/systemd/journal/syslog")

そして、代わりに次の行を追加してください:

unix-dgram("/dev/log");
ノート: この変更を行わないと syslog-ng が起動しないため何もログが残りません。

起動時のログ

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"
ノート: この問題は tmp が tmpfs でマウントされている場合のみ発生します。

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 サービス・ユニットを追加もしくは削除

この表は この投稿 からの引用です。

外部リンク