パッケージアップデート時、udev関連のエラーが大量に出力されるときは
「apt upgrade」や「apt-get upgrade」を実行してパッケージアップデートすると、「udev」に依存したパッケージの更新時に「udev」関連のエラーが大量に出力されます。これは「WSL」が未実装である「udev」の機能を利用しようとするためです。
問題の回避策
「Build 14342」ではデフォルトでこの問題に対応しており、初めてWSL環境を構築した時(初めてbashを実行した時)に、この問題の回避策が自動的に盛り込まれます。しかし以前のビルドからWSL環境を使用している人は、この問題の回避策が盛り込まれないため、自分で対応する必要があります。
ここではその対応方法を紹介します。
1.policy-rc.dファイルの確認
以下のコマンドを実行して、「policy-rc.d」ファイルの中身を確認します。
cat /usr/sbin/policy-rc.d
上記のように表示されれば、回避策は対応済みです。
もし上記のように表示されなければ、回避策が盛り込まれていません。
2.policy-rc.dファイルの作成
以下のコマンドを実行して、「policy-rc.d」ファイルを作成します。
sudo nano /usr/sbin/policy-rc.d
3.policy-rc.dファイルの編集
「nano」が起動するので、以下の内容を記述します。
#!/bin/sh
exit 101
exit 101
編集したらファイルを保存します。
4.実行権限の付与
以下のコマンドを実行して、「policy-rc.d」ファイルに実行権限を付けます。
sudo chmod +x /usr/sbin/policy-rc.d
5.ファイルの退避
以下のコマンドを実行して、「policy-rc.d」ファイルを退避します。
sudo dpkg-divert --local --rename --add /sbin/initctl
6.シンボリックリンクの作成
以下のコマンドを実行して、シンボリックリンクを作成します。
sudo ln -s /bin/true /sbin/initctl
以上で作業は完了です。
7.パッケージのアップデート
後はパッケージのアップデートを実行し、「udev」関連のエラーが解消されているか確認してください。
sudo apt upgrade