GNU/Linux >> Znalost Linux >  >> Linux

Když spustitelné soubory nejsou?

Tato otázka zde již obsahuje odpovědi :Uzavřeno před 9 lety.

Možný duplikát:
Některé binární soubory nelze spustit v prostředí chroot (zsh:Nenalezeno)

Dnes jsem narazil na něco, co mě zarazilo. Spolupracovník pracuje se specifickým předkompilovaným binárním souborem, který si stáhl (k dispozici zde). Na serveru Ubuntu 10.04 LTS, na kterém pracuje, pokus o spuštění tohoto souboru vede k nenalezení souboru, a to i se správně nastavenými oprávněními.

A přesto, když se o totéž pokusím z OpenSUSE 11.4, běží to v pohodě. Spuštění file na to mi dává:

ELF 32bitový LSB spustitelný soubor, Intel 80386, verze 1 (SYSV), dynamicky propojený (používá sdílené knihovny), pro GNU/Linux 2.6.15, zbavený

Oba boxy Ubuntu i OpenSUSE jsou 64bitové instalace a file vrátí stejné informace na obou počítačích.

Což mi přijde v pohodě. A na krabici opensuse mi LDD dokonce dává krátký seznam souborů knihovny. Ruční kontrola, všechny tyto zadané soubory existují také na serveru Ubuntu. Výstup trace je však odlišný:

Opensuse:

execve(./trid”, [./trid”], [/* 122 vars */]) =0

Ubuntu (úplná cesta nezmění výsledek):

execve(./trid”, [./trid”], [/* 19 vars */]) =-1 ENOENT (Žádný takový soubor nebo adresář)

Co může způsobit, že soubor jako tento nebude tímto způsobem spustitelný?

Přijatá odpověď:

Typ

ldd ./trid

v systému openSuse i Ubuntu.

Mám podezření, že zjistíte, že tomu druhému chybí soubor knihovny.


Linux
  1. Vytvářejte a odebírejte odkládací soubory v Ubuntu

  2. 7zip File:Jak dekomprimovat 7z soubory na Ubuntu, Debian, Fedora

  3. Programování Prolog v Ubuntu

  1. Jak otevřít soubory ISO na Ubuntu Linux

  2. Proč rsync nepoužívá delta-transfer pro místní soubory?

  3. Jak odstranit soubory .fuse_hidden*?

  1. Jak zacházet se soubory pomocí Scilab na Ubuntu 15.04

  2. Použijte příkaz CAT ke kombinaci textových souborů v Ubuntu 20.04

  3. 5 způsobů, jak upravit soubory PDF v Ubuntu