Debian/Crunchbangを実行していると、スクリプトを実行しようとすると奇妙なエラーが発生します。例えば
exec: 392: ./firefox-bin: not found
私はこれまでこれに遭遇したことがなく、これに関する良い情報を見つけることができませんでした、それが何を意味し、なぜそれが起こるのかを説明したいと思っている人はいますか?
明らかに「見つからない」ファイルはそのパスに存在し、私が所有し、実行可能です。私も別の場所から実行しようとしましたが、運がありませんでした。
問題のファイルが存在することが確実な場合、おそらくそれが意味するのは、ファイルの「インタープリター」が見つからないということです。 firefox-bin
はELF実行可能ファイルである必要があるため、そのインタープリターは/lib/ld-linux.so.2
のようなものになる可能性があり、おそらく欠落しているのはそのファイルです。
readelf -l ./firefox-bin
を実行して、インタープリターが何であるかを調べてみてください。出力で「[Requesting programinterpreter:/lib/ld-linux.so.2]」行を探してください。
TomHが言ったように、これは、firefox-binファイルのバイナリ形式が間違っていることが原因である可能性があります(「見つかりません」というメッセージは誤解を招く恐れがあります)。おそらく、Firefoxの32ビットバージョンをダウンロードし(Firefoxのダウンロードページは32ビットしか提供していません)、下位互換性のあるライブラリがない64ビットシステムで実行しようとしました。その場合、2つの解決策があります。
64ビットリリースを入手できます: http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-x86_64/en-US/
または、ia32-libs
パッケージをインストールすることもできます(とにかくUbuntuではそれが呼ばれています)。
サンプルからは、スクリプトに「./firefox-bin」と表示されているように見えます。つまり、Firefoxの実行可能ファイルをスクリプトと同じディレクトリに配置する必要がありますが、これは保証されていません。それをファイルへのフルパスに置き換えるとどうなりますか?