私のOSX 10.9コンピュータでhomebrewを使用してSWI-Prologをインストールすると、奇妙な問題が発生しました。私は適切に報告して修正できるように、このバグが誰のバグ(SWI-Prolog、Homebrew、またはOSX)であるかを調べるためにデバッグしようとしています。
私のパスのどのシンボリックリンクはどのシンボリックリンクにswipl
移動しますか?/usr/local/bin/swipl
/usr/local/Cellar/swi-prolog/6.2.3/bin/swipl
/usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
% which swipl
/usr/local/bin/swipl
% find /usr/local -name swipl -exec ls -l {} \;
lrwxr-xr-x 1 rampion admin 36 Oct 23 20:54 /usr/local/bin/swipl -> ../Cellar/swi-prolog/6.2.3/bin/swipl
lrwxr-xr-x 1 rampion admin 48 Oct 23 20:54 /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl -> ../lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
-r-xr-xr-x 1 rampion admin 8760 Oct 23 20:54 /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
実際の実行可能ファイルは以下から実行できます/usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
。
% /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.2.3)
...
シンボリックリンクを使用できます/usr/local/Cellar/swi-prolog/6.2.3/bin/swipl
。
% /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.2.3)
...
/usr/local/bin/swipl
ただし、他のシンボリックリンクへのシンボリックリンクであるシンボリックリンクを使用しようとするとエラーが発生します。
% /usr/local/bin/swipl
Abort trap: 6
% echo $?
134
独自のシンボリックリンクを作成することもできます/usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
。
% ln -s /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl swipl.0
% ./swipl.0
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.2.3)
...
への独自のシンボリックリンクがありますが、/usr/local/Cellar/swi-prolog/6.2.3/bin/swipl
失敗します。
% ln -s /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl swipl.1
% ./swipl.1
Abort trap: 6
% echo $?
134
だから私は何が間違っているのかわかりません。ファイルへのシンボリックリンクは機能しますが、ファイルへのシンボリックリンクが失敗するのはなぜですか?
ベストアンサー1
いくつかの例を作成してください。システムはCDなどのシンボリックリンク接続をサポートします。
ln -s /bin/ls myls1
ln -s myls1 myls2
ln -s myls2 myls3
実験を始めましょう:
./myls1 should work
./myls2 works or not?
./myls3 works or not?
myls3 が動作すると、システムはリンクされたシンボリックリンクをサポートします。私はそうではないと信じていません:) それでは、問題はシンボリックリンクではなくSWI-Prologにあると思います。私の考えでは、彼は自分の物理的な場所を知りたいので、シンボリックリンクを解決しようとしていると思います。通常、基本ライブラリやその他の項目を見つけるために必要です。私の考えでは、これがSWI-Prologのバグのようです。親バージョンでは変更できます。おそらくこのバグを報告する必要があるようです。たぶん利用可能な修正があるかもしれません。