【BUG】Linux目录下明明有可执行文件却提示找不到,“No such file or directory”,解决:为64位Ubuntu安装32位程序的运行架构
问题
我做了如下努力:
- ls显示;(能够成功显示)
- 修改文件名;(能够正常复制、修改、移动,并且被复制的仍然不能运行)
- 调整文件属性,弄成
777
; - cat显示文件。(能够成功显示)
- root执行文件;(找不到文件)
- 直接输入
repeat
;(显示无该命令) - 切换到其他的目录下,再用相对路径执行
repeat
;(找不到文件) - 绝对路径执行
repeat
;(找不到文件) - exec执行:
exec ./repeat
;(找不到文件) - 换个别的终端执行:
/bin/sh ./repeat
;(报错) - 换了一个机子,能正常运行(说明并不是文件本身的问题)。
都是玄学办法,没有起到作用。
解决
检查文件的头部: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
然后就可以了!就可以运行了!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南