当前位置: 首页>>技术教程>>正文


葡萄酒找不到gnome-keyring-pkcs11.so

, ,

问题描述

我试图在Ubuntu LTS 12.04 64位上使用wine开始一个程序

当我这样做时,我收到以下错误消息…

/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

当我尝试对64位库进行符号链接时,当然,我得到以下内容……

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

是否有安装32位和64位的软件包?

更新:

似乎是Ubuntu w /1.4中的一个错误

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

我使用这些步骤,我的应用程序工作

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

不确定为什么,但如果你使用1.5,它似乎忽略了错误。

最佳解决方案

此解决方案适用于Ubuntu 12.04 64位

我原来有这个错误:

/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

然后我做了一个ln -s链接到64位lib并得到此错误:/usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so:错误的ELF类:ELFCLASS64

注意:在开始之前删除指向64位lib的链接(如果已创建)。

解:

这是如何解决它。注意我正在使用Crossover 11.3,它使用wine 1.4,因此它也适用于葡萄酒用户。

有关getlibs的更多相关信息可以在here找到。

1)安装getlibs:

UODATE 3/2013:从https://github.com/spaetzlecode/getlibs下载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)安装32位库:

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

如果您收到此消息错误:

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

然后在这里下载文件:

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

并做:

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

3)建立符号链接:

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

现在运行您的Crossover /Wine应用程序,错误消失了。

次佳解决方案

对此的解决方案不需要比以下更复杂:

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

适用于64位机器。要么

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

适用于32位机器。

至少在13.04就是这种情况,我认为在12.04 /12.10中没有理由不成立。

第三种解决方案

您可能猜到了需要获取文件/usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so。此文件是i386 ubuntu软件包的一部分,该软件包不会直接安装在您的amd64系统上。但你可以轻松搞定:

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/

12.10wine-1.5.29上发生了这种情况,i386 gnome-keyring版本标记为3.6.1-0ubuntu1_i386,这对我有用。

请注意,如果这些说明不适合您,您可能应该提及您的ubuntu版本和gnome-keyring版本。谢谢 !

第四种方案

另一个对我有用的选择是简单地重新安装libp11-kit0

sudo apt-get install --reinstall libp11-kit0

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1130.html,未经允许,请勿转载。