"Paylaşılan nesne dosyası libudev.so.0 açamıyor" hatasını nasıl çözebilirim?

77

Ubuntu 64 üzerinde Game Dev Tycoon 'u çalıştırmayı dener. Yukarıdaki nesneyi sorar.

sudo apt-get install libudev1:i386 dosyasını çalıştırdım ve geri yüklendi.

/lib/i386-linux-gnu/libudev.so.1 değerine sahibim, ancak libudev.so.0 yok.

    
sordu senshikaze 01.05.2013 02:27

15 cevap

26

64 bit Ubuntu için, 32 bit libudev0 paketindedir.

Bunu aşağıdaki komutla yükleyebilirsiniz:

sudo apt-get install libudev0:i386

Bu paket 14.04'te Ubuntu'dan kaldırıldı. Eski bir sürümden yüklemeniz gerekecek.

    
verilen cevap Sean 01.05.2013 15:42
192

Düzeltmek için libudev.so.1 'si libudev.so.0 değerine bağladım:

sudo ln -sf /lib/$(arch)-linux-gnu/libudev.so.1 /lib/$(arch)-linux-gnu/libudev.so.0
    
verilen cevap senshikaze 01.05.2013 02:27
49

Ubuntu 14.04 ve üstü için

Bulduğum en kolay yöntem, yalnızca .deb dosyasını indirmekti ( 64 bit indirmeye doğrudan bağlantı ve 32-bit indirme ) ve yüklemek için çift tıklayın veya yüklemek için dpkg kullanın:

dpkg -i libudev0_175-0ubuntu9_amd64.deb

Önceki sürümler için

Ubuntu'nun önceki sürümünde bu paket resmi depolarda mevcuttu. Aşağıdakilerle yükleyebilirsiniz:

sudo apt-get install libudev0:i386
    
verilen cevap Ryan Crichton 06.03.2015 11:46
29

Farklı bir program için aynı problemi yaşadım, ama Sean'ın kabul ettiği cevap bana hiç yardımcı olmadı. Yükseltilmiş 64 bit 13.04 yüklememde, libudev0 64 bit veya i386 biçiminde kullanılamaz. Ve ia32-libs zaten yüklü. Yani zar yok.

Yapmam gereken şey biraz daha değiştirilmiş bir versiyon senshikaze'in daha teknik çözümüydü. Libudev.so.0 dosyasını libsonv.so.1 dizinine x86_64 lib dizininde elle linkledim:

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

Bu benim için düzeltildi.

    
verilen cevap Cliff 10.06.2013 01:49
5

Düğüm Web Takımı 'ndan nw yürütülebilir dosyayı kullanmaya çalışırken bu hata meydana gelebilir. Bunun gibi:

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

Nasıl çözülür:

  1. ASCII dizisini ikili değiştirmenize izin veren hex editörünü alın, örn. hexedit :

    • Terminalde ( Ctrl + Alt + T ), çalıştırın: sudo apt-get install hexedit .
    • Terminalde sunulan talimatları izleyin (gerekiyorsa şifreyi yazın, yüklemeyi onaylayın).
  2. node webkit ile dizine git:
    • Benim durumumda: cd ~/Dokumenty/node-webkit-* .
  3. sudo ile öncelen onaltılık editör komutunu kullanarak ikili nw 'yi açın:
    • Çalıştır: sudo hexedit nw .
  4. ASCII dizesi olarak libudev.so.0 ara:
    • hexedit kullanılıyorsa: Sekmesi 'e basın.
    • Ctrl + S 'e basın.
    • Tür: libudev.so.0 .
  5. 0 dizesinde libudev.so.0 dizesini 1 olarak değiştir, böylece şöyle olur: libudev.so.1 :
    • 0 dizesinde libudev.so.0 öğesini seçmek için ok tuşlarını kullanın.
    • Klavyede 1 'e basın.
  6. Çık ve değişiklikleri kaydet.
    • Ctrl + X 'e basın.
    • Değişiklikleri kaydetmek için Y 'e basın.

İşin bitti. Bu aynı zamanda, nw yerine onaltılık düzenleme Atraci dosyası hariç aynı talimatları uygularken Atraci ikili ile sorunu düzeltir.

    
verilen cevap Daniel Kmak 27.04.2014 10:42
4

Burada Ubuntu 14.04 üzerinde çalışan tek cevap kabul edilen bir cevaptır ve pek çok yorum, bunun sistemin yoldan aşağı inmesine neden olabileceğine işaret ettiğinden (bunu kendim bilmese de) uzlaşmadır. Bu betik, root şifreniz için (terminalde) isteyecektir. Sembolik bağlantıyı yaratacak ve uygulamayı başlatacak (benim durumumda patlamış mısır zamanı). Uygulamayı bıraktığınızda, sembolik bağlantıyı kaldırmak için varolan sudo oturumunu kullanır:

#!/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
    
verilen cevap TenLeftFingers 15.04.2014 21:59
4

Bu işi yapmak için yeni bir yol buldum, ama oldukça aptalca.

Sistemimde Google Chrome yüklü ve Chrome'un bu paylaşılan nesne gömülü. Bu yüzden, Chrome kurulum dizinindeki kütüphaneye sembolik bir bağlantı yapmak zorunda kaldım.

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

Benim için gayet iyi çalışıyor.

    
verilen cevap nunesvictor 09.05.2014 15:28
3

Bu bulduğum en basit çözümdü

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
    
verilen cevap Weston Ganger 09.01.2015 07:26
2

Phil Strong işaret etti

libudev.so.1 uygulamasını yükleyin

sudo apt-get install libudev1:i386

sonra libudev.so.0

olarak bağla
sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
    
verilen cevap Zeroows 06.06.2015 05:29
1

Bunu 14.04'te yaptım, ama benzer olmalı. sadece paketi silin ve yeniden yükleyin. Doğru kütüphaneler uygun şekilde kurulur.

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

Diğer cevapların işe yaradığından emin olabilirim, ancak yapılandırma yönetim paketleri tarafından yönetilen dosya sistemi nesnelerini değiştirirken temel bir et kaynağım var.

    
verilen cevap MARK SMITH 09.09.2014 13:44
1

Bu aynı sorunu 32 bit Ubuntu 15.04'te çözdüm.

cd i386-linux-gnu
sudo ln -sf libudev.so.1 libudev.so.0
    
verilen cevap user491326 09.01.2016 20:33
0

GÜNCELLEME Yürütmek istediğin programa sarmak için bir bash betiği yaptım. Yerel bin klasörünüze ekleyebilir ve kopyala & amp; kabuk betiklerini yapıştırma veya çalıştırma.

#!/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 

ESKİ CEVAP Ubuntu 14.04'te Live Preview'ı (Chromium) kullanmaya çalışırken Dart Editör'den hata mesajı alıyordum. Hata libudev1 yüklenerek ve sembolik bir bağlantı oluşturularak çözüldü.

    sudo apt-get install libudev1

Ayrıca, yukarıda DartEditor'ı çalıştırmak için TenLeftFingers tarafından belirtilen betiği kullandım.

    #!/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

Dart Düzenleyicisi çalışmazsa, JAVA'nın kurulu olduğundan ve bu bir izin sorunu olmadığından emin olun.

    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

ve IDE'yi yürütülebilir yapın:

    sudo chmod a+x ./DartEditor

Bu benim için çalıştı.

    
verilen cevap Diaz 26.05.2014 02:28
0

Xubuntu Precise'dan Trusty'ye yükselttikten sonra 32-bit sistemimde de aynı hatayı alıyordum. Bu benim için düzeltildi:

sudo dpkg-reconfigure google-chrome-stable

burayı buldum . Kesinlikle hiçbir parametreyle, bunun nasıl düzeltildiğini tam olarak bilmiyorum, ama yaptı. En çok sevdiğim şey, gelecekte benim için sorun yaratabilecek bir şey yapmanın gerekmediği ve herhangi bir paketin peşinden gitmemi gerektirmediğiydi.

    
verilen cevap undrline 15.08.2014 00:06
-1

Eğer libudev.so.0 & amp; Ubuntu'daki Emotiv Epoc SDK Dev Sürümü, umarım aşağıdakiler yardımcı olacaktır:

// yapılandırmam 64bit Ubuntu 13.04

64 bit sistem için:

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

"paylaşılan kütüphaneler yüklenirken hata oluşmasını önlemektedir: libudev.so.0: yanlış ELF sınıfı: ELFCLASS32"

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

32 bit sistem için:

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

paylaşılan kütüphaneleri yüklerken "hata: libudev.so.0: yanlış ELF sınıfı: ELFCLASS64" (bu bir tahmin, 64 bitlik bir sistemdeyim) önlemeye izin verir.

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

EmotivControlPanel, EmoKey, EmoComposer, Java örnekleri & amp; küçük özelleştirilmiş Qt örnekleri yukarıdaki yaptıktan sonra tu çalışabilir olmalıdır (Ben zaten web üzerinde bulunan diğerlerinin tüm adımları çalıştı (yığın taşması, ..), ama hiçbiri benim için çalışıyordu, bu yüzden sonra ne yapıyordum bazı "try & amp; hatalar"

Son fakat en önemlisi, Burada birisi 64bit sistemde 32bit libs'e karşı derlenmiş programları nasıl çalıştıracağını biliyorsa KAZANMIŞ 3RD PARTİ 32BIT KÜTÜPHANE KULLANIMINI BELİRTİNİZ?

  

daha açıkçası, neden bahsettiğimi bilenler için "EmoCube" yi nasıl çalıştırıyorum? 64bit sistemimde "BlueAvatar" Qt örnekleri var mı?

- & gt; Şimdiye kadar denediğim şey için en çok şunu söyleyebilirim: "paylaşılan kütüphaneleri yüklerken hata: libedk.so.1: yanlış ELF sınıfı: ELFCLASS64"

Sanırım i386 dizinindeki bu libonun sembolik yapısı onu (henüz denemediğim halde) yapamayacaktır, yani eğer birisi bir cevaba sahipse ... bunu okumak için sabırsızlanıyorum.

Tüm + alkışlar

    
verilen cevap StephaneAG 09.12.2013 03:00
-4

Bu komutları bir terminalde çalıştırın:

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

Bu bana yardımcı oldu

    
verilen cevap user214274 10.11.2013 07:03

Etiketlerdeki diğer soruları oku