【BUG】Linux目录下明明有可执行文件却提示找不到,“No such file or directory”,解决:为64位Ubuntu安装32位程序的运行架构

问题

【BUG】Linux目录下明明有可执行文件却提示找不到,“No such file or directory”,解决:为64位Ubuntu安装32位程序的运行架构_第1张图片
我做了如下努力:

  1. ls显示;(能够成功显示)
  2. 修改文件名;(能够正常复制、修改、移动,并且被复制的仍然不能运行)
  3. 调整文件属性,弄成777
  4. cat显示文件。(能够成功显示)
  5. root执行文件;(找不到文件)
  6. 直接输入repeat;(显示无该命令)
  7. 切换到其他的目录下,再用相对路径执行repeat;(找不到文件)
  8. 绝对路径执行repeat;(找不到文件)
  9. exec执行:exec ./repeat;(找不到文件)
  10. 换个别的终端执行:/bin/sh ./repeat;(报错)
  11. 换了一个机子,能正常运行(说明并不是文件本身的问题)。

都是玄学办法,没有起到作用。

解决

检查文件的头部:readelf -h repeat
【BUG】Linux目录下明明有可执行文件却提示找不到,“No such file or directory”,解决:为64位Ubuntu安装32位程序的运行架构_第2张图片

原来,这是32位的程序,在64位的Ubuntu中运行需要提前安装32位的库。

首先添加i32架构,然后更新镜像源,再安装就可以了,指令如下:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 -y
sudo apt install lib32z1 -y

然后就可以了!就可以运行了!!!

你可能感兴趣的:(bug,#,琐碎小记录,linux,运维,ubuntu)