GNU/Linux >> Tutoriels Linux >  >> Linux

L'exécutable Linux échoue avec le fichier introuvable même si le fichier est là et dans PATH

Ceci :

$ 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

Combiné avec ceci :

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

Suggère fortement que le système n'a pas le /lib/ld-linux.so.2 Interprète ELF. Autrement dit, ce système 64 bits n'a aucune bibliothèque de compatibilité 32 bits installée. Ainsi, la réponse de @ user1334609 est essentiellement correcte.


OK, j'ai été occupé pendant les huit dernières heures pour remettre mon système en marche après l'arrêt de la surchauffe du processeur. Au redémarrage, il est devenu évident qu'il était tellement foutu que même la console de secours d'initrd ne reconnaissait plus mon clavier. C'est un mystère pour moi de savoir comment le système a réussi à rester opérationnel aussi longtemps, alors que j'essayais de mettre en œuvre les innombrables suggestions de votre part (merci beaucoup !!)

Problème au redémarrage :

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

et aucun clavier ne fonctionne ensuite :-)

Le problème était :une mise à jour a remplacé le lien symbolique /lib -> /usr/lib avec un répertoire. Cela signifiait donc toutes les bibliothèques et les modules du noyau, qui devraient être en /lib manquaient :-)

J'ai donc recréé le lien symbolique et réinstallé le système de base à partir d'un CD live.

Maintenant que j'ai à nouveau Internet, j'ai aussi trouvé ce fil

J'ai également utilisé le gestionnaire de paquets de mon installation sur disque en brique (appelée pacman ) depuis le live CD pour réinstaller tous les packages du groupe de base (peut-être uniquement le noyau, donc package linux aurait été suffisant, je ne sais pas)

Pour ce faire, montez la partition principale de l'installation maçonnée sur le /mnt répertoire du système de CD live et utilisez chroot faire pacman pensez /mnt est / (insérez la partition principale de votre système maçonné pour 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

Pour mémoire :créer un lien symbolique relatif, donc ln -s usr/lib /mnt/lib et non ln -s /usr/lib /mnt/lib , car lors du démarrage précoce du système (étape initrd), la partition principale sera d'abord montée sur /new_root . Si le lien symbolique était absolu, vous obtiendrez l'erreur mentionnée ci-dessus lors du démarrage précoce.


Vous essayez d'exécuter une application 32 bits sur un système d'exploitation 64 bits, vous devez donc installer des bibliothèques de compatibilité 32 bits (glibc en particulier) avant que cela puisse fonctionner.


Linux
  1. Comment capturer les sessions de terminal et la sortie avec la commande de script Linux

  2. mkfs.hfsplus :commande introuvable

  3. fichier png.h introuvable - Linux

  4. vmlinuz et initrd introuvables après la construction du noyau ?

  5. Le script SH dans $PATH est introuvable sur Linux Alpine 3.11

Copiez et collez sur la ligne de commande Linux avec xclip

Introduction au système de fichiers Linux

Télécharger des fichiers avec Wget sur le shell Linux - Explication et exemples

Sécurisez Linux avec le fichier Sudoers

Comment monter et démonter un système de fichiers sous Linux

'rm' introuvable dans PATH ou non exécutable