Link simbólico: Esse arquivo ou diretório não existe

17

Eu criei um link simbólico de um arquivo em "/ opt / bladir / bla" para "bla". Então "bla" está agora em "/ usr / bin / bla". Mas se eu quiser chamar "bla" no terminal, não há esse erro de arquivo ou diretório. Procurei "/ usr / bin / bla" e o arquivo está vinculado corretamente em "/ opt / bladir / bla".

Qual pode ser o erro?

PS aqui é o meu terminal "entrada": sudo ln -s /opt/bladir/bla bla

Obrigado!

€: Problema resolvido. De acordo com a Lista de recursos, o 12.04 deve ter suporte a multiarch ... 'should'. Eu peguei o ia32-libs do synaptic e agora o programa correu muito bem. Parece que meus links simbólicos estão corretos.

Obrigado por todas as respostas!

Sehe
fonte

Respostas:

13

EDIT: a solução abaixo não funciona. É aparente que o link simbólico está quebrado, porque file -Lnão é possível abrir o link simbólico / usr / bin / bla. Nesse caso, faça o seguinte:

sudo ln -sf /opt/bladir/bla /usr/bin/bla

usando caminhos completos (-f é forçar a substituição do link simbólico anterior, se houver um).

Hum. Eu acho que o programa "bla" pode estar procurando por coisas que estão instaladas em / opt / bladir e não as encontra. Por exemplo, pode ser um wrapper de script de shell em torno de um executável Java, com caminho relativo ao diretório atual: mas seu diretório atual é / usr / bin / e não / opt / bladir /.

Se o seguinte funcionar

file -L /usr/bin/bla

... então definitivamente não é um problema com o seu link simbólico.

Verifique se "bla" é um script de shell que você pode modificar, dê uma olhada no interior - talvez você encontre o problema. Possivelmente, adicionar / opt / bladir ao seu PATH seria uma solução melhor.

janeiro
fonte
O comando fornecido diz: ERRO: não é possível abrir `/ usr / bin / bla '. Não consigo dar uma olhada dentro de "bla", é um programa, não apenas um script de shell.
Veja
OK, refaça o link simbólico com caminhos completos, por favor.
janeiro
Cheguei a essa ideia mais cedo sozinha. Mesmo com rm os links antigos e criando novos, o erro ainda aparece. -sf também não funcionou.
Veja
ESTÁ BEM. Por favor, execute ls -l /usr/bin/blae ls -l /opt/bladir/blareporte a saída exata desses comandos.
janeiro
@ Janeiro, que curso de ação você recomendaria se file -L não funcionar?
Dbliss 17/05/2015
0

Geralmente, esse tipo de mensagem de erro é mostrado, se você não tiver o bit de execução ativado. Verifique se o arquivo principal e o link recebem permissão de execução.

Suspeito que o seu /optpode ser montado em uma partição separada e não está montado com a execopção de montagem

Anwar
fonte
O bit de execução está definido e / opt / não está em uma partição separada: /
Veja