ฉันต้องการเปิดใช้งานwine
executable (เวอร์ชั่น 2.12) แต่ฉันได้รับข้อผิดพลาดต่อไปนี้ ( $
= shell prompt):
$ 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
ปฏิบัติการที่แน่นอนอยู่ที่นั่นและไม่มี symlink ที่ไม่ทำงาน:
$ 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: -
มันเป็น ELF 32 บิต:
$ 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
/etc/pacman.conf
เปิดใช้งานใน wine
มีการติดตั้งการพึ่งพาทั้งหมดของแพคเกจ อย่างไรก็ตามการติดตั้งใหม่เพื่อให้แน่ใจว่า ...
/lib/ld-linux.so.2
อยู่ในระบบของคุณ? อาการทั้งหมดชี้ไปที่มันหายไปเพียงแค่ตรวจสอบ
/lib
หายไป :-)
file
คำสั่งของคุณแสดงให้เห็นว่าล่ามถูกตั้งค่าสำหรับการปฏิบัติการนี้