Вино не может найти gnome-keyring-pkcs11.so

62

Я пытаюсь запустить программу с использованием вина на Ubuntu LTS 12.04 64 бит

Когда я это сделаю, я получаю следующее сообщение об ошибке ...

  

/usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: /usr/lib/i386-linux->gnu/pkcs11/gnome-keyring-pkcs11.so: не удается открыть общий object file: нет такого файла или каталога

Когда я пытаюсь символизировать 64-битные библиотеки, конечно, я получаю следующее ...

[email protected]:~/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-битную?

UPDATE:

Появляется ошибка в Ubuntu w / 1.4

Ссылка

Я использовал эти шаги, и мое приложение работало

Ссылка

Не уверен, почему именно, но, похоже, игнорирует ошибку, если вы используете 1.5.

    
задан Jackie 29.04.2012 в 17:37
источник

4 ответа

42

Это решение работает для Ubuntu 12.04 64bit

У меня первоначально была эта ошибка:

/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, который использует вино 1.4, поэтому он также должен работать для пользователей вин.

Дополнительная информация, связанная с getlib, может быть найдена здесь .

1) Установите getlibs:

UODATE 3/2013: Загрузите 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, и ошибка исчезла.

    
ответ дан Nathan Campbell 16.05.2012 в 17:28
источник
45

Решение этого не должно быть более сложным, чем:

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.

    
ответ дан andy.holmes 29.05.2013 в 07:22
14

Вероятно, вы догадались, что вам нужно получить файл /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 . Спасибо!

    
ответ дан vaab 15.05.2013 в 22:53
2

Другим вариантом, который работал для меня, является просто переустановка libp11-kit0

sudo apt-get install --reinstall libp11-kit0
    
ответ дан Brandon Bertelsen 28.04.2013 в 00:19