Comment résoudre une erreur "Impossible d'ouvrir le fichier objet partagé libudev.so.0"?

77

Essayer d'exécuter Game Dev Tycoon sur Ubuntu 64. Il demande l'objet ci-dessus.

J'ai lancé sudo apt-get install libudev1:i386 et il est déjà installé.

J'ai /lib/i386-linux-gnu/libudev.so.1 mais pas de libudev.so.0 nulle part.

    
posée senshikaze 01.05.2013 - 02:27
la source

15 réponses

26

Pour Ubuntu 64 bits, il se trouve dans le paquet libudev0 32 bits.

Vous pouvez l’installer avec la commande suivante:

sudo apt-get install libudev0:i386

Ce paquet a été retiré d’Ubuntu en 14.04. Vous devrez l'installer à partir d'une version antérieure.

    
réponse donnée Sean 01.05.2013 - 15:42
la source
191

Pour corriger, j'ai lié libudev.so.1 à libudev.so.0 :

sudo ln -sf /lib/$(arch)-linux-gnu/libudev.so.1 /lib/$(arch)-linux-gnu/libudev.so.0
    
réponse donnée senshikaze 01.05.2013 - 02:27
la source
49

Pour Ubuntu 14.04 et supérieur

La méthode la plus simple a été de télécharger le fichier .deb ( lien direct vers le téléchargement 64 bits et vers téléchargement 32 bits ) et double-cliquez dessus pour l'installer ou utilisez dpkg pour l'installer:

dpkg -i libudev0_175-0ubuntu9_amd64.deb

Pour les versions précédentes

Dans la version précédente d'ubuntu, ce paquet était disponible dans les dépôts officiels. Vous pouvez installer avec les éléments suivants:

sudo apt-get install libudev0:i386
    
réponse donnée Ryan Crichton 06.03.2015 - 11:46
la source
29

J'ai eu le même problème pour un programme différent, mais la réponse acceptée de Sean ne m'a pas aidé du tout. Sur mon installation mise à niveau de la version 64 bits 13.04, libudev0 n'est pas disponible sous forme 64 bits ou i386. Et ia32-libs est déjà installé. Donc pas de dés.

Ce que je devais faire était une version légèrement modifiée de la solution plus technique de senshikaze. J'ai lié manuellement libudev.so.0 à libudev.so.1 dans le répertoire lib x86_64, donc:

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

Cela a résolu le problème pour moi.

    
réponse donnée Cliff 10.06.2013 - 01:49
la source
5

Cette erreur peut survenir lors de la tentative d'utilisation de nw exécutable à partir de Node Webkit . Comme ça:

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

Comment résoudre:

  1. Récupère l’éditeur hexadécimal qui vous permet de changer la chaîne ASCII du binaire, par exemple. hexedit :

    • Dans le terminal ( Ctrl + Alt + T ), exécutez: sudo apt-get install hexedit .
    • Suivez les instructions présentées dans le terminal (tapez le mot de passe si nécessaire, confirmez l'installation).
  2. Accédez au répertoire contenant le noeud webkit :
    • Dans mon cas: cd ~/Dokumenty/node-webkit-* .
  3. Ouvrez nw en utilisant la commande de l'éditeur hexadécimal précédée de sudo :
    • Exécuter: sudo hexedit nw .
  4. Recherchez libudev.so.0 en tant que chaîne ASCII:
    • Si vous utilisez hexedit : appuyez sur Tab .
    • Appuyez sur Ctrl + S .
    • Tapez: libudev.so.0 .
  5. Remplacez 0 in libudev.so.0 string par 1 , il devient donc: libudev.so.1 :
    • Utilisez les touches fléchées pour sélectionner 0 in libudev.so.0 string.
    • Appuyez sur 1 sur le clavier.
  6. Quittez et enregistrez les modifications.
    • Appuyez sur Ctrl + X .
    • Appuyez sur Y pour enregistrer les modifications.

Vous avez terminé. Cela corrige également le problème avec le binaire Atraci lorsque l'on suit les mêmes instructions, à l'exception de l'édition hexadécimale du fichier Atraci au lieu de nw.

    
réponse donnée Daniel Kmak 27.04.2014 - 10:42
la source
4

La seule réponse ici qui fonctionne sur Ubuntu 14.04 est la réponse acceptée, et puisque de nombreux commentaires soulignent que cela peut causer des problèmes avec le système (bien que je ne le sache pas moi-même) faire des compromis. Ce script vous demandera (dans le terminal) votre mot de passe root. Il créera le lien symbolique et lancera l'application (dans mon cas, l'heure du pop-corn). Lorsque vous quittez l'application, elle utilisera la session sudo existante pour supprimer le lien symbolique:

#!/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
    
réponse donnée TenLeftFingers 15.04.2014 - 21:59
la source
4

Je viens juste de trouver un moyen de rendre ce travail, mais c'est assez idiot.

Google Chrome est installé sur mon système et cet objet partagé est intégré à Chrome. Je devais donc créer un lien symbolique vers le répertoire d'installation de la bibliothèque sur Chrome.

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

Ça marche plutôt bien pour moi.

    
réponse donnée nunesvictor 09.05.2014 - 15:28
la source
3

C'était la solution la plus simple que j'ai trouvée

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
    
réponse donnée Weston Ganger 09.01.2015 - 07:26
la source
2

comme Phil Strong a souligné

installer libudev.so.1

sudo apt-get install libudev1:i386

puis liez-le comme libudev.so.0

sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
    
réponse donnée Zeroows 06.06.2015 - 05:29
la source
1

Je l'ai fait le 14.04, mais devrait être similaire. Supprimez simplement le paquet et réinstallez-le. les bibliothèques correctes sont correctement installées.

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

Je suis sûr que les autres réponses fonctionnent, mais j'ai tout à fait raison de modifier les objets du système de fichiers gérés par les packages de gestion de la configuration.

    
réponse donnée MARK SMITH 09.09.2014 - 13:44
la source
1

C'est ce que j'ai utilisé pour résoudre le même problème sur Ubuntu 15.04 32 bits.

cd i386-linux-gnu
sudo ln -sf libudev.so.1 libudev.so.0
    
réponse donnée user491326 09.01.2016 - 20:33
la source
0

MISE À JOUR J'ai fait un script bash pour envelopper le programme que vous voulez exécuter. Vous pouvez l'ajouter à votre dossier bin local et démarrer le programme sans la copie et l'ampli; coller ou exécuter des scripts 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 

VIEILLE RÉPONSE Dans Ubuntu 14.04, je recevais le message d'erreur de l'éditeur de fléchettes lorsque j'essayais d'utiliser Live Preview (Chromium). L’erreur a été résolue en installant libudev1 et en créant un lien symbolique .

    sudo apt-get install libudev1

J'ai également utilisé le script mentionné ci-dessus par TenLeftFingers pour exécuter 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 l'éditeur de fléchettes ne s'exécute pas, vérifiez que JAVA est installé et qu'il ne s'agit pas d'un problème d'autorisation.

    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

et rendre l’exécutable de l’IDE:

    sudo chmod a+x ./DartEditor

Cela a fonctionné pour moi.

    
réponse donnée Diaz 26.05.2014 - 02:28
la source
0

Je recevais la même erreur sur mon système 32 bits après la mise à niveau de Xubuntu Precise vers Trusty. Cela a corrigé pour moi:

sudo dpkg-reconfigure google-chrome-stable

Je l'ai trouvé ici . Sans aucun paramètre, je ne suis pas sûr de la façon dont cela a été corrigé, mais c’était le cas. Ce que j’apprécie le plus, c’est qu’il n’a pas été nécessaire de faire quoi que ce soit qui pourrait me causer des problèmes à l’avenir, et que je n’ai pas besoin de rechercher des paquets.

    
réponse donnée undrline 15.08.2014 - 00:06
la source
-1

Si quelqu'un tombe sur cette page en cherchant sur le Web des correctifs sur libudev.so.0 & amp; l’Evocation de développement SDK Epoc sur Emotion, j’espère que ce qui suit vous aidera:

// ma configuration est Ubuntu 13 bits 64 bits

Pour un système 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

ce qui permet d'éviter "l'erreur lors du chargement des bibliothèques partagées: libudev.so.0: mauvaise classe ELF: ELFCLASS32"

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

Pour un système 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

ce qui permet d'éviter "l'erreur lors du chargement des bibliothèques partagées: libudev.so.0: mauvaise classe ELF: ELFCLASS64" (notez que c'est une hypothèse, je suis sur un système 64 bits)

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

EmotivControlPanel, EmoKey, EmoComposer, les exemples Java & amp; de petits exemples Qt personnalisés devraient pouvoir être exécutés après avoir fait ce qui précède (j'ai déjà essayé toutes les étapes ci-dessus + d'autres sur le Web (débordement de pile, ..), mais aucun ne fonctionnait pour moi. certains "try & amp; erreurs"

Last but not least, si quelqu'un ici sait comment exécuter des programmes compilés sur des bibliothèques 32 bits sur un système 64 bits, TOUT EN PRÉCISANT À UTILISER UNE BIBLIOTHÈQUE 3RD PARTY 32BIT?

  

plus précisément, pour ceux qui savent de quoi je parle, comment suis-je censé exécuter le "EmoCube" & amp; "BlueAvatar" Qt exemples sur mon système 64 bits?

- & gt; pour ce que j'ai essayé jusqu'ici, le plus que je pouvais obtenir était: "erreur lors du chargement des bibliothèques partagées: libedk.so.1: mauvaise classe ELF: ELFCLASS64"

Je suppose qu'un lien symbolique vers cette lib dans le répertoire i386 ne le ferait pas (même si je ne l'ai pas encore essayé), donc si quelqu'un a une réponse ... Je suis impatient de le lire.

Bravo à tous +

    
réponse donnée StephaneAG 09.12.2013 - 03:00
la source
-4

Exécutez ces commandes dans un terminal:

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

Cela m'a aidé

    
réponse donnée user214274 10.11.2013 - 07:03
la source

Lire d'autres questions sur les étiquettes