Я установил gnupg из официального репозитория Solaris 11, но у меня возникли проблемы с библиотекой. Я получаю вот такую ошибку:
ld.so.1: gpg2: fatal: relocation error: file /usr/lib/libreadline.so.5: symbol tgetent: referenced symbol not found
См. Дополнительную информацию здесь:
bash-4.1$ gpg2 --list-secret-keys
Warning: using insecure memory!
/www/shared/.gnupg/secring.gpg
------------------------------
sec 1024D/E6A51C54 2010-11-25
uid John Doe (jdoe) <john@doe.com>
ssb 2048g/2BE06126 2010-11-25
bash-4.1$ gpg2 --edit-key john@doe.com
gpg (GnuPG) 2.0.17; Copyright (C) 2011 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Warning: using insecure memory!
Secret key is available.
pub 1024D/E6A51C54 created: 2010-11-25 expires: never usage: SC
trust: unknown validity: unknown
sub 2048g/2BE06126 created: 2010-11-25 expires: never usage: E
[ unknown] (1). John Doe (jdoe) <john@doe.com>
ld.so.1: gpg2: fatal: relocation error: file /usr/lib/libreadline.so.5: symbol tgetent: referenced symbol not found
Killed
bash-4.1$ pkg list |grep readl
library/readline 5.2-0.175.0.0.0.2.537 i--
bash-4.1$ pkg list |grep gnup
crypto/gnupg 2.0.17-0.175.0.0.0.2.537 i--
bash-4.1$ ls -al /usr/lib/libreadline.so.5
-r-xr-xr-x 1 root bin 412864 Jun 20 2012 /usr/lib/libreadline.so.5
bash-4.1$ which gpg2
/usr/bin/gpg2
bash-4.1$ ldd /usr/bin/gpg2
libc.so.1 => /lib/libc.so.1
libz.so.1 => /lib/libz.so.1
libbz2.so.1 => /usr/lib/libbz2.so.1
libresolv.so.2 => /lib/libresolv.so.2
libreadline.so.5 => /usr/lib/libreadline.so.5
libgcrypt.so.11 => /usr/lib/libgcrypt.so.11
libgpg-error.so.0 => /usr/lib/libgpg-error.so.0
libassuan.so.0 => /usr/lib/libassuan.so.0
libsocket.so.1 => /lib/libsocket.so.1
libnsl.so.1
Пожалуйста, дайте мне знать, если мне понадобится дополнительная информация!
Это известная ошибка в gpg2 в Solaris 11.0 (также известная как Solaris 11 11/11), первоначально зарегистрированная как ошибка Sun 7098984, теперь известная как ошибка 15747076 в системе отслеживания ошибок Oracle [Для просмотра требуется учетная запись службы поддержки Oracle].
Это исправлено в Solaris 11.1 и более поздних версиях. Для Solaris 11.0 этот обходной путь помогает в некоторых случаях (но не при использовании pfexec / sudo / и т. Д.):
env LD_PRELOAD_32=/usr/lib/libcurses.so.1 gpg2