今天在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规范则这些程序都无法运行
评论