web-dev-qa-db-ja.com

「共有オブジェクトファイルlibudev.so.0を開けません」エラーを解決するにはどうすればよいですか?

Ubuntu 64で Game Dev Tycoon を実行しようとしています。上記のオブジェクトを要求します。

Sudo apt-get install libudev1:i386を実行しましたが、すでにインストールされています。

/lib/i386-linux-gnu/libudev.so.1がありますが、libudev.so.0はありません。

81
senshikaze

64ビットUbuntuの場合、32ビットlibudev0パッケージに含まれています。

次のコマンドでインストールできます:

Sudo apt-get install libudev0:i386

このパッケージは14.04でUbuntuから削除されました。古いバージョンからインストールする必要があります。

27
Sean

修正するために、libudev.so.1libudev.so.0にリンクしました:

Sudo ln -sf /lib/$(Arch)-linux-gnu/libudev.so.1 /lib/$(Arch)-linux-gnu/libudev.so.0
199
senshikaze

Ubuntu 14.04以降の場合

私が見つけた最も簡単な方法は、単に 。debをダウンロード64ビットダウンロードへの直接リンク および 2ビットダウンロード )とdoubleクリックしてインストールするか、dpkgを使用してインストールします。

dpkg -i libudev0_175-0ubuntu9_AMD64.deb

以前のバージョン

Ubuntuの以前のバージョンでは、このパッケージは公式リポジトリで利用可能でした。以下を使用してインストールできます。

Sudo apt-get install libudev0:i386
55
Ryan Crichton

私は別のプログラムでも同じ問題を抱えていましたが、ショーンの受け入れられた答えはまったく役に立ちませんでした。アップグレードした64ビット13.04のインストールでは、libudev0は64ビット形式でもi386形式でも使用できません。そして、ia32-libsはすでにインストールされています。サイコロはありません。

私がしなければならなかったのは、わずかに修正されたバージョンのsenshikazeのより技術的な解決策でした。 x86_64 libディレクトリでlibudev.so.0をlibudev.so.1に手動でシンボリックリンクしました。

cd /lib/x86_64-linux-gnu/
Sudo ln -sf libudev.so.1 libudev.so.0

これは私のためにそれを修正しました。

32
Cliff

nwNode Webkitから実行可能ファイルを使用しようとすると、このエラーが発生する可能性があります。このような:

./nw: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory

の解き方:

  1. バイナリのASCII文字列を変更できる16進エディタを取得します。 hexedit

    • ターミナル内(Ctrl+Alt+T)、実行:Sudo apt-get install hexedit
    • 端末に表示される指示に従います(必要に応じてパスワードを入力し、インストールを確認します)。
  2. node webkit:でディレクトリに移動します
    • 私の場合:cd ~/Dokumenty/node-webkit-*
  3. 開くnwSudo:を前に付けた16進エディタコマンドを使用してバイナリ
    • 実行:Sudo hexedit nw
  4. ASCII stringとしてlibudev.so.0を検索:
    • hexeditを使用する場合:を押します Tab
    • 押す Ctrl+S
    • タイプ:libudev.so.0
  5. 0文字列のlibudev.so.01に変更して、次のようにします。libudev.so.1
    • 矢印キーを使用して、0文字列でlibudev.so.0を選択します。
    • 押す 1 キーボードで。
  6. 終了して変更を保存します。
    • 押す Ctrl+X
    • 押す Y 変更を保存します。

できました。これは、nwの代わりにAtraciファイルを16進編集することを除いて同じ手順に従う場合のAtraciバイナリの問題も修正します。

5
Daniel Kmak

私はこの仕事をする方法を見つけましたが、かなりばかげています。

Google Chromeをシステムにインストールしており、Chromeにこの共有オブジェクトが埋め込まれています。そのため、Chromeインストールディレクトリにあるライブラリへのシンボリックリンクを作成する必要がありました。

ln -sf /opt/google/chrome/libudev.so.0 /lib/x86_64-linux-gnu/libudev.so.0

それは私にはかなりうまくいきます。

4
nunesvictor

これは私が見つけた最も簡単な解決策でした

Sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
4
Weston Ganger

ここでUbuntu 14.04で動作する唯一の答えは受け入れられた答えであり、多くのコメントがこれが将来のシステムに問題を引き起こす可能性があることを指摘しているので(私は自分自身については知りませんが)妥協を思いつきました。このスクリプトは、ルートパスワードの入力を(ターミナルで)要求します。シンボリックリンクを作成し、アプリケーション(私の場合はポップコーンタイム)を起動します。アプリケーションを終了すると、既存のSudoセッションを使用してシンボリックリンクが削除されます。

#!/bin/sh
Sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
./Popcorn-Time #replace this line with the path to the executable you want to launch
Sudo rm /lib/i386-linux-gnu/libudev.so.0
4
TenLeftFingers

Phil Strong 指摘

インストールlibudev.so.1

Sudo apt-get install libudev1:i386

それをlibudev.so.0としてリンクします

Sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
2
Zeroows

これは、32ビットUbuntu 15.04で同じ問題を解決するために使用したものです。

cd i386-linux-gnu
Sudo ln -sf libudev.so.1 libudev.so.0
1
user491326

私は14.04にこれをしましたが、似ているはずです。パッケージを削除して再インストールするだけです。適切なライブラリが適切にインストールされます。

apt-get purge google-chrome-stable
apt-get install google-chrome-stable

他の答えは確かに機能しますが、構成管理パッケージで管理されているファイルシステムオブジェクトを変更するには基本的な知識が必要です。

1
MARK SMITH

Xubuntu PreciseからTrustyにアップグレードした後、32ビットシステムで同じエラーが発生していました。これは私のためにそれを修正しました:

Sudo dpkg-reconfigure google-chrome-stable

私はそれを見つけました ここ 。パラメーターがまったくないため、これがどのように修正されたかはよくわかりませんが、修正されました。私が一番気に入ったのは、将来私にとって問題を引き起こす可能性のあることを何もする必要がなく、パッケージを探す必要がないことです。

0
undrline

UPDATE実行したいプログラムをラップするbashスクリプトを作成しました。これをローカルのbinフォルダーに追加して、シェルスクリプトをコピーして貼り付けたり実行したりせずにプログラムを起動するだけです。

#!/bin/bash

ProgramToExecute="/PATH/TO/PROGRAM" #Example: $HOME/Dart/./DartEditor

system=$(uname -m) #Returns x86_64 on 64 bit systems
libdir="/lib/$system-linux-gnu"
libudev1="$libdir/libudev.so.1"

if [ ! -f $libudev1 ]
then
        #check if an i386 folder exist because ' uname -m' returns i686 instead of i386.
        libdir="/lib/i386-linux-gnu"
        libudev1="$libdir/libudev.so.1"
        #if none of the lookups return a file, this script exits,
        BreakUpNotice="This $libudev1 isn't working out. It's not you
        it's me. Or maybe you forgot to install libudev1 library.
        Sudo apt-get install libudev1 "

        [ ! -f $libudev1 ] && echo $BreakUpNotice  && exit 0
fi

libudev0="$libdir/libudev.so.0"

echo "$libudev1 found."
Sudo ln -sf $libudev1 $libudev0
Sudo -k #revoke Sudo 
$($ProgramToExecute)

NoticeAfterExec="Enter Sudo to del libudev link (recommended) or press CTRL+C to cancel."
RmSuccess="And $libudev0 link is gone."
RmFailed="Whaat? $libudev0 still exists."

echo $NoticeAfterExec
Sudo rm $libudev0
Sudo -k
[ ! -f "$libudev0" ]  && echo $RmSuccess || echo $RmFailed
exit 

OLD ANSWER Ubuntu 14.04では、ライブプレビュー(Chromium)を使用しようとすると、Dart Editorからエラーメッセージが表示されました。 libudev1をインストールし、シンボリックリンクを作成してエラーを解決しました。

    Sudo apt-get install libudev1

また、TenLeftFingersが上記のスクリプトを使用してDartEditorを実行しました。

    #!/bin/sh
    Sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
    ./DartEditor
    Sudo rm /lib/i386-linux-gnu/libudev.so.0

Dart Editorが実行されない場合は、Javaがインストールされていることを確認してください。これは権限の問題ではありません。

    Sudo apt-get install python-software-properties
    Sudo add-apt-repository ppa:webupd8team/Java
    Sudo apt-get update
    Sudo apt-get install Oracle-Java7-installer

IDEを実行可能にします:

    Sudo chmod a+x ./DartEditor

これは私のために働いた。

0
Diaz