问题描述
我试图在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.10
和wine-1.5.29
上发生了这种情况,i386 gnome-keyring
版本标记为3.6.1-0ubuntu1_i386
,这对我有用。
请注意,如果这些说明不适合您,您可能应该提及您的ubuntu版本和gnome-keyring
版本。谢谢 !
第四种方案
另一个对我有用的选择是简单地重新安装libp11-kit0
sudo apt-get install --reinstall libp11-kit0