今天在Ubuntu上运行一个二进制文件,提示错误No such file or directory。看字面的意思是文件或路径不存在,可明明这个文件是存在的。记录下排查逻辑
0x01 检查文件类型
通过file命令可以查出这个文件是一个32位的LSB可执行文件
$ file ./mksquashfs ./mksquashfs: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=3b8174a0398e82319eed75dadb1c74a0222963a3, not stripped
0x02 检查LSB版本
既然上面查出是lsb的可执行文件,就先检查下lsb的版本
$ lsb_release No LSB modules are available ##没有LSB模块可用
查到问题所在,没有LSB模块,文件当然运行不了。
0x03 安装LSB
$ apt-get install lsb-core
总结,问题的原因是第三方的二进制文件发布时是按照LSB规范来分发二进制。如果系统不符合LSB规范则这些程序都无法运行

聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客
2018年1月28日 下午3:17 沙发
好久都没用乌班图系统了
2018年5月21日 下午6:01 板凳
突然看到,我都快忘了这个了
2018年5月21日 下午6:02 地板
突然看到,好久没看到了,快忘了