O vinho não pode encontrar gnome-keyring-pkcs11.so

62

Estou tentando iniciar um programa usando wine no Ubuntu LTS 12.04 64 bit

Quando faço isso, recebo a seguinte mensagem de erro ...

/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

Quando tento ligar simbolicamente as bibliotecas de 64 bits, claro, recebo o seguinte ...

[email protected]:~/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

Existe um pacote que instala o de 32 bits e o de 64 bits?

ATUALIZAÇÃO:

Parece ser um bug no Ubuntu com 1.4

link

Eu usei estas etapas e meu aplicativo funcionou

link

Não sei exatamente por quê, mas parece ignorar o erro se você usar o 1.5.

    
por Jackie 29.04.2012 / 17:37

4 respostas

42

Esta solução funciona para o Ubuntu 12.04 64bit

Originalmente, eu tive esse erro:

/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

Então eu fiz um link ln -s para o lib de 64 bits e recebi este erro:     /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: classe ELF errada: ELFCLASS64

nota: antes de começar, remova o link para a biblioteca de 64 bits se você a criou.

Solução:

Veja como corrigir isso. Note que estou usando o Crossover 11.3, que usa o wine 1.4, então também deve funcionar para usuários de vinho.

Outras informações relacionadas a getlibs podem ser encontradas aqui .

1) Instale getlibs:

UODATE 3/2013: faça o download de getlibs do link

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) Instale a biblioteca de 32 bits:

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

Se você recebeu este erro de mensagem:

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

faça o download do arquivo aqui:

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

e faça:

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

3) Faça o link simbólico:

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

Agora, execute seu aplicativo Crossover / Wine e o erro desapareceu.

    
por Nathan Campbell 16.05.2012 / 17:28
46

A solução para isso não precisa ser mais complexa do que:

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

para máquinas de 64 bits. Ou

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

para máquinas de 32 bits.

Pelo menos esse é o caso em 13.04 e não vejo razão para que isso não seja válido em 12.04 / 12.10.

    
por andy.holmes 29.05.2013 / 07:22
14

Você provavelmente adivinhou a necessidade de obter o arquivo /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so . Este arquivo é parte de um pacote do i386 ubuntu que não será instalado diretamente no seu sistema amd64. Mas você pode obtê-lo facilmente:

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/

Isso aconteceu comigo em uma 12.10 com wine-1.5.29 e i386 gnome-keyring versão foi rotulada 3.6.1-0ubuntu1_i386 , e isso funcionou para mim.

Por favor, note que se estas instruções não se ajustarem a você, talvez você deva mencionar sua versão do ubuntu e gnome-keyring version. Obrigado!

    
por vaab 15.05.2013 / 22:53
2

Outra opção que funcionou para mim é simplesmente reinstalar o libp11-kit0

sudo apt-get install --reinstall libp11-kit0
    
por Brandon Bertelsen 28.04.2013 / 00:19