chromeを開始しようとすると、コマンドラインで次のエラーが発生します。
/opt/google/chrome/chrome: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory
このエラーはUbuntu 13.04で初めて発生し、Chromeを削除して再インストールしようとしました。 Ubuntu 13.10にアップグレードした後も持続しました。
Ubuntuを≤12.10から≥13.04にアップグレードした後にChromeが起動しない場合は、ターミナルを開いて次のコマンドを実行します。
Sudo dpkg-reconfigure google-chrome-stable
説明が続きます。
少なくとも28から37までのChromeバージョンでは、Chromeバイナリは、システムに存在するlibudev.so.0
またはlibudev.so.1
のいずれかを使用できます。 Chromium/Chrome Issue 226002 (2013年4月に不安定なチャネルに入った)の修正により、インストーラーはどちらを使用するかを決定します。バイナリはlibudev.so.0
を参照します。 /opt/google/chrome/libudev.so.0
が見つからない場合、インストーラーはシステム上でlibudev.so.1
からlibudev.so.0
へのシンボリックリンクを作成します。
/usr/lib
で作成するのは悪い考えです。ライブラリのメジャーバージョン番号は、新しいバージョンに互換性がない場合に変更されます。このシンボリックリンクの作成は、バージョン0とバージョン1の間で互換性のある機能のみを使用するため、Chromeで適切に機能します。
Chromeパッケージで使用される方法は、ほとんどの状況下で適切に機能しますが、それでもダーティハックであり、制限があります。 Chromeのインストール後にlibudev0
パッケージがアンインストールされる場合(Ubuntuのアップグレード時に発生する可能性が高い)、Chromeはlibudev.so.0
を使用するように設定されますが、ファイルは使用できなくなります。これを修正するには、インストールスクリプトを再度実行します。今回はlibudev.so.0
が利用できないことを検出するため、代わりにlibudev.so.1
を使用するシンボリックリンクを作成する必要があります。 dpkg-reconfigure google-chrome-stable
をルートとして実行することにより、インストールスクリプトを再実行できます。
ジルが指摘したように、このアプローチは望ましくない行動につながる可能性があります。 最初の解決策 を試してください。それがうまくいかず、これがサイレントデータ破損につながる可能性があるという意味を理解している場合、次のようにすることができます:
64ビットシステムを想定すると、欠落しているシンボリックリンクは次の方法で作成できます。
Sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1.3.5 /usr/lib/libudev.so.0
Ubuntu 18の場合:
Sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1.6.9 /usr/lib/libudev.so.0
32ビットシステムの場合:
Sudo ln -s /lib/i386-linux-gnu/libudev.so.1.3.5 /usr/lib/libudev.so.0
Libudevのローカルバージョンを確認する必要がある場合があります。