Wine 找不到 gnome-keyring-pkcs11.so

Wine 找不到 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 1.4 的一个错误

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

我使用了这些步骤并且我的应用程序有效

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

不确定具体原因,但如果使用 1.5,它似乎会忽略错误。

答案1

解决这个问题不需要比以下更复杂:

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 中不会如此。

答案2

此解决方案适用于 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 位库并收到此错误:/usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so:错误的 ELF 类:ELFCLASS64

注意:在开始之前,请删除您创建了的 64 位库链接。

解决方案:

以下是修复方法。请注意,我使用的是 Crossover 11.3,它使用 wine 1.4,因此它也适用于 wine 用户。

可以找到与 getlibs 相关的更多信息这里

1)安装getlibs:

更新日期 2013 年 3 月:从以下位置下载 getlibshttps://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)安装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 应用程序并且错误消失。

答案3

你可能已经猜到了你需要获取该文件/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,并且 i386gnome-keyring版本被标记为3.6.1-0ubuntu1_i386,并且这对我有用。

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

答案4

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

sudo apt-get install --reinstall libp11-kit0

相关内容