එවන් ලිපියක් හෝ ගොනුවක් නැත? නමුත් ගොනුව පවතී!


208

මම ක්‍රීඩාවක් බාගත කර ඇත්තෙමි (ෂෑන්ක්) නමුත් බින් ගොනුව ක්‍රියාත්මක නොවේ. මම ක්‍රියාත්මක කළ හැකි දියත් කිරීමට උත්සාහ කරන විට පෙන්වන දෝෂය:

bash: ./shank-linux-120720110-1-bin: No such file or directory

3
සමහර විට "chmod u + x ./shank*bin" පළමුව?
නියෝජිත 86

1
එය '-බින්' වෙනුවට '.බින්' නොවිය යුතුය, සමහර විට එය
යතුරු ලියනයකි

ඔබගේ පිළිතුරට ස්තූතියි. ඔබ Agent86 කියූ විධානය මම කර ඇති නමුත් මට එකම ප්‍රති .ලය ඇත. මම .deb ගොනුවද බාගත කර ඇති නමුත් ගැටලුවක් ද තිබේ. මෙම ක්‍රීඩාවට ඇති ගැටලුව කුමක්දැයි මම නොදනිමි.
ෆ්‍රැන්චෙස්කෝ

කරුණාකර ඔබ 64-බිට් ස්ථාපනයක් ක්‍රියාත්මක කරන්නේද යන්න තහවුරු කරන්න (මෙම ගැටළුව සඳහා වඩාත් පොදු අවස්ථාව එයයි).
ගිලෙස්ගේ SO- නපුර වීම නවත්වන්න '

1
@ agent86: නැත. එවැනි අවස්ථාවකදී දෝෂ පණිවිඩය "අවසරය ප්‍රතික්ෂේප කරනු ලැබේ".
ඩේවිඩ් ෆෝස්ටර්

Answers:


253

ඔබ බොහෝ විට උත්සාහ කරන්නේ බිට් 32 ආධාරකයක් ස්ථාපනය කර නැති 64-බිට් පද්ධතියක 32-බිටු ද්විමය ධාවනය කිරීමට ය.

“එවැනි ගොනුවක් හෝ නාමාවලියක් නැත” යන පණිවිඩය ඔබට ලබා ගත හැකි අවස්ථා තුනක් තිබේ:

  • ගොනුව නොපවතී. ගොනුව පවතින බව ඔබ පරීක්ෂා කර ඇතැයි මම සිතමි (සමහර විට කවචය එය සම්පූර්ණ කළ නිසා විය හැකිය).
  • එම නමින් ගොනුවක් ඇත, නමුත් එය සංකේතාත්මක සබැඳියකි.
  • ගොනුව පවතින අතර ඔබට එය කියවිය හැකිය (නිදසුනක් ලෙස, විධානය file shank-linux-120720110-1-binමඟින් “ELF 32-bit LSB ක්‍රියාත්මක කළ හැකි…” වැනි දෙයක් පෙන්වයි), නමුත් ඔබ එය ක්‍රියාත්මක කිරීමට උත්සාහ කරන විට ගොනුව නොපවතින බව ඔබට කියනු ලැබේ.

මෙම අන්තිම නඩුවේ දෝෂ පණිවිඩය අවුල් සහගතය. එයින් ඔබට කියැවෙන්නේ වැඩසටහන ක්‍රියාත්මක කිරීමට අවශ්‍ය ධාවන කාල පරිසරයේ ප්‍රධාන අංගයක් නොමැති බවයි. අවාසනාවකට මෙන්, දෝෂය වාර්තා වූ නාලිකාවට ඇත්තේ දෝෂ කේතයට පමණක් ඉඩක් මිස මෙම අමතර තොරතුරු සඳහා නොවේ. ඔබට මෙම පැහැදිලි කිරීමේ තාක්ෂණික අනුවාදය අවශ්‍ය නම්, 64-බිට් පද්ධතියක බිට් 32 ද්විමය ධාවනය කිරීමේදී “සොයාගත නොහැකි” පණිවිඩය ලබා ගන්න .

මෙම fileවිධානය මඟින් මෙය රචනයයි දේ ඔබට කියමි. ව්‍යතිරේක කිහිපයක් සමඟ, ඔබට උබුන්ටු නිකුතුව සඳහා වන ප්‍රොසෙසර් ගෘහ නිර්මාණ ශිල්පය සඳහා ද්විමය ධාවනය කළ හැකිය. ප්‍රධාන ව්‍යතිරේකය නම් ඔබට 64-බිට් (amd64, aka x86_64) පද්ධති මත 32-බිට් (x86, aka IA32) ද්විමය ධාවනය කළ හැකිය.

උබුන්ටු හි 11.04 දක්වා, 64-බිට් ස්ථාපනයක 32-බිටු ද්විමය ධාවනය කිරීමට, ඔබ පැකේජය ස්ථාපනය කළia32-libs Ia32-libs ස්ථාපනය කරන්න යුතුය. ඔබට අතිරේක පුස්තකාල ස්ථාපනය කිරීමට අවශ්‍ය විය හැකිය (ඔබ එසේ කරන්නේ නම් ඔබට පැහැදිලි දෝෂ පණිවිඩයක් ලැබෙනු ඇත).

11.10 (oneiric) බහුකාර්ය සහය හඳුන්වා දුන් බැවින් , ඔබට තවමත් ස්ථාපනය කළ හැකිය ia32-libs, නමුත් ඔබට වඩාත් සියුම් ප්‍රවේශයක් තෝරා ගත හැකිය, එය ලබා ගැනීමට ප්‍රමාණවත් වේ (ඊට අමතරව වෙනත් අවශ්‍ය පුස්තකාලයක්).libc6-i386 Libc6-i386 ස්ථාපනය කරන්න


විශිෂ්ට පිළිතුරකට ස්තූතියි, ගිලෙස්. මම මෙම ගැටලුව අත්විඳ නැති අතර (තවමත්!), මම ඔබගේ පිළිතුර අනාගත යොමු කිරීම සඳහා ගොනු කර ඇත.
ජිම් සී

ඔබගේ පරිපූර්ණ පිළිතුරට ස්තූතියි! මා බාගත කළ ගොනුව මෙම ආකෘතියේ (බින්) ඇති එකම එකකි. එබැවින් සියලු ගෘහ නිර්මාණ සඳහා හොඳ යැයි මම සිතමි. මගේ ගෘහ නිර්මාණ ශිල්පය සඳහා (64bit) .deb ගොනුව බාගත කර ඇති නමුත් වෙනස් දෝෂ සහිතව. මෙම අවස්ථාවේදී මම සිතන්නේ ක්‍රීඩාවට සමහර දෝෂයන් බලපා ඇති බවයි හෝ මට මෙම ක්‍රීඩාව ස්ථාපනය කිරීමට නොහැකි වනු ඇත. දැන් මම libc6-i386 බාගත කිරීමට උත්සාහ කරන අතර මම තවමත් එය ස්ථාපනය කිරීමට උත්සාහ කරමි. සැලකිය යුතු වෙනස්කම් තිබේ නම් මම නැවත ලියමි. ඔබේ කාලය සඳහා ස්තූතියි.
ෆ්‍රැන්චෙස්කෝ

3
@Fransco කරුණාකර විසඳුම පළ කරන්න! එය උබුන්ටු මත ෂෑන්ක් ධාවනය කිරීමට උත්සාහ කරන අනෙක් පුද්ගලයින්ට උදව් වනු ඇත. ඔබේම ප්‍රශ්නයට පිළිතුරු දීම හරි .
ගිලෙස්ගේ SO- නපුර වීම නවත්වන්න '

1
ඔබට lddපුස්තකාලයක් අස්ථානගත වී ඇත්දැයි පරීක්ෂා කිරීමට ඔබට භාවිතා කළ හැකිය . අනෙක් අය ldd kgio_ext.soමෙන් යමක් පැවසිය හැකියlibruby.so.2.3 => not found
EnabrenTane

1
bash: ...some...path...: No such file or directoryපෙන්විය හැකි තවත් අවස්ථාවක් තිබේ: ක්‍රියාත්මක කළ හැකි ගොනුව ගෙන ගිය පසු. බෑෂ් $ PATH හි සොයාගත හැකි ක්‍රියාත්මක කළ හැකි මාර්ග සංචිත කරන බව පෙනේ; ධාවනය hash -rඑය ඉවත් කිරීමට. බලන්න: unix.stackexchange.com/a/5610/11352
akavel

57

64 බිට් උබුන්ටු බහු පද්ධති

මෙම පිළිතුර අනුගමනය කරන්න file file-nameසංදර්ශනවල ප්‍රතිදානය නම් පමණි ,

file-name: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped

64 බහු-ආරුක්කු උබුන්ටු පද්ධතිය දෂ්ට දී 32bit ක්රියාකාරී ගොනුවකි ක්රියාත්මක කිරීම සඳහා, ඔබ එකතු කිරීමට ඇති i386ගෘහ නිර්මාණ ශිල්පය සහ ඔබ විසින් ස්ථාපනය කිරීමට ඇති libc6:i386, libncurses5:i386, libstdc++6:i386මෙම පුස්තකාලය පැකේජ තුනක්.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
./file-name

අන්තිම විධානය සඳහා මම සුඩෝ භාවිතා කරමි: සුඩෝ අවදානම් විය හැකි බැවින් 32bit ද්විමය (එතරම් පැහැදිලිවම ඔබ හෝ උබුන්ටු විසින් සම්පාදනය නොකෙරේ) දියත් කිරීම. (හොඳයි, මූල නොවන වුවද, පිළිගත හැකි)
alci

එය අන්තිමට කුමක් විය හැකි නමුත් එය ක්‍රියාත්මක වේ.
අවිනාශ් රාජ්

1
ඔබ CentOS හෝ RedHat භාවිතා කරන්නේ නම් මෙම පිළිතුර අදාළ නොවන බව සැලකිල්ලට ගත යුතුය. මේ නිසා පැය කිහිපයක් විසි කළා.
omikes

1
කාලි 2 64 බිට් මත, මට ස්ථාපනය කිරීමට සිදු වූයේlibselinux1:i386
අරලොක්ස්

5

Il ගිල්ස් පිළිතුර පුළුල් කිරීම සඳහා, මෙම දෝෂය හේතුවෙන් අවම වශයෙන් අවස්ථා තුනක්වත් තිබේ:

  1. ගොනුව නොපවතී.
  2. ගොනුව පවතින නමුත් එය සංකේතාත්මක සබැඳියකි.
  3. ගොනුව පවතී (උදා: fileවිධාන ක්‍රියා කරයි), එය ව්‍යාකූල දෝෂ පණිවිඩයක් නිර්මාණය කරයි. මෙයින් අදහස් කරන්නේ පැටවුමේ ගැටලුවක් ඇති බවයි.

පැටවුම් ගැටළු වර්ග:

  1. ක්‍රියාත්මක කළ හැකි පැටවුමක් නොපවතී. ගොනු විධානය භාවිතයෙන් ඔබට මෙය පරීක්ෂා කර බලා පැටවුම තිබේදැයි බලන්න. උදා

    file lmgrd
    lmgrd: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-lsb-x86-64.so.3, for GNU/Linux 2.6.18, stripped
    

    දැන්වීම interpreter /lib64/ld-lsb-x86-64.so.3; මෙම ගොනුව නොපවතී නම්, ඔබ එය ස්ථාපනය කළ යුතුය. 16.04 දින මෙම විශේෂිත පැටවුම සඳහා, පිළිතුර විය sudo apt-get install lsb.

  2. ස්ක්‍රිප්ට් ලෝඩරය සමඟ ගැටළු ( මෙම පිළිතුර බලන්න ).

  3. හවුල් පුස්තකාල අස්ථානගත වී ඇත - ldd <file-name>ඕනෑම "සොයාගත නොහැකි" පුස්තකාලයක් පරීක්ෂා කිරීමට භාවිතා කරන්න. වැඩි විස්තර සඳහා මෙම පිළිතුර බලන්න .

දැනට නොපවතින පැටවුම 32/64 බිට් නොගැලපීම හෝ වෙනත් හේතුවක් නිසා විය හැකිය. මා නොදන්නා වෙනත් ආකාරයේ පැටවුම් දෝෂ තිබිය හැකිය.


3
මගේ නඩුවේදී, file lmutilපරිවර්තකය පෙන්වූයේ නැත, නමුත් lddඑසේ කළ අතර ස්ථාපනය කිරීම lsbගැටළුව විසඳීය.
davidA

4

බිට් 32 සඳහා ඩෙබ් ස්ථාපනය කිරීමෙන් මට තේරුම් ගත්තා මට පුස්තකාල කිහිපයක් නැති බව (ia32-libs සහ libc6 වලට අමතරව). මම මුලින්ම මෙම ගැටළුව විසඳුවේ මෙම විධානය ලබා දෙමිනි:

sudo apt-get install -f          

එවිට මට තවත් දෝෂයක් ඇතිවිය:

Message: SDL_GL_LoadLibrary 
Error: Failed loading libGL.so.1

නිසැකවම, මෙම පුස්තකාල නිසි ලෙස ස්ථාපනය කර ඇත. විස්තර වෙත නොයා පුස්තකාල අතින් සම්බන්ධ කිරීමට මට සිදු විය. පහත දැක්වෙන පැකේජ ස්ථාපනය කිරීම සඳහා Synaptic හරහා පහසු විසඳුමක් ලබා ගත හැකි බව මම තේරුම් ගතිමි:

libgl1-mesa-glx:i386
libgl1-mesa-dri: i386.

ඊට පසු ඊළඟ ගැටළුව වූයේ සෙල්ලම් කරන විට කළු තිරයයි, එය ක්‍රියාත්මක කළ හැකි / ශෑන්ක් / බින් හි ප්‍රතිස්ථාපනය කිරීමෙන් මම විසඳා ගත්තෙමි: http://treefort.icculus.org/smb/smb-linux-mesa-hotfix-test.tar .bz2 .

එය යමෙකුට ප්‍රයෝජනවත් වනු ඇතැයි මම බලාපොරොත්තු වෙමි. ඔබට තවත් උදව් හෝ වැඩි විස්තර අවශ්‍ය නම් කරුණාකර මාව සම්බන්ධ කර ගැනීමට නිදහස් වන්න.


3

මෙන්න ගැටලුවේ ස්වභාවය සහ උබුන්ටු 16.04 වන විට එය නිවැරදි කරන්නේ කෙසේද යන්න පිළිබඳ තව ටිකක් පෙන්වන පිටපතක්. වුවත් බව දැනුම් fileවාර්තා "ගතිකව සම්බන්ධිත", ldd"ගතික ක්රියාවෙහි යෙදවිය නොහැක" වාර්තා කරයි.

$ ./myprogram
bash: myprogram: No such file or directory

$ file myprogram
myprogram: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, not stripped

$ ldd myprogram
    not a dynamic executable

ඔබ libc6: i386 ස්ථාපනය කළ පසු, දේවල් දියුණු වීමට පටන් ගනී ...

$ sudo apt-get install libc6:i386 # the initial fix
...

$ ldd myprogram
    linux-gate.so.1 =>  (0xf77fd000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7626000)
    /lib/ld-linux.so.2 (0x56578000)

$ ./myprogram
myprogram: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

කාර්යය සම්පූර්ණ කිරීම සඳහා, ඔබට වරකට අතිරේක පුස්තකාල හඳුනාගෙන ස්ථාපනය කිරීමට අවශ්‍ය විය හැකිය ...

$ sudo apt-get install libstdc++6:i386 ## may require various additional libs

$ ./myprogram
... works correctly ...

ස්ථාපනය කිරීම සඳහා නිවැරදි පුස්තකාල හඳුනා ගැනීමේ ක්‍රමානුකූල ක්‍රමයක් තිබේදැයි මම නොදනිමි. දෝෂ පණිවිඩ පැකේජ නම් වලට අනුරූපණය කිරීම පිළිබඳ අනුමාන කිරීම් ටිකක් තිබේ (ටැබ් සම්පූර්ණ කිරීම උපකාරී වේ).


ldd(වැරදියට) වාර්තා කරන්නේ “ගතිකව ක්‍රියාත්මක කළ නොහැකි” බවයි.
නොබාර්

0

වින්ඩෝස් හි වැඩ කිරීමේදී (ලිනක්ස් පද්ධතියට වඩා වෙනස් රේඛා බෙදුම්කරුවෙකු නිසා අමතර අක්ෂර හඳුන්වා දෙන) සහ මෙම ස්ක්‍රිප්ට් (අමතර අක්ෂර ඇතුළත් කර) ලිනක්ස් තුළ ධාවනය කිරීමට උත්සාහ කරන විට මෙම දෝෂය සිදු වේ. දෝෂ පණිවිඩය නොමඟ යවන සුළුය.

වින්ඩෝස් හි, රේඛා බෙදුම්කරු CRLF ( \ r \ n ) වන අතර ලිනක්ස් වල එය LF ( \ n ) වේ. මගේ නඩුවේදී, මෙය සිදු වූයේ වින්ඩෝස් හි වැඩ කිරීම සහ ක්‍රියාත්මක කිරීම සඳහා යුනික්ස් සේවාදායකයට උඩුගත කිරීම හේතුවෙනි.


ඉඟිය: පහළ දකුණු කෙළවරේ ඇති VSCode හි ඔබට රේඛීය ටර්මිනේටර් ෆ්‍රින් "CRLF" "LF" ලෙස වෙනස් කළ හැකිය.
කයි නොක්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.