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

62

Estou tentando iniciar um programa usando o vinho 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: não é possível abrir o arquivo de objeto compartilhado: Não arquivo ou diretório

Quando tento vincular as bibliotecas de 64 bits, é claro, recebo o seguinte ...

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

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

ATUALIZAR:

Parece ser um bug no Ubuntu w / 1.4

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

Eu usei essas etapas e meu aplicativo funcionou

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

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

Jackie
fonte
Tentei atualizar o Rosetta Stone 4.1.10 para 4.1.15 manualmente usando um patch de atualização e obtive o mesmo erro antes e depois de atualizar o wine1.4 para o wine1.5. Realmente não parecia consertar nada. Preciso excluir completamente o wineprefix existente e criar um novo completamente?
TheBicentennialMan

Respostas:

42

Esta solução funciona para Ubuntu 12.04 64bit

Originalmente, tive este 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 fiz um ln -slink para a lib de 64 bits e obtive este erro: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: classe ELF incorreta: ELFCLASS64

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

Solução:

Aqui está como corrigi-lo. Observe que estou usando o Crossover 11.3, que usa o vinho 1.4, portanto, ele também deve funcionar para os usuários do vinho.

Mais informações relacionadas ao getlibs podem ser encontradas aqui .

1) Instale getlibs:

UODATE 3/2013: Faça o download de getlibs em 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) Instale a biblioteca de 32 bits:

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

Se você recebeu esta mensagem de erro:

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 fazer:

/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 o aplicativo Crossover / Wine e o erro desapareceu.

Nathan Campbell
fonte
5
Para aqueles com erro ao criar o link simbólico, crie um diretório chamado pkcs11 em / usr / lib / i386-linux-gnu, e somente você cria o link simbólico. Eu tive o mesmo problema antes.
2
deixe-me sugerir colocar links em / usr / local / lib / ...
rzr 31/10/12
Isso funciona para você em 12.10? Para mim, ele se livra do erro, mas meu programa ainda não inicia.
sup
9
getlibs é desnecessário, você pode usar o apt para download (sem instalar) debs de repositórios em seu sources.list: apt-get download gnome-keyring:i386. Eu daria uma resposta sobre como corrigir isso usando apenas apt, ar e tar, no entanto, parece que estou impedido de responder a essa pergunta.
Oscar Korz 30/03
2
A solução da vaab parece muito mais simples e funcionou para mim com o 12.04. Sugiro tentar isso primeiro.
Lambart 20/09/2013
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 ocorra em 12.04 / 12.10.

andy.holmes
fonte
2
Acho estranho que as 2 respostas acima com mais votos não funcionaram, não funcionaram de 12.04 a 13.04. Mas instalar o pacote real que o vinho estava dizendo ausente como você apontou aqui funcionou. É uma pena que tive que fazer os mencionados acima para ver esta resposta na parte inferior que funciona.
Luis Alvarado
3
esse pacote não está disponível no Ubuntu 12.04.
Rik-shaw
2
apt-get install gnome-keyring trabalhou para mim, para 64-bit 12,04
lukewendling
2
Instalando libp11-kit-gnome-keyring: o i386 não corrige o problema no Ubuntu 13.10
malisokan
4
Corrigido para mim no Ubuntu 14.04
panmari
14

Você provavelmente adivinhou o necessário para obter o arquivo /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so. Este arquivo faz parte de um pacote u384 do i386 que não é 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 um 12.10com wine-1.5.29, e a gnome-keyringversão i386 foi rotulada 3.6.1-0ubuntu1_i386e funcionou para mim.

Observe que, se essas instruções não se ajustarem a você, talvez você deva mencionar sua versão e gnome-keyringversão do ubuntu . Obrigado !

vaab
fonte
3
o tar xf data.tar.gzdeve ser tar xf data.tar.xz, pelo menos no meu pc ... obrigado
toto_tico
11
na verdade, não funcionou, não há arquivo nomeado usr/lib/i386-linux-gnu/pkcs11na pasta de dados. Em vez disso, existem dois diretórios em usr/lib: usr/lib/gnome-keyringeusr/lib/ubiquity
toto_tico
@toto_tico: obviamente, seu gnome-keyringpacote não é o mesmo que o meu. Você poderia dar mais informações sobre o seu lançamento e gnome-keyringversão do Ubuntu ? Adicionei essas informações à minha resposta para você comparar.
vaab
Obrigado @vaab. Finalmente encontrei minha solução aqui . Não consigo postar a solução porque sou novo nesta comunidade.
Toto_tico 18/05
11
Trabalhou para mim com 12.04, obrigado!
Lambart 20/09/2013
2

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

sudo apt-get install --reinstall libp11-kit0
Brandon Bertelsen
fonte
Isso não teve efeito para mim no Ubuntu 14.10 /
ocorre em 18/02
11
Por que você downvote uma resposta para 12,04, no que diz respeito à forma como ele funciona em 14.10 ...
Brandon Bertelsen