即使文件存在并且在PATH中,Linux可执行文件也会失败并显示“找不到文件”

阿克拉夫

我想启动wine可执行文件(版本2.12),但是出现以下错误($= shell提示符):

$ wine
bash: /usr/bin/wine: No such file or directory
$ /usr/bin/wine
bash: /usr/bin/wine: No such file or directory
$ cd /usr/bin
$ ./wine
bash: ./wine: No such file or directory

但是,文件在那里:

$ which wine
/usr/bin/wine

可执行文件绝对存在,并且没有死的符号链接:

$ stat /usr/bin/wine
  File: /usr/bin/wine
  Size: 9712            Blocks: 24         IO Block: 4096   regular file
Device: 802h/2050d      Inode: 415789      Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-07-13 13:53:00.000000000 +0200
Modify: 2017-07-08 03:42:45.000000000 +0200
Change: 2017-07-13 13:53:00.817346043 +0200
 Birth: -

它是32位ELF:

$ file /usr/bin/wine
/usr/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, 
BuildID[sha1]=eaf6de433d8196e746c95d352e0258fe2b65ae24, stripped

我可以得到可执行文件的动态部分:

$ readelf -d /usr/bin/wine
Dynamic section at offset 0x1efc contains 27 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libwine.so.1]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000001d (RUNPATH)                    Library runpath: [$ORIGIN/../lib32]
 0x0000000c (INIT)                       0x7c000854
 0x0000000d (FINI)                       0x7c000e54
 [more addresses without file names]

但是,我无法使用列出共享对象的依赖关系ldd

$ ldd /usr/bin/wine
/usr/bin/ldd: line 117: /usr/bin/wine: No such file or directory

strace 显示:

execve("/usr/bin/wine", ["wine"], 0x7fff20dc8730 /* 66 vars */) = -1 ENOENT (No such file or directory)
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...}) = 0
write(2, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
getpid()                                = 23783
exit_group(1)                           = ?
+++ exited with 1 +++

由@jww编辑添加建议:由于未ld生成调试消息,因此在请求动态链接的库之前,似乎出现了该问题

$ LD_DEBUG=all wine
bash: /usr/bin/wine: No such file or directory

即使仅打印的可能值LD_DEBUG,也会出现错误

$ LD_DEBUG=help wine
bash: /usr/bin/wine: No such file or directory

编辑以添加@Raman Sailopal的建议:问题似乎出在可执行文件之内,因为将内容复制/usr/bin/wine到另一个已创建的文件时会产生相同的错误

root:bin # cp cat testcmd    

root:bin # testcmd --help
Usage: testcmd [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.
[rest of cat help page]

root:bin # dd if=wine of=testcmd  
18+1 records in
18+1 records out
9712 bytes (9.7 kB, 9.5 KiB) copied, 0.000404061 s, 24.0 MB/s

root:bin # testcmd
bash: /usr/bin/testcmd: No such file or directory

问题出在哪里,或者我该怎么办才能找出缺少的文件或目录?


uname -a

Linux laptop 4.11.3-1-ARCH #1 SMP PREEMPT Sun May 28 10:40:17 CEST 2017 x86_64 GNU/Linux
弗洛里安·韦默(Florian Weimer)

这:

$ file /usr/bin/wine
/usr/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, 
BuildID[sha1]=eaf6de433d8196e746c95d352e0258fe2b65ae24, stripped

与此结合:

$ ldd /usr/bin/wine
/usr/bin/ldd: line 117: /usr/bin/wine: No such file or directory

强烈建议该系统没有/lib/ld-linux.so.2ELF解释器。也就是说,此64位系统没有安装任何32位兼容性库。因此,@ user1334609的答案本质上是正确的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ubuntu在PATH中找不到可执行文件

来自分类Dev

docker-exec失败:“ cd”:在$ PATH中找不到可执行文件

来自分类Dev

gcloud composer命令失败“在$ PATH中找不到可执行文件”

来自分类Dev

Docker容器构建失败:“ exec:\” flask \”:在$ PATH中找不到可执行文件”:未知

来自分类Dev

找不到可执行文件

来自分类Dev

Linux:可执行文件找不到共享库

来自分类Dev

Pyinstaller 创建的可执行文件找不到 MEIPASS 目录中存在的 DLL

来自分类Dev

将可执行文件移动到$ PATH中的另一个文件夹后,找不到可执行文件

来自分类Dev

uWSGI + Docker:pyuwsgi:在$ PATH中找不到可执行文件

来自分类Dev

为什么Docker“在$ PATH中找不到可执行文件`/ bin / sh`”?

来自分类Dev

Docker:提取映像时出错,在$ PATH中找不到可执行文件

来自分类Dev

Windows上的kubectl diff返回错误:在PATH中找不到可执行文件

来自分类Dev

在$ PATH中找不到Docker撰写可执行文件”:未知

来自分类Dev

“ exec:” python“:在$ PATH中找不到可执行文件

来自分类Dev

docker本地注册表“ exec:\“ htpasswd \”:在$ PATH中找不到可执行文件”

来自分类Dev

使用AWS Batch / ECS时在PATH中找不到Docker可执行文件

来自分类Dev

exec:“ php-fpm”:在$ PATH中找不到可执行文件:未知

来自分类Dev

CloudFoundry暂存错误exec:“ git”:在$ PATH中找不到可执行文件

来自分类Dev

即使将Docker“在$ PATH中找不到可执行文件”,即使将它添加到基本映像中的路径中?

来自分类Dev

DotNet CLI工具失败,并显示“找不到与命令“ dotnet-migrate-2017”匹配的可执行文件”

来自分类Dev

Gallio错误:找不到MSTest可执行文件

来自分类Dev

找不到chromedriver可执行文件

来自分类Dev

找不到simplecov可执行文件

来自分类Dev

找不到SublimeLinter cppcheck linter可执行文件

来自分类Dev

正在构建宝石,找不到可执行文件

来自分类Dev

找不到Graphviz的可执行文件(Python 3.4)

来自分类Dev

找不到可执行文件WSL2

来自分类Dev

Snapcraft:找不到可执行文件

来自分类Dev

Azure函数:找不到可执行文件

Related 相关文章

  1. 1

    Ubuntu在PATH中找不到可执行文件

  2. 2

    docker-exec失败:“ cd”:在$ PATH中找不到可执行文件

  3. 3

    gcloud composer命令失败“在$ PATH中找不到可执行文件”

  4. 4

    Docker容器构建失败:“ exec:\” flask \”:在$ PATH中找不到可执行文件”:未知

  5. 5

    找不到可执行文件

  6. 6

    Linux:可执行文件找不到共享库

  7. 7

    Pyinstaller 创建的可执行文件找不到 MEIPASS 目录中存在的 DLL

  8. 8

    将可执行文件移动到$ PATH中的另一个文件夹后,找不到可执行文件

  9. 9

    uWSGI + Docker:pyuwsgi:在$ PATH中找不到可执行文件

  10. 10

    为什么Docker“在$ PATH中找不到可执行文件`/ bin / sh`”?

  11. 11

    Docker:提取映像时出错,在$ PATH中找不到可执行文件

  12. 12

    Windows上的kubectl diff返回错误:在PATH中找不到可执行文件

  13. 13

    在$ PATH中找不到Docker撰写可执行文件”:未知

  14. 14

    “ exec:” python“:在$ PATH中找不到可执行文件

  15. 15

    docker本地注册表“ exec:\“ htpasswd \”:在$ PATH中找不到可执行文件”

  16. 16

    使用AWS Batch / ECS时在PATH中找不到Docker可执行文件

  17. 17

    exec:“ php-fpm”:在$ PATH中找不到可执行文件:未知

  18. 18

    CloudFoundry暂存错误exec:“ git”:在$ PATH中找不到可执行文件

  19. 19

    即使将Docker“在$ PATH中找不到可执行文件”,即使将它添加到基本映像中的路径中?

  20. 20

    DotNet CLI工具失败,并显示“找不到与命令“ dotnet-migrate-2017”匹配的可执行文件”

  21. 21

    Gallio错误:找不到MSTest可执行文件

  22. 22

    找不到chromedriver可执行文件

  23. 23

    找不到simplecov可执行文件

  24. 24

    找不到SublimeLinter cppcheck linter可执行文件

  25. 25

    正在构建宝石,找不到可执行文件

  26. 26

    找不到Graphviz的可执行文件(Python 3.4)

  27. 27

    找不到可执行文件WSL2

  28. 28

    Snapcraft:找不到可执行文件

  29. 29

    Azure函数:找不到可执行文件

热门标签

归档