GNU/Linux >> Tutoriales Linux >  >> Linux

El ejecutable de Linux falla con Archivo no encontrado a pesar de que el archivo está allí y en PATH

esto:

$ 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

Combinado con esto:

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

Sugiere fuertemente que el sistema no tiene el /lib/ld-linux.so.2 Intérprete ELF. Es decir, este sistema de 64 bits no tiene instalada ninguna biblioteca de compatibilidad de 32 bits. Por lo tanto, la respuesta de @user1334609 es esencialmente correcta.


Bien, estuve ocupado durante las últimas ocho horas para que mi sistema volviera a funcionar después de que la CPU se apagara por sobrecalentamiento. Al reiniciar, se hizo evidente que estaba tan jodido que incluso la consola alternativa de initrd ya no reconocía mi teclado. Es un misterio para mí cómo el sistema logró mantenerse operativo durante tanto tiempo, mientras intentaba implementar las innumerables sugerencias de usted (¡muchas gracias!)

Problema al reiniciar:

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

y ningún teclado funciona después :-)

El problema fue:una actualización reemplazó el enlace simbólico /lib -> /usr/lib con un directorio. Eso significaba todas las bibliotecas y módulos del núcleo, que se espera que estén en /lib faltaban :-)

Así que recreé el enlace simbólico y reinstalé el sistema base desde un CD en vivo.

Ahora que tengo internet de nuevo, también encontré este hilo

También usé el administrador de paquetes de mi instalación en disco bloqueada (llamada pacman ) del CD en vivo para reinstalar todos los paquetes del grupo base (quizás solo el kernel, por lo que el paquete linux hubiera sido suficiente, no sé)

Para lograr eso, monte la partición principal de la instalación bloqueada en el /mnt directorio del sistema de CD en vivo y use chroot para hacer pacman pensar /mnt es / (inserte la partición principal de su sistema bloqueado para 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

Para el registro:cree un enlace simbólico relativo, entonces ln -s usr/lib /mnt/lib y no ln -s /usr/lib /mnt/lib , porque durante el inicio temprano del sistema (etapa initrd) la partición principal se montará primero en /new_root . Si el enlace simbólico fuera absoluto, obtendría el error mencionado anteriormente durante el inicio temprano.


Está intentando ejecutar una aplicación de 32 bits en un sistema operativo de 64 bits, por lo que necesita instalar bibliotecas de compatibilidad de 32 bits (glibc en particular) antes de que funcione.


Linux
  1. Encuentra archivos y directorios en Linux con el comando de búsqueda

  2. Lea y escriba datos desde cualquier lugar con redirección en la terminal de Linux

  3. Archivo png.h no encontrado - Linux

  4. 'rm' no encontrado en PATH o no ejecutable

  5. El script SH en $PATH no se encuentra en Linux Alpine 3.11

Introducción al sistema de archivos de Linux

Descargar archivos con Wget en Linux Shell - Explicación y ejemplos

Cómo capturar sesiones de terminal y salida con el comando de script de Linux

Asegure Linux con el archivo Sudoers

/bin/ls no encontrado, ¡aunque existe!

Linux:dónde colocar el archivo de intercambio