Link Simbólico

1. Link Simbólico

Rodrigo
rodrigofl20

(usa Linux Mint)

Enviado em 24/10/2016 - 10:46h

Olá pessoal, estou com uma dificuldade em criar um link simbólico.
O cenário é o seguinte:

Tenho um programa executável em /home/user/programa/exec.pl (no mesmo diretório existem outros arquivos para o funcionamento do programa).

Então para evitar que precise sempre entrar na pasta para executar o programa, criei o link simbólico: sudo ln -s /home/user/programa/exec.pl /usr/bin/exec

Blz, executou e criou o link de boas. O que está acontecendo é que quando eu executo o link a partir do ~, por exemplo, eu tenho erro dizendo que não encontra alguns arquivos, mas se utilizo o link simbólico dentro do diretório default do programa, ele funciona normalmente. Eu tenho que fazer um link do diretório inteiro?


  


2. Re: Link Simbólico

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/10/2016 - 15:01h

Experimente apagar o link simbólico e colocar o arquivo em /usr/local/bin.
É onde costuma-se colocar arquivos de comandos de usuário.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Re: Link Simbólico

Rodrigo
rodrigofl20

(usa Linux Mint)

Enviado em 24/10/2016 - 15:39h

listeiro_037 escreveu:

Experimente apagar o link simbólico e colocar o arquivo em /usr/local/bin.
É onde costuma-se colocar arquivos de comandos de usuário.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


Como sugeriu, apaguei o link simbólico e coloquei apenas o arquivo executável em /usr/local/bin porém o erro continua o mesmo.
Ele diz que falta 1 módulo, mas claramente esse erro é genérico, sendo que o programa funciona normalmente no dir default.


4. Re: Link Simbólico

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/10/2016 - 15:58h

Ele tem alguma parte feita por você em separado, como módulo?
Qual a mensagem de erro?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



5. Re: Link Simbólico

Rodrigo
rodrigofl20

(usa Linux Mint)

Enviado em 24/10/2016 - 16:02h

listeiro_037 escreveu:

Ele tem alguma parte feita por você em separado, como módulo?
Qual a mensagem de erro?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


Não cheguei a editar o programa.

$ uniscan.pl --help
Can't locate Uniscan/Crawler.pm in @INC (you may need to install the Uniscan::Crawler module) (@INC contains: ./Uniscan /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at /usr/local/bin/uniscan.pl line 24.
BEGIN failed--compilation aborted at /usr/local/bin/uniscan.pl line 24.



6. Re: Link Simbólico

Rodrigo
rodrigofl20

(usa Linux Mint)

Enviado em 24/10/2016 - 16:06h

Acabei de testar com outros executáveis e acontece o mesmo, dessa vez com um em python.
Ele reclama de que não encontra os arquivos de configurações.

Acredito que isso só funcione em executáveis que não dependem de outros arquivos.


7. Re: Link Simbólico

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/10/2016 - 16:19h

Tem mais alguma peça do programa dentro do seu $HOME?
Tipo algum arquivo .pm?
E os de Python, qual erro dá?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



8. Re: Link Simbólico

Rodrigo
rodrigofl20

(usa Linux Mint)

Enviado em 24/10/2016 - 16:32h

listeiro_037 escreveu:

Tem mais alguma peça do programa dentro do seu $HOME?
Tipo algum arquivo .pm?
E os de Python, qual erro dá?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


Então, o programa completo fica por exemplo em /home/rodrigo/tools/uniscan/uniscan.pl
Dentro de ~/tools/uniscan ainda tem diversos outros arquivos que onde o uniscan.pl busca informações/configurações.
Da mesma forma é o python. Ele funciona se eu executar de dentro do diretório onde estão todos os arquivos, mas pelo /usr/local/bin não funciona, ele reclama que não acha os arquivos em
import config * 
, por exemplo.

Não tem arquivos .pm nos diretórios dos programas.


9. Re: Link Simbólico

Fabiano
fpires

(usa Debian)

Enviado em 25/10/2016 - 17:09h

O caminho de pesquisa dos arquivos está absoluto e não relativo. Por isso, funciona em um diretório e não no outro. Instale as dependências do python junto com os outros arquivos das bibliotecas python e deve funcionar.

Ex:
Você instalou o programa em /usr/local/bin. Nesse diretório ficam o executável xpto.py e um diretório xpto_libs, com algumas bibliotecas necessárias. Essas bibliotecas são referenciadas como "import ./xpto_libs/*". (ou algo semelhante)
Se você executar em /usr/local/bin, o "./xpto_libs/*" é processado como "/usr/local/bin/xpto_libs/" e funciona. Se você executar de outro local (digamos por exemplo de /tmp), vai ser interpretado como "/tmp/xpto_libs/". Como esse caminho não existe, vai ficar dando erro.

A solução:
Deve haver um diretório de bibliotecas (algo como /usr/lib/python2.7). Instale as bibliotecas lá e faça a referência como "import xpto_libs/*". Com isso, deve funcionar. Isso vale para Python, Perl, PHP, bibliotecas de sistema, etc. Obviamente cada uma tem seu próprio diretório de bibliotecas compartilhadas.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts