葡萄酒找不到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:无法打开共享对象文件:否这样的文件或>目录

当我尝试对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 

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

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

解:

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

有关getlibs的更多相关信息,请点击此处 。

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 ,这对我3.6.1-0ubuntu1_i386

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

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

 sudo apt-get install --reinstall libp11-kit0 
Interesting Posts