লিনাক্স এক্সিকিউটেবল "ফাইল খুঁজে পাওয়া যায় নি" সাথে ব্যর্থ হয় যদিও ফাইলটি সেখানে থাকে এবং PATH তে থাকে


20

আমি wineএক্সিকিউটেবল (সংস্করণ 2.12) চালু করতে চাই , তবে আমি নিম্নলিখিত ত্রুটিটি পেয়েছি ( $= শেল প্রম্পট):

$ 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-বিট ইএলএফ:

$ 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

@ রমন সাইলোপালের পরামর্শ যুক্ত করার জন্য সম্পাদিত:/usr/bin/wine ইতিমধ্যে তৈরি হওয়া অন্য একটি ফাইলের বিষয়বস্তু অনুলিপি করার ফলে সমস্যাটি কার্যকর হবে বলে মনে হচ্ছে error

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

/ ইউএসআর / বিন কাজ করে?
এইডেন বেল

1
খিলান বহু-সক্ষম ib মাল্টিলিব সংগ্রহস্থল সক্ষম করা আছে /etc/pacman.confwineপ্যাকেজের সমস্ত নির্ভরতা ইনস্টল করা আছে। তবে, কেবল তা নিশ্চিত করার জন্য সেগুলি পুনরায় ইনস্টল করা হচ্ছে ...
আকরাফ

3
কি /lib/ld-linux.so.2আপনার সিস্টেমে উপস্থিত? সমস্ত লক্ষণগুলি এটি নিখোঁজ হওয়ার দিকে নির্দেশ করে, কেবল পরীক্ষা করে।
এন। 'সর্বনাম' মি।

1
@ এনএম হ্যাঁ, আপনি ঠিক বলেছেন। আসলে, পুরো ডিরেক্টরিটি /libঅনুপস্থিত ছিল :-)
আকরাফ

3
অভিজ্ঞতা;) যখন আপনি এখানে এক্সিকিউটেবল চালানোর চেষ্টা করেন এবং ফাইলটি ঠিক এখানে থাকা অবস্থায় একটি "ফাইল খুঁজে পাওয়া যায় না" ত্রুটি পান, তখন এটি দোভাষীটি অনুপস্থিত। আপনার fileকমান্ডটি দেখায় যে এই নির্বাহের জন্য দোভাষী কী সেট রয়েছে।
এন। 'সর্বনাম' মি।

উত্তর:


12

এই:

$ 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

দৃr়ভাবে পরামর্শ দেয় যে সিস্টেমে /lib/ld-linux.so.2ELF দোভাষী নেই। অর্থাৎ, এই 64৪-বিট সিস্টেমে কোনও 32-বিট সামঞ্জস্যের লাইব্রেরি ইনস্টল করা নেই। সুতরাং, @ ব্যবহারকারী 1334609 এর উত্তরটি মূলত সঠিক।


4

ঠিক আছে, আমি আমার সিস্টেমটি আপ করতে এবং সিপিইউ ওভারহিট শট ডাউনের পরে আবার চলতে শেষ আট ঘন্টা ব্যস্ত ছিলাম। পুনরায় বুট করার সময় এটি স্পষ্ট হয়ে উঠল যে এটি এতটাই খারাপ হয়ে গিয়েছিল যে এমনকি আরআরআরডি-র পতনের পিছনের কনসোলটি আমার কীবোর্ডটি আর চিনতে পারে না। এটি আমার জন্য একটি রহস্য যে সিস্টেমটি কীভাবে এত দিন চালিত থাকবে, যখন আমি আপনার দ্বারা অজস্র পরামর্শগুলি বাস্তবায়নের চেষ্টা করছিলাম (আপনাকে অনেক ধন্যবাদ !!)

পুনরায় বুট করার ক্ষেত্রে সমস্যা:

Warning: /lib/modules/4.11.3-1-ARCH/modules.devname not found - ignoring
ERROR: device 'UUID=...' not found. Skipping fsck.
ERROR: Unable to find root device 'UUID=...'.
You are being dropped to a recovery shell
Type 'exit' to try and continue booting
sh: can't access tty: job control turned off

এবং কোনও কীবোর্ড পরে কাজ করছে না :-)

সমস্যাটি ছিল: একটি আপডেট সিমলিংকে /lib -> /usr/libএকটি ডিরেক্টরি দিয়ে প্রতিস্থাপন করেছে । সুতরাং এর অর্থ হ'ল সমস্ত গ্রন্থাগার এবং কার্নেল মডিউলগুলি /libঅনুপস্থিত যা অনুপস্থিত ছিল :-)

তাই আমি সিমলিংকটি পুনরায় তৈরি করেছি এবং লাইভ সিডি থেকে বেস সিস্টেমটি পুনরায় ইনস্টল করেছি।

এখন আমার আবার ইন্টারনেট আছে, আমি এই থ্রেডটিও পেয়েছি

আমি বেস গ্রুপেরpacman সমস্ত প্যাকেজ পুনরায় ইনস্টল করতে লাইভ সিডি থেকে আমার ব্রিকড অন-ডিস্ক ইনস্টলেশন (কল করা ) প্যাকেজ ম্যানেজারটিও ব্যবহার করেছি (সম্ভবত কেবল কার্নেল, তাই প্যাকেজটি যথেষ্ট ছিল, আমি জানি না)linux

যে কাজ করা সম্ভব, এর bricked মূল ইনস্টলের পার্টিশন মাউন্ট /mntলাইভ সিডি সিস্টেম এবং ব্যবহারের ডিরেক্টরির chrootকরতে pacmanমনে /mntহয় /(আপনার bricked সিস্টেমের জন্য প্রধান পার্টিশন সন্নিবেশ sdXXX)

mount /dev/sdXXX /mnt
# Recreate the /lib -> usr/lib symlink
ln -s usr/lib /lib  
# Mount essential system folders also to the respective subfolders of /mnt
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev
# Fake /mnt to be /, so that pacman installs the packages to the correct  places
chroot /mnt
# Reinstall the Arch Linux base system
pacman -Sy base

রেকর্ডের জন্য: একটি আপেক্ষিক সিমলিংক তৈরি করুন, তাই ln -s usr/lib /mnt/libএবং নাও ln -s /usr/lib /mnt/lib, কারণ প্রাথমিক সিস্টেম বুট চলাকালীন (initrd পর্যায়ে) মূল পার্টিশনটি প্রথমে মাউন্ট করা হবে /new_root। যদি এই সিমলিংকটি নিখুঁত হয় তবে আপনি প্রাথমিক বুটের সময় উপরোক্ত ত্রুটিটি পেয়ে যাবেন।


1
ছোট ইঙ্গিত: সিস্টেমরেসকিউড ব্যবহার করার সময়, আমি প্রায়শই ক্রোকটি করার পূর্বে প্রোক / সিএস / দেবের (প্রোস সিস দেবের পাথের জন্য; মাউন্ট -বাইন্ড / $ পাথ / এমএনটি / $ পাথ; সম্পন্ন) মাধ্যমে পুনরাবৃত্তি করি। তবে আপনি যদি আর্চ ইনস্টল আইসো ব্যবহার করে থাকেন তবে প্রদত্ত আর্চ-ক্রুট কার্যকর করা চালানো আরও সহজ কারণ এটি আপনার জন্য সবকিছু করে। এটি যদি আর্চ-ইনস্টল-স্ক্রিপ্টস প্যাকেজে থাকে তবে কেউ যদি কোথাও ঝাঁকুনি দিতে চায়। :)
zaTricky

4

আপনি একটি bit৪ বিট অপারেটিং সিস্টেমে 32-বিট অ্যাপ্লিকেশন চালানোর চেষ্টা করছেন, সুতরাং এটি কাজ করার আগে আপনাকে 32-বিট সামঞ্জস্য লাইব্রেরিগুলি (বিশেষত গ্লিবিসি) ইনস্টল করতে হবে।


1
আপনার সমাধান কীভাবে মামলাটি সমাধান করে এবং প্রশ্নের উত্তরটি দয়া করে স্পষ্ট করে
বলুন

রোমিও যা বলেছিল; আপনি প্যাকম্যানের পরিবর্তে একটি খিলান-লিনাক্স সিস্টেমে অ্যাপটি-গেট চালাবেন? এবং কম্প্রেশন গ্রন্থাগার এবং ncurses কীভাবে তাদের সহায়তা করবে?
জেফ শ্যাচলার

1

এফওয়াইআই, আমি আলপাইন-ভিত্তিক ডকার ইমেজে চলমান এই একই সমস্যার দিকে ছুটে এসেছি। এক্সিকিউটেবলটি ছিল একটি -৪-বিট ইএলএফ, এবং আলপাইন চিত্রটি -৪-বিট, এবং এক্সিকিউটেবল একটি ভিন্ন ধারকটিতে কাজ করেছিল। সুতরাং সম্ভবত ছাঁটাইযুক্ত আলপাইন লাইব্রেরিগুলি আমার এক্সিকিউটেবলের সাথে সামঞ্জস্যপূর্ণ ছিল না। Node.js Docker হাব পৃষ্ঠা নোট:

প্রধান সতর্কীকরণ [আলপাইন ভিত্তিক কন্টেইনারে চলমান করবেন] কি ব্যবহার করেছেন যে libc musl পরিবর্তে জন্য glibc এবং বন্ধুদের , তাই নির্দিষ্ট সফ্টওয়্যার তাদের libc প্রয়োজনীয়তা গভীরতার উপর নির্ভর করে সমস্যার সম্মূখীন হতে পারে। তবে বেশিরভাগ সফ্টওয়্যার এর সাথে সমস্যা নেই, তাই এই বৈকল্পিকটি সাধারণত খুব নিরাপদ পছন্দ। দেখুন এই হ্যাকার সংবাদ মন্তব্য থ্রেড বিষয় জাগতে পারে এবং আলপাইন ভিত্তিক চিত্র ব্যবহার কিছু প্রো / বিরূদ্ধে তুলনা আরো আলোচনার জন্য।

আমার সমাধানটি ছিল একটি আলাদা (যেমন দেবিয়ান জেসি ভিত্তিক) ধারক চিত্র ব্যবহার করা।


মূলত সিসাদমিন সমস্যাটিকে কনটেইনারগুলির "নতুন" জগতের সাথে সংযুক্ত করার জন্য ধন্যবাদ!
আক্রফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.