web-dev-qa-db-fra.com

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

Essayer de lancer Game Dev Tycoon sur Ubuntu 64. Il demande pour l'objet ci-dessus.

J'ai couru Sudo apt-get install libudev1:i386 et il est revenu déjà installé.

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

81
senshikaze

Pour Ubuntu 64 bits, il se trouve dans le paquetage 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 plus ancienne.

26
Sean

Pour résoudre ce problème, 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
199
senshikaze

Pour Ubuntu 14.04 et au-dessus

La méthode la plus simple que j'ai trouvée consistait à simplement télécharger le fichier .deb ( lien direct vers le téléchargement 64 bits et à 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 les versions précédentes 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
55
Ryan Crichton

J'ai eu le même problème pour un programme différent, mais la réponse acceptée par Sean ne m'a pas aidé du tout. Sur mon installation mise à niveau de la version 13.04 64 bits, libudev0 n'est disponible ni sous la forme 64 bits ni sous la forme 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 manuellement lié symboliquement libudev.so.0 à libudev.so.1 dans le répertoire lib x86_64, ainsi:

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

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

32
Cliff

Cette erreur peut survenir lorsque vous essayez d'utiliser nw exécutable depuis 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. Obtenez un éditeur hexadécimal qui vous permet de changer ASCII chaîne de binaire, par exemple. hexedit:

    • En terminal (Ctrl+Alt+T), lancez: Sudo apt-get install hexedit.
    • Suivez les instructions présentées dans le terminal (entrez un mot de passe si nécessaire, confirmez l'installation).
  2. Aller au répertoire avec node ​​webkit:
    • Dans mon cas: cd ~/Dokumenty/node-webkit-*.
  3. Ouvrez nw binaire à l'aide de la commande d'éditeur hexagonal précédée de Sudoname __:
    • Exécuter: Sudo hexedit nw.
  4. Recherchez libudev.so.0 comme ASCII chaîne:
    • Si vous utilisez hexedit: Appuyez sur Tab.
    • Presse Ctrl+S.
    • Tapez: libudev.so.0.
  5. Remplacez 0 dans la chaîne libudev.so.0 par 1, afin qu'il devienne: libudev.so.1:
    • Utilisez les touches fléchées pour sélectionner 0 dans la chaîne libudev.so.0.
    • Presse 1 sur le clavier.
  6. Quitter et enregistrer les modifications.
    • Presse Ctrl+X.
    • Presse Y enregistrer les modifications.

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

5
Daniel Kmak

Je viens de trouver un moyen de faire ce travail, est assez bête.

Google Chrome est installé sur mon système et Chrome a cet objet partagé incorporé. Il me suffisait donc de créer un lien symbolique vers la bibliothèque dans le répertoire d'installation Chrome.

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

Cela fonctionne très bien pour moi.

4
nunesvictor

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
4
Weston Ganger

La seule réponse qui fonctionne ici sur Ubuntu 14.04 est la réponse acceptée, et comme de nombreux commentaires soulignent que cela peut causer des problèmes avec le système à l'avenir (bien que je ne le sache pas moi-même), j'ai proposé un 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, la session Sudo existante est supprimée 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
4
TenLeftFingers

comme Phil Strong souligné

installer libudev.so.1

Sudo apt-get install libudev1:i386

puis reliez-le en tant que libudev.so.0

Sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
2
Zeroows

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

cd i386-linux-gnu
Sudo ln -sf libudev.so.1 libudev.so.0
1
user491326

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

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

je suis sûr que les autres réponses fonctionnent, mais je peux également modifier les objets de système de fichiers gérés par les packages de gestion de la configuration.

1
MARK SMITH

La même erreur se produisait sur mon système 32 bits après la mise à niveau de Xubuntu Precise vers Trusty. Cela a résolu le problème pour moi:

Sudo dpkg-reconfigure google-chrome-stable

Je l'ai trouvé ici . Sans aucun paramètre, je ne sais pas trop comment cela a résolu le problème, mais c'est ce qui s'est passé. Ce que j’ai préféré, c’est que cela n’exigeait rien qui puisse potentiellement me causer des problèmes à l’avenir, ni que je recherche des colis.

0
undrline

UPDATE J'ai créé un script bash pour envelopper le programme que vous voulez exécuter. Vous pouvez l'ajouter à votre dossier bin local et simplement démarrer le programme sans copier/coller ni exécuter de 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 

ANCIENNE RÉPONSE Dans Ubuntu 14.04, le message d’erreur de l’éditeur de fléchettes me parvint lorsque je tentais d’utiliser l’aperçu en direct (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, assurez-vous 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 le IDE exécutable:

    Sudo chmod a+x ./DartEditor

Cela a fonctionné pour moi.

0
Diaz