Eu me deparei com um problema estranho ao instalar o SWI-Prolog usando homebrew na minha caixa OSX 10.9. Eu estou tentando depurá-lo para descobrir quem é o bug (SWI-Prolog, homebrew ou OSX), para que eu possa relatá-lo adequadamente e consertá-lo.
O swipl
no meu caminho é /usr/local/bin/swipl
, que é um link simbólico para /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl
qual links simbólicos para /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
Eu posso executar o executável real em /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)
...
E eu posso usar o link simbólico em /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)
...
Mas quando eu tento usar o link simbólico em /usr/local/bin/swipl
, que apenas links simbólicos
para o outro symlink, recebo um erro:
% /usr/local/bin/swipl
Abort trap: 6
% echo $?
134
Também posso criar meus próprios links simbólicos para /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
e eles funcionam:
% 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)
...
E meus próprios links simbólicos para /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl
, e eles falham:
% ln -s /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl swipl.1
% ./swipl.1
Abort trap: 6
% echo $?
134
Então eu não tenho idéia do que está errado. Por que um link simbólico para um arquivo funcionaria, mas um link simbólico para um symlink para um arquivo falha?