已安装软件包 lsleases,出现 bash“没有此文件或目录”错误

已安装软件包 lsleases,出现 bash“没有此文件或目录”错误

我正在尝试使用以下包 lsleases:

https://github.com/j-keck/lsleases#usage

我尝试使用 deb 包以及通过 bintray.com 存储库进行安装,如安装说明中所述,结果相同。

据我所知,两种情况下安装均可顺利完成。

但是,当我尝试运行该命令时出现以下错误:

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

如您所见,该文件确实存在:

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

如果有帮助的话,以下是其中的输出,类型,echo $PATH 和文件:

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)

以下是 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)

任何能帮助我实现这个功能的建议都非常好,它看起来像一个方便的工具。

答案1

lsleases(那就是我)的作者使用尼克斯他的开发环境。

动态链接二进制文件会咨询动态链接器/加载器来提供共享库。此路径在二进制文件的编译时是固定的:

 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]

但此路径仅在 下存在nix


go 编译器默认创建静态链接的二进制文件(如果不使用 cgo)——所以这没问题。但是——我目前不确定为什么,go 编译器创建了一个动态链接的二进制文件。

我已经发布了一个静态链接的新版本(1.4.3)。

一个简单的解决方案(如果您已经配置了 bintray repo):

apt-get update && apt-get install lsleases

你能找到的实际包这里

抱歉造成破损!

相关内容