Pacote instalado, lsleases, dando erro bash “No such file or directory”

0

Estou tentando usar o seguinte pacote, lsleases:

link

Eu tentei instalar usando o pacote deb e também através do repositório bintray.com, conforme detalhado nas instruções de instalação com o mesmo resultado.

Em ambos os casos, a instalação é concluída sem problemas, até onde eu sei.

No entanto, quando tento executar o comando, recebo o seguinte erro:

andrew@T61:~$ lsleases
bash: /usr/bin/lsleases: No such file or directory
andrew@T61:~$ /usr/bin/lsleases
bash: /usr/bin/lsleases: No such file or directory

Como você pode ver, o arquivo existe:

andrew@T61:~$ ls -l /usr/bin/lsleases 
-rwxr-xr-x 1 root root 3386272 Mar 28 16:05 /usr/bin/lsleases  

Aqui está a saída da qual, digite, echo $ PATH e arquivo, se isso for útil:

andrew@T61:~$ which lsleases
/usr/bin/lsleases
andrew@T61:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/game:/usr/local/games
andrew@T61:~$ type lsleases
lsleases is hashed (/usr/bin/lsleases)
andrew@T61:~$ file lsleases
lsleases: cannot open 'lsleases' (No such file or directory)

Aqui está a saída do ldd / usr / bin / lsleases:

andrew@T61:~$ ldd /usr/bin/lsleases
linux-vdso.so.1 =>  (0x00007ffe7a920000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc1241f4000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc123e2a000)
/nix/store/pv9sza1cf2kpawck7wbwdnhlip5h57lg-glibc-2.23/lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00005589d3780000)

Qualquer conselho que me ajude a conseguir esse trabalho seria ótimo, parece uma ferramenta útil.

    
por robosnacks 12.04.2016 / 17:41

1 resposta

1

O autor de lsleases (que sou eu) usa nix para o seu env de desenvolvimento.

Binários vinculados dinamicamente consultam o vinculador / carregador dinâmico para fornecer as bibliotecas compartilhadas. Este caminho é fixado em tempo de compilação no binário:

 root@debian8:~# readelf -l /usr/bin/lsleases  | grep interpreter
  [Requesting program interpreter: /nix/store/pv9sza1cf2kpawck7wbwdnhlip5h57lg-glibc-2.23/lib/ld-linux-x86-64.so.2]

Mas este caminho só existe em nix .

O compilador go cria binários vinculados estaticamente por padrão (se o cgo não for usado) - então isso não é problema. MAS - atualmente não tenho certeza por que, o compilador go criou um binário dinâmico vinculado.

Eu lancei uma nova versão (1.4.3) que está vinculada estaticamente.

Portanto, uma solução simples (se você tiver o repositório de binários configurado):

apt-get update && apt-get install lsleases

Os pacotes reais podem encontrar aqui .

Desculpe pela quebra!

    
por j-keck 13.04.2016 / 12:35