「/ opt/bladir/bla」のファイルから「bla」へのシンボリックリンクを作成しました。したがって、「bla」は「/ usr/bin/bla」にあります。しかし、ターミナルで "bla"を呼び出したい場合、そのようなファイルまたはディレクトリエラーはありません。 「/ usr/bin/bla」を調べましたが、ファイルは「/ opt/bladir/bla」で正しくリンクしています。
エラーは何ですか?
追伸ここに私の端末の「エントリ」があります:Sudo ln -s /opt/bladir/bla bla
ありがとう!
€:問題は解決しました。機能リストによると、12.04はMultiarchをサポートする必要があります...「する必要があります」。シナプスからia32-libsを入手しましたが、プログラムは問題なく動作しました。見たところ、私のシンボリックリンクは正しいところです。
答えてくれてありがとう!
編集:以下のソリューションは動作しません。 file -L
がシンボリックリンク/ usr/bin/blaを開けないため、シンボリックリンクが壊れていることは明らかです。この場合、次を実行します。
Sudo ln -sf /opt/bladir/bla /usr/bin/bla
フルパスを使用します(-fは、前のシンボリックリンクがある場合、それを強制的に上書きします)。
ふむプログラム "bla"は、/ opt/bladirにインストールされているものを検索している可能性があると思います。たとえば、現在のディレクトリへの相対パスを持つJava実行可能ファイルのシェルスクリプトラッパーにすることができます。ただし、現在のディレクトリは/ opt/bladir /ではなく/ usr/bin /です。
以下が機能する場合
file -L /usr/bin/bla
...それは間違いなくシンボリックリンクの問題ではありません。
「bla」が変更可能なシェルスクリプトであるかどうかを確認し、内部を調べてください。問題が見つかる可能性があります。おそらく、PATHに/ opt/bladirを追加する方がより良い解決策でしょう。
実行ビットを有効にしていない場合、多くの場合、このタイプのエラーメッセージが表示されます。メインファイルとリンクに実行許可が与えられているかどうかを確認します。
/opt
が別のパーティションからマウントされ、exec
マウントオプションでマウントされていない可能性があると思われます