「Eudev」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(1版 をインポートしました)
1行目: 1行目:
 
[[Category:ハードウェア検出とトラブルシューティング]]
 
[[Category:ハードウェア検出とトラブルシューティング]]
 
[[en:Eudev]]
 
[[en:Eudev]]
  +
{{Warning|udev を置き換えるために、このパッケージは [[systemd]] を削除します。そのため、eudev をインストールする前に [[OpenRC]], [[runit]], [[SysVinit]] など他の init システムをインストールして、その init システムで問題なく起動できるようにしておく必要があります。}}
{{ic|eudev}} は Gentoo プロジェクトによって開始された [[udev|udev]] のフォークであり、[[systemd|systemd]] や [[SysVinit|sysvinit]] など、特定のシステム初期化から独立することを目標にしています。基本的に [[OpenRC|OpenRC]] と一緒に使うことを念頭に置いて作られていますが、[[runit]] や [[SysVinit|sysvinit]] など他の init システムで使うことも可能です。
 
  +
{{ic|eudev}} は Gentoo プロジェクトによって開始された [[udev]] のフォークであり、[[systemd]] や [[SysVinit]] など、特定のシステム初期化から独立することを目標にしています。基本的に [[OpenRC]] と一緒に使うことを念頭に置いて作られていますが、[[runit]] や [[SysVinit]] など他の init システムで使うことも可能です。
   
 
== インストール ==
 
== インストール ==
   
[[Arch User Repository|Arch User Repository]] から {{AUR|eudev}} をインストールしてください。また、{{AUR|eudev-git}} や {{AUR|eudev-openrc}} を使うこともできます。それぞれ依存パッケージは異なっています。
+
[[Arch User Repository]] から {{AUR|eudev}} をインストールしてください。また、{{AUR|eudev-git}} を使うこともできます。
   
  +
{{Note|衝突のために AUR から eudev パッケージを直接インストールすることができない場合があります。衝突を迂回するには、{{AUR|eudev}} をビルドしてから[[Pacman ヒント#カスタムローカルリポジトリ|ローカルリポジトリ]]に追加して、{{ic|makepkg -di}} を使って AUR から {{AUR|eudev-systemdcompat}} をビルド・インストールします ('''-d''' はビルド時の依存関係を無視します)。そのときに eudev が依存パッケージとして一緒にインストールされます。}}
udev を置き換えるために、このパッケージは [[systemd|systemd]] を削除します。そのため、eudev をインストールする前に [[OpenRC|OpenRC]], [[runit]], [[SysVinit|sysvinit]] など他の init システムをインストールして、その init システムで問題なく起動できるようにしておく必要があります。
 
   
  +
=== libsystemd ===
== トラブルシューティング ==
 
   
  +
このパッケージは {{Pkg|libsystemd}} も置き換えるので削除してしまいます。足りないライブラリは以下のパッケージから取得することができます:
=== 一般 ===
 
  +
* {{AUR|libsystemd-standalone}} — 個々のパッケージに分割されたライブラリのパッケージグループ。
  +
* {{AUR|eudev-systemdcompat}} — 公式の libsystemd パッケージの必要部分だけを取り出して足りないライブラリをインストールするパッケージ。
   
  +
また、systemd の依存関係を補充するために {{AUR|systemd-dummy}} もインストールすると良いでしょう。
*eudev が起動しない
 
   
  +
さらに、libsystemd にリンクしているパッケージは [[ABS]] を使ってリビルドするか、[[AUR]] から {{ic|nosystemd}} が付くパッケージをインストールします。
eudev の init スクリプトを確認して (udev にエイリアスされています、例えば OpenRC でセットアップした場合 /etc/openrc/init.d/udev になります) コマンドが /usr/bin/udev になってることを確認してください。
 
   
  +
== systemd パッケージの置き換え ==
*D-Bus が起動しない
 
   
  +
''systemd'' パッケージには init システムと systemd-udev 以外にも複数のコンポーネントが含まれています:
AUR パッケージ {{AUR|dbus-nosystemd}} をインストールして D-Bus が起動時に実行されるように init システムで設定してください。
 
   
  +
* [[Xorg]] などのソフトウェアから[[Wikipedia:ja:動的リンク|リンク]]されている systemd ライブラリ。[[#libsystemd]] を見て下さい。
*netctl が動作しない
 
  +
* システムの起動時に一時ファイルを作成する ''systemd-tmpfiles''。
  +
* [[pacman]] の {{ic|.install}} ファイルでシステムのユーザーやグループを設定するための ''systemd-sysusers''。
  +
  +
新しい init で起動しないで systemd を削除した場合、通常の方法では再起動できなくなります。[[Wikipedia:ja:マジックSysRqキー|SysRq キー]]を有効にしてください:
  +
  +
# sysctl kernel.sysrq=1
  +
  +
そして {{ic|Alt-SysRq-S}}, {{ic|Alt-SysRq-U}}, {{ic|Alt-SysRq-B}} を連続で押して下さい。マウントされているファイルシステムが全て同期され、ディスクを全て読み取り専用で再マウント、システムを再起動します。最後のコマンドが使えない場合、{{ic|Alt-SysRq-O}} を押して電源を切って下さい。システムをリモートから操作している場合、再起動を実行する前にファイルシステムを同期して読み取り専用で再マウントする必要があります (ファイルシステムは適当に編集してください):
  +
# sync; mount -f /home -o remount,ro ; sync; mount -f / -o remount,ro
  +
# echo b >| /proc/sysrq-trigger
  +
  +
== トラブルシューティング ==
  +
  +
=== 起動しない ===
  +
  +
eudev の init スクリプトを確認して (udev にエイリアスされています、例えば OpenRC でセットアップした場合 {{ic|/etc/openrc/init.d/udev}} になります) コマンドが {{ic|/usr/bin/udev}} になってることを確認してください。
  +
  +
=== netctl ===
   
 
netctl は systemd ライブラリに依存しているため互換性がありません、代わりに、AUR の {{AUR|netcfg}} を使って下さい。
 
netctl は systemd ライブラリに依存しているため互換性がありません、代わりに、AUR の {{AUR|netcfg}} を使って下さい。
   
=== OpenRC 固有問題 ===
+
=== デバイス命名 ===
  +
  +
ネットワークデバイスの名前は systemd 以前の形式に戻ります: 例えば {{ic|wlp1s0}} は {{ic|wlan0}} に名前が変わります。ネットワーク設定を適切に設定しなおして下さい。
  +
  +
=== sysctl ===
  +
  +
{{Pkg|systemd}} を削除すると {{ic|/etc/sysctl.d/}} のファイルは消えてしまいます。OpenRC は {{ic|/etc/sysctl.conf}} を読み込みます。
   
  +
== 参照 ==
*NetworkManager が動作しない
 
   
  +
* [https://github.com/gentoo/eudev Github: Eudev]
AUR に systemd フリーのバージョンが存在します、{{AUR|networkmanager-openrc}}
 

2015年6月21日 (日) 15:53時点における版

警告: udev を置き換えるために、このパッケージは systemd を削除します。そのため、eudev をインストールする前に OpenRC, runit, SysVinit など他の init システムをインストールして、その init システムで問題なく起動できるようにしておく必要があります。

eudev は Gentoo プロジェクトによって開始された udev のフォークであり、systemdSysVinit など、特定のシステム初期化から独立することを目標にしています。基本的に OpenRC と一緒に使うことを念頭に置いて作られていますが、runitSysVinit など他の init システムで使うことも可能です。

インストール

Arch User Repository から eudevAUR をインストールしてください。また、eudev-gitAUR を使うこともできます。

ノート: 衝突のために AUR から eudev パッケージを直接インストールすることができない場合があります。衝突を迂回するには、eudevAUR をビルドしてからローカルリポジトリに追加して、makepkg -di を使って AUR から eudev-systemdcompatAUR をビルド・インストールします (-d はビルド時の依存関係を無視します)。そのときに eudev が依存パッケージとして一緒にインストールされます。

libsystemd

このパッケージは libsystemd も置き換えるので削除してしまいます。足りないライブラリは以下のパッケージから取得することができます:

  • libsystemd-standaloneAUR — 個々のパッケージに分割されたライブラリのパッケージグループ。
  • eudev-systemdcompatAUR — 公式の libsystemd パッケージの必要部分だけを取り出して足りないライブラリをインストールするパッケージ。

また、systemd の依存関係を補充するために systemd-dummyAUR もインストールすると良いでしょう。

さらに、libsystemd にリンクしているパッケージは ABS を使ってリビルドするか、AUR から nosystemd が付くパッケージをインストールします。

systemd パッケージの置き換え

systemd パッケージには init システムと systemd-udev 以外にも複数のコンポーネントが含まれています:

  • Xorg などのソフトウェアからリンクされている systemd ライブラリ。#libsystemd を見て下さい。
  • システムの起動時に一時ファイルを作成する systemd-tmpfiles
  • pacman.install ファイルでシステムのユーザーやグループを設定するための systemd-sysusers

新しい init で起動しないで systemd を削除した場合、通常の方法では再起動できなくなります。SysRq キーを有効にしてください:

# sysctl kernel.sysrq=1

そして Alt-SysRq-S, Alt-SysRq-U, Alt-SysRq-B を連続で押して下さい。マウントされているファイルシステムが全て同期され、ディスクを全て読み取り専用で再マウント、システムを再起動します。最後のコマンドが使えない場合、Alt-SysRq-O を押して電源を切って下さい。システムをリモートから操作している場合、再起動を実行する前にファイルシステムを同期して読み取り専用で再マウントする必要があります (ファイルシステムは適当に編集してください):

# sync; mount -f /home -o remount,ro ; sync; mount -f / -o remount,ro
# echo b >| /proc/sysrq-trigger

トラブルシューティング

起動しない

eudev の init スクリプトを確認して (udev にエイリアスされています、例えば OpenRC でセットアップした場合 /etc/openrc/init.d/udev になります) コマンドが /usr/bin/udev になってることを確認してください。

netctl

netctl は systemd ライブラリに依存しているため互換性がありません、代わりに、AUR の netcfgAUR を使って下さい。

デバイスの命名

ネットワークデバイスの名前は systemd 以前の形式に戻ります: 例えば wlp1s0wlan0 に名前が変わります。ネットワーク設定を適切に設定しなおして下さい。

sysctl

systemd を削除すると /etc/sysctl.d/ のファイルは消えてしまいます。OpenRC は /etc/sysctl.conf を読み込みます。

参照