
最初は、/lib/ld-linux-so.3:No such file or directory
動的にクロスコンパイルされたバイナリを実行しようとしたときに発生する の問題を解決しようとしました。そこで、 に共有バイナリをいくつか追加しました/lib
。 内の重要なファイルをいくつか変更または削除しました/lib
。馬鹿げているように思われるかもしれませんが。
問題は、実行可能バイナリを実行しようとするたびに、次のエラーが発生することです。
Error while loading shared libraries:libgcc-s.so.1:cannot open shared object file: No such file or directory.
他の場所からコピーしましたlibgcc-s.so.1
。/lib
修正するための提案を誰かいただけますか/lib
? 更新または再インストールする方法はありますか? よろしくお願いします。
答え1
外部メディア (CD、USB) から Ubuntu を起動し、ルート パーティションを /mnt/root などにマウントします。その後、パッケージを再インストールします。libgcc1
コマンドは次のようになります。
apt-get --root-directory=/mnt/root install libgcc1
これで libgcc の問題は解決するはずですが、他のライブラリでも問題が発生する可能性があります。実際の Linux で apt-get が使用可能になるまでこれを繰り返し、他の壊れたライブラリを再インストールします。
ヒント: Linux が動作している場合、または別の Ubuntu Linux がある場合は、次のコマンドを実行して、必要な各ファイルのパッケージ名を見つけることができます。
apt-file search /lib/libgcc_s.so.1
ヒント2: chrootが役に立つかもしれません。不足しているライブラリを再インストールしたら、
chroot /mnt/root /bin/sh
この方法により、Linux が動作していない場合に Linux を再起動して外部メディアに戻らなくても、Linux が正しく動作しているかどうかを確認できます。