¿Cómo puedo resolver el error "No se puede abrir el archivo de objeto compartido libudev.so.0"?

77

Intenta ejecutar Game Dev Tycoon en Ubuntu 64. Solicita el objeto anterior.

Ejecuté sudo apt-get install libudev1:i386 y volvió instalado.

Tengo /lib/i386-linux-gnu/libudev.so.1 pero no libudev.so.0 en cualquier parte.

    
pregunta senshikaze 01.05.2013 - 00:27

15 respuestas

26

Para Ubuntu de 64 bits, está en el paquete libudev0 de 32 bits.

Puedes instalar eso con el siguiente comando:

sudo apt-get install libudev0:i386

Este paquete se eliminó de Ubuntu en 14.04. Deberá instalarlo desde una versión anterior.

    
respondido por el Sean 01.05.2013 - 13:42
192

Para solucionarlo, vinculé libudev.so.1 a libudev.so.0 :

sudo ln -sf /lib/$(arch)-linux-gnu/libudev.so.1 /lib/$(arch)-linux-gnu/libudev.so.0
    
respondido por el senshikaze 01.05.2013 - 00:27
49

Para ubuntu 14.04 y superior

El método más fácil que encontré fue simplemente descargar .deb ( enlace directo a la descarga de 64 bits y a descarga de 32 bits ) y haga doble clic para instalarlo o use dpkg para instalarlo:

dpkg -i libudev0_175-0ubuntu9_amd64.deb

Para versiones anteriores

En la versión anterior de ubuntu este paquete estaba disponible en los repositorios oficiales. Puede instalarlo con lo siguiente:

sudo apt-get install libudev0:i386
    
respondido por el Ryan Crichton 06.03.2015 - 10:46
29

Tenía el mismo problema para un programa diferente, pero la respuesta aceptada de Sean no me ayudó en absoluto. En mi instalación mejorada de 64 bits 13.04, libudev0 no está disponible ni en formato de 64 bits ni en i386. Y ia32-libs ya está instalado. Entonces no hay dados.

Lo que tenía que hacer era una versión ligeramente modificada de la solución más sensible de senshikaze. De forma manual, hice un enlace simbólico de libudev.so.0 a libudev.so.1 en el directorio lib x86_64, así:

cd /lib/x86_64-linux-gnu/
sudo ln -sf libudev.so.1 libudev.so.0

Esto lo solucionó para mí.

    
respondido por el Cliff 09.06.2013 - 23:49
5

Este error puede ocurrir al intentar usar el ejecutable nw desde Node Webkit . De esta manera:

./nw: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory

Cómo resolver:

  1. Obtenga el editor hexadecimal que le permite cambiar la cadena ASCII de binario, ej. hexedit :

    • En la terminal ( Ctrl + Alt + T ), ejecuta: sudo apt-get install hexedit .
    • Siga las instrucciones presentadas en el terminal (escriba la contraseña si es necesario, confirme la instalación).
  2. Vaya al directorio con nodo webkit :
    • En mi caso: cd ~/Dokumenty/node-webkit-* .
  3. Abre el nw binario usando el comando hexadecimal del editor precedido con sudo :
    • Ejecutar: sudo hexedit nw .
  4. Buscar libudev.so.0 como cadena ASCII:
    • Si usas hexedit : presiona Tab .
    • Presione Ctrl + S .
    • Tipo: libudev.so.0 .
  5. Cambia 0 en libudev.so.0 cadena por 1 , por lo que se convierte en: libudev.so.1 :
    • Use las teclas de flecha para seleccionar 0 en libudev.so.0 cadena.
    • Presione 1 en el teclado.
  6. Salir y guardar cambios.
    • Presione Ctrl + X .
    • Presione Y para guardar los cambios.

Has terminado. Esto también soluciona el problema con el binario de Atraci cuando se siguen las mismas instrucciones, excepto el archivo Atraci de edición hexadecimal en lugar de nw.

    
respondido por el Daniel Kmak 27.04.2014 - 08:42
4

La única respuesta aquí que funciona en Ubuntu 14.04 es la respuesta aceptada, y dado que muchos comentarios señalan que esto puede causar problemas con el sistema en el futuro (aunque yo mismo no sé), se me ocurrió una compromiso. Este script solicitará (en el terminal) la contraseña de su raíz. Creará el enlace simbólico e iniciará la aplicación (en mi caso, el tiempo de las palomitas de maíz). Cuando salga de la aplicación, utilizará la sesión de sudo existente para eliminar el enlace simbólico:

#!/bin/sh
sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
./Popcorn-Time #replace this line with the path to the executable you want to launch
sudo rm /lib/i386-linux-gnu/libudev.so.0
    
respondido por el TenLeftFingers 15.04.2014 - 19:59
4

Acabo de encontrar la forma de hacer que esto funcione, aunque es bastante tonto.

Tengo Google Chrome instalado en mi sistema y Chrome tiene incorporado este objeto compartido. Entonces, solo tuve que hacer un enlace simbólico a la biblioteca en el directorio de instalación de Chrome.

ln -sf /opt/google/chrome/libudev.so.0 /lib/x86_64-linux-gnu/libudev.so.0

Me funciona bastante bien.

    
respondido por el nunesvictor 09.05.2014 - 13:28
3

Esta fue la solución más simple que encontré

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
    
respondido por el Weston Ganger 09.01.2015 - 06:26
2

como Phil Strong señaló

instalar libudev.so.1

sudo apt-get install libudev1:i386

luego vincúlelo como libudev.so.0

sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
    
respondido por el Zeroows 06.06.2015 - 03:29
1

Hice esto el 14.04, pero debería ser similar. simplemente elimine el paquete y vuelva a instalarlo. las bibliotecas correctas se instalan apropiadamente.

apt-get purge google-chrome-stable
apt-get install google-chrome-stable

estoy seguro de que las otras respuestas funcionan, pero tengo una base básica en la modificación de los objetos del sistema de archivos que son administrados por los paquetes de administración de configuración.

    
respondido por el MARK SMITH 09.09.2014 - 11:44
1

Esto es lo que solía resolver el mismo problema en Ubuntu 15.04 de 32 bits.

cd i386-linux-gnu
sudo ln -sf libudev.so.1 libudev.so.0
    
respondido por el user491326 09.01.2016 - 19:33
0

ACTUALIZAR Hice una secuencia de comandos bash para envolver el programa que desea ejecutar. Puede agregarlo a su carpeta bin local y simplemente iniciar el programa sin la copia & amp; pegar o ejecutar scripts de shell.

#!/bin/bash

ProgramToExecute="/PATH/TO/PROGRAM" #Example: $HOME/dart/./DartEditor

system=$(uname -m) #Returns x86_64 on 64 bit systems
libdir="/lib/$system-linux-gnu"
libudev1="$libdir/libudev.so.1"

if [ ! -f $libudev1 ]
then
        #check if an i386 folder exist because ' uname -m' returns i686 instead of i386.
        libdir="/lib/i386-linux-gnu"
        libudev1="$libdir/libudev.so.1"
        #if none of the lookups return a file, this script exits,
        BreakUpNotice="This $libudev1 isn't working out. It's not you
        it's me. Or maybe you forgot to install libudev1 library.
        sudo apt-get install libudev1 "

        [ ! -f $libudev1 ] && echo $BreakUpNotice  && exit 0
fi

libudev0="$libdir/libudev.so.0"

echo "$libudev1 found."
sudo ln -sf $libudev1 $libudev0
sudo -k #revoke sudo 
$($ProgramToExecute)

NoticeAfterExec="Enter sudo to del libudev link (recommended) or press CTRL+C to cancel."
RmSuccess="And $libudev0 link is gone."
RmFailed="Whaat? $libudev0 still exists."

echo $NoticeAfterExec
sudo rm $libudev0
sudo -k
[ ! -f "$libudev0" ]  && echo $RmSuccess || echo $RmFailed
exit 

ANTERIOR RESPUESTA En Ubuntu 14.04 recibí el mensaje de error del Editor de Dart cuando intentaba utilizar Live Preview (Chromium). El error se solucionó instalando libudev1 y creando un enlace simbólico .

    sudo apt-get install libudev1

También utilicé el script mencionado anteriormente por TenLeftFingers para ejecutar DartEditor.

    #!/bin/sh
    sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
    ./DartEditor
    sudo rm /lib/i386-linux-gnu/libudev.so.0

Si Dart Editor no se ejecuta, asegúrese de que JAVA esté instalado y que no sea un problema de permiso.

    sudo apt-get install python-software-properties
    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java7-installer

y hacer que el IDE sea ejecutable:

    sudo chmod a+x ./DartEditor

Esto funcionó para mí.

    
respondido por el Diaz 26.05.2014 - 00:28
0

Estaba obteniendo el mismo error en mi sistema de 32 bits después de actualizar de Xubuntu Precise a Trusty. Esto lo solucionó para mí:

sudo dpkg-reconfigure google-chrome-stable

Lo encontré aquí . Sin ningún parámetro, no estoy seguro de cómo lo solucionó, pero lo hizo. Lo que más me gustó es que no requería hacer nada que pudiera causarme problemas en el futuro, y no me exigía buscar ningún paquete.

    
respondido por el undrline 14.08.2014 - 22:06
-1

Si alguien tropieza con esta página mientras busca información en la web sobre libudev.so.0 & amp; el Emotiv Epoc SDK Dev Edition en Ubuntu, espero que lo siguiente ayude:

// mi configuración es 64bit Ubuntu 13.04

Para un sistema de 64 bits:

sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1. /lib/x86_64-linux-gnu/libudev.so.1

sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0

lo que permite evitar el "error al cargar bibliotecas compartidas: libudev.so.0: clase ELF incorrecta: ELFCLASS32"

sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /usr/lib/libudev.so.0

Para un sistema de 32 bits:

sudo ln -sf /lib/i386-linux-gnu/libudev.so.1. /lib/i386-linux-gnu/libudev.so.1

sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0

lo que permite evitar el "error al cargar bibliotecas compartidas: libudev.so.0: clase ELF incorrecta: ELFCLASS64" (tenga en cuenta que es una suposición, estoy en un sistema de 64 bits)

sudo ln -sf /lib/i386-linux-gnu/libudev.so.1 /usr/lib/libudev.so.0

El EmotivControlPanel, EmoKey, EmoComposer, los ejemplos de Java & amp; pequeños ejemplos personalizados de Qt deberían ser capaces de ejecutar después de hacer lo anterior (ya probé todos los pasos anteriores + otros encontrados en la web (desbordamiento de pila, ...), pero ninguno me funcionaba, así que eso es lo que terminé haciendo después algunos "try & amp; errors"

Por último, pero no menos importante, si alguien aquí sabe cómo ejecutar programas compilados contra bibliotecas de 32 bits en un sistema de 64 bits MIENTRAS ESTÁ ESPECIFICANDO PARA UTILIZAR UNA BIBLIOTECA DE PARTE 3PARA DE 32 BITS?

  

más precisamente, para aquellos que saben de lo que estoy hablando, ¿cómo se supone que debo ejecutar el "EmoCube" & amp; Ejemplos de Qt "BlueAvatar" en mi sistema de 64 bits?

- & gt; por lo que he intentado hasta ahora, lo máximo que pude obtener fue: "error al cargar bibliotecas compartidas: libedk.so.1: clase ELF incorrecta: ELFCLASS64"

Supongo que un enlace simbólico a esa lib en el directorio i386 no lo haría (aunque no lo intenté todavía), así que si alguien tiene una respuesta ... Estoy deseando leerla.

¡Saludos a todos +

    
respondido por el StephaneAG 09.12.2013 - 02:00
-4

Ejecuta estos comandos en una terminal:

cd /lib/x86_64-linux-gnu/
sudo cp libudev.so.0.13.0 libudev.so.1

Esto me ha ayudado

    
respondido por el user214274 10.11.2013 - 06:03

Lea otras preguntas en las etiquetas