Wino nie może znaleźć gnome-keyring-pkcs11.so

62

Próbuję uruchomić program korzystający z wina na Ubuntu LTS 12.04 64-bit

Gdy to zrobię, pojawia się następujący komunikat o błędzie ...

/usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux->gnu/pkcs11/gnome-keyring-pkcs11.so: nie można otworzyć pliku obiektu współdzielonego: Nie taki plik lub> katalog

Kiedy próbuję symlinkować biblioteki 64-bitowe, oczywiście otrzymuję następujące informacje ...

jackie@jackie-Latitude-E6410:~/tmp/AC$ wine TTG.exe
p11-kit: couldn't load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: 
/usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: wrong ELF class: ELFCLASS64
wine: Unhandled page fault on read access to 0x00000000 at address (nil) (thread 0009), 
starting debugger...
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7bc47aac

Czy istnieje pakiet, który instaluje zarówno wersję 32-bitową, jak i 64-bitową?

AKTUALIZACJA:

Wygląda na błąd w Ubuntu w / 1.4

https://launchpad.net/~ubuntu-wine/+archive/ppa

Użyłem tych kroków i moja aplikacja działała

http://www.noobslab.com/2012/04/install-wine-152-on-ubuntu.html

Nie wiem dokładnie dlaczego, ale wydaje się, że ignorujesz błąd, jeśli używasz 1.5.

Jackie
źródło
Próbowałem ręcznie zaktualizować Rosetta Stone 4.1.10 do 4.1.15 za pomocą łatki aktualizacyjnej, i otrzymałem ten sam błąd przed i po aktualizacji wine1.4 do wine1.5. Naprawdę nic nie naprawiało. Czy muszę całkowicie usunąć istniejący prefiks wine i całkowicie utworzyć nowy?
TheBicentennialMan

Odpowiedzi:

42

To rozwiązanie działa w systemie Ubuntu 12.04 64bit

Pierwotnie miałem ten błąd:

/usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: cannot open shared object file: No such file or directory

Potem zrobiłem ln -slink do 64-bitowej biblioteki lib i otrzymałem ten błąd: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: zła klasa ELF: ELFCLASS64

Uwaga: przed rozpoczęciem usuń link do 64-bitowej biblioteki lib, jeśli ją utworzyłeś.

Rozwiązanie:

Oto jak to naprawić. Uwaga: Korzystam z Crossovera 11.3, który korzysta z wina 1.4, więc powinien również działać dla użytkowników wina.

Dalsze powiązane informacje na temat getlibs można znaleźć tutaj .

1) Zainstaluj getlibs:

UODATE 3/2013: Pobierz getlibs z https://github.com/spaetzlecode/getlibs

wget https://raw.github.com/spaetzlecode/getlibs/master/getlibs
sudo chown root:root getlibs
sudo chmod +x getlibs
sudo mv -n getlibs /usr/local/bin

2) Zainstaluj bibliotekę 32-bitową:

sudo /usr/local/bin/getlibs -p gnome-keyring:i386

Jeśli pojawia się ten komunikat o błędzie:

Failed to download file http://mirrors.kernel.org/ubuntu/pool/main/g/gnome-keyring/gnome-keyring_3.4.1-4ubuntu1~precise1_i386.deb

następnie pobierz plik tutaj:

wget https://launchpad.net/~gnome3-team/+archive/gnome3/+files/gnome-keyring_3.4.1-4ubuntu1~precise1_i386.deb

i robić:

/usr/local/bin/getlibs -i "path-of-the-file"/gnome-keyring_3.4.1-4ubuntu1~precise1_i386.deb

3) Utwórz symboliczny link:

sudo mkdir -p /usr/lib/i386-linux-gnu/pkcs11/ 
sudo ln -s /usr/lib32/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so

Teraz uruchom aplikację Crossover / Wine, a błąd zniknie.

Nathan Campbell
źródło
5
Dla tych, którzy mają błąd podczas tworzenia dowiązania symbolicznego, utwórz katalog o nazwie pkcs11 w / usr / lib / i386-linux-gnu, wtedy tylko ty utworzysz dowiązanie symboliczne. Miałem wcześniej ten sam problem.
2
proponuję umieścić linki w / usr / local / lib / ...
rzr 31.10
Czy to działa dla Ciebie w dniu 12.10? Dla mnie pozbywa się błędu, ale mój program wciąż się nie uruchamia.
sup
9
getlibs jest niepotrzebna, można użyć apt aby pobrać (bez instalacji) debs z repozytoriów w pliku sources.list: apt-get download gnome-keyring:i386. Udzielę odpowiedzi, jak to naprawić, używając tylko apt, ar i tar, jednak wydaje mi się, że nie mogę odpowiedzieć na to pytanie.
Oscar Korz
2
Rozwiązanie vaab wydaje się o wiele prostsze i działało dla mnie z 12.04. Najpierw proponuję spróbować.
Lambart
46

Rozwiązanie tego problemu nie musi być bardziej złożone niż:

sudo apt-get install libp11-kit-gnome-keyring

dla maszyn 64-bitowych. Lub

sudo apt-get install libp11-kit-gnome-keyring:i386

dla maszyn 32-bitowych.

Tak przynajmniej jest w przypadku 13.04 i nie widzę powodu, dla którego nie miałoby to miejsca w przypadku 12.04 / 12.10.

andy.holmes
źródło
2
Dziwne wydaje mi się, że powyższe 2 odpowiedzi z większą liczbą głosów nie działały, nie działały w okresie od 12.04 do 13.04. Ale zainstalowanie rzeczywistego pakietu, którego brakowało w winie, jak wskazałeś tutaj, zadziałało. Szkoda, że ​​musiałem zrobić te wymienione powyżej, aby zobaczyć tę odpowiedź na dole, która działa.
Luis Alvarado
3
ten pakiet nie jest dostępny w systemie Ubuntu 12.04.
rik-shaw
2
apt-get install gnome-keyring zadziałał dla mnie, dla 64-bitowych 12.04
lukewendling
2
Instalacja libp11-kit-gnome-keyring: i386 nie rozwiązuje problemu w Ubuntu 13.10
malisokan
4
Naprawiłem
14

Prawdopodobnie zgadłeś, że potrzebujesz pliku /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so. Ten plik jest częścią pakietu ubuntu i386, który nie zostanie zainstalowany bezpośrednio w systemie amd64. Ale możesz to łatwo uzyskać:

cd $(mktemp -d)                      ## create and go to a temporary temp dir
apt-get download gnome-keyring:i386  ## download the i386 version of gnome-keyring
ar x gnome-keyring*.deb              ## Uncompress the package
tar xf data.tar.gz
## Finally move the file you need to the desired location:
sudo mv usr/lib/i386-linux-gnu/pkcs11 /usr/lib/i386-linux-gnu/

Zdarzyło mi się to w wersji 12.10z wine-1.5.29, a gnome-keyringwersja i386 została oznaczona 3.6.1-0ubuntu1_i386i to zadziałało dla mnie.

Pamiętaj, że jeśli te instrukcje nie pasują do ciebie, może powinieneś wspomnieć o swojej wersji i gnome-keyringwersji Ubuntu . Dzięki !

Vaab
źródło
3
tar xf data.tar.gzpowinno być tar xf data.tar.xz, przynajmniej na moim komputerze ... dzięki
toto_tico
1
właściwie to nie działało, usr/lib/i386-linux-gnu/pkcs11w folderze danych nie ma pliku o nazwie . Zamiast tego istnieją dwa katalogi w usr/lib: usr/lib/gnome-keyringiusr/lib/ubiquity
toto_tico
@toto_tico: oczywiście twoja gnome-keyringpaczka nie jest taka sama jak moja. Czy możesz podać więcej informacji na temat wersji i gnome-keyringwersji Ubuntu ? Dodałem te informacje do mojej odpowiedzi, abyś mógł je porównać.
vaab
Dzięki @vaab. W końcu znalazłem tutaj swoje rozwiązanie . Nie mogę opublikować rozwiązania, ponieważ jestem nowy w tej społeczności.
toto_tico
1
Pracowałem dla mnie z 12.04, dzięki!
Lambart
2

Inną opcją, która działała dla mnie, jest po prostu ponowna instalacja libp11-kit0

sudo apt-get install --reinstall libp11-kit0
Brandon Bertelsen
źródło
Nie miało to dla mnie żadnego wpływu na Ubuntu 14.10 /
nacięcia
1
Dlaczego miałbyś głosować za odpowiedzią za 12.04, w odniesieniu do tego, jak to działa 14.10 ...
Brandon Bertelsen