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

问题

在这里插入图片描述
我做了如下努力:

  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
在这里插入图片描述

原来,这是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

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

猜你喜欢

转载自blog.csdn.net/qq_46106285/article/details/124946919
今日推荐