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

62

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

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

/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.

Джеки
источник
Я попытался обновить Rosetta Stone 4.1.10 до 4.1.15 вручную с помощью патча обновления, и я получил ту же ошибку до и после обновления wine1.4 до wine1.5. Похоже, это ничего не исправило. Должен ли я полностью удалить существующий wineprefix и полностью создать новый?
TheBicentennialMan

Ответы:

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-битную библиотеку и получил эту ошибку: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: неправильный класс ELF: ELFCLASS64

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

Решение:

Вот как это исправить. Обратите внимание, что я использую Crossover 11.3, который использует Wine 1.4, поэтому он также должен работать для пользователей вина.

Дополнительную информацию о getlibs можно найти здесь .

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

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

Натан Кэмпбелл
источник
5
Для тех, у кого ошибка при создании символической ссылки, создайте каталог с именем pkcs11 в / usr / lib / i386-linux-gnu, тогда только символическую ссылку создайте. У меня была такая же проблема раньше.
2
позвольте мне предложить разместить ссылки в / usr / local / lib / ...
rzr
Это работает для вас 12.10? Для меня это избавляет от ошибки, но моя программа все еще не запускается.
вечерять
9
getlibs ненужно, вы можете использовать APT для загрузки (без установки) Дебса из хранилищ в вашем sources.list: apt-get download gnome-keyring:i386. Я бы дал ответ о том, как это исправить, используя только apt, ar и tar, однако мне кажется, что я не могу ответить на этот вопрос.
Оскар Корз
2
Решение vaab кажется намного проще, и оно работает для меня с 12.04. Я предлагаю попробовать это в первую очередь.
Ламбарт
46

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

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
источник
2
Я нахожу странным, что 2 вышеуказанных ответа с большим количеством голосов не работали, не работали с 12 по 13 апреля. Но установка фактической упаковки, которую вина пропускала, как вы указали здесь, сработала. Это позор, я должен был сделать те, которые упомянуты выше, чтобы потом увидеть этот ответ внизу, который работает.
Луис Альварадо
3
этот пакет недоступен в Ubuntu 12.04.
Рик-Шоу
2
apt-get install gnome-keyring работал для меня, для 64-битной
версии
2
Установка libp11-kit-gnome-keyring: i386 не решает проблему в Ubuntu 13.10
malisokan
4
Это исправлено для меня в Ubuntu 14.04
panmari,
14

Вы, наверное, догадались, что вам нужно получить файл /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so. Этот файл является частью пакета u38ntu i386, который не устанавливается непосредственно в вашу систему 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.29i386 , и это сработало для меня.gnome-keyring3.6.1-0ubuntu1_i386

Обратите внимание, что если эти инструкции вам не подходят, возможно, стоит упомянуть версию и gnome-keyringверсию Ubuntu . Спасибо !

vaab
источник
3
tar xf data.tar.gzдолжно быть tar xf data.tar.xz, по крайней мере , на моем компьютере ... спасибо
toto_tico
1
на самом деле это не сработало, usr/lib/i386-linux-gnu/pkcs11в папке данных нет файла с именем . Вместо этого есть две директории в usr/lib: usr/lib/gnome-keyringиusr/lib/ubiquity
toto_tico
@toto_tico: очевидно, ваш gnome-keyringпакет отличается от моего. Не могли бы вы дать больше информации о вашем выпуске и gnome-keyringверсии Ubuntu ? Я добавил эту информацию в свой ответ для сравнения.
Вааб
Спасибо @vaab. Я наконец нашел свое решение здесь . Я не могу опубликовать решение, потому что я новичок в этом сообществе.
toto_tico
1
Работал у меня с 12.04, спасибо!
Ламбарт
2

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

sudo apt-get install --reinstall libp11-kit0
Брэндон Бертельсен
источник
Это не повлияло на меня в Ubuntu 14.10 /
вырезает
1
Зачем вам опускать ответ за 12.04 относительно того, как он работает 14.10 ...
Брэндон Бертельсен,