Просто обновленный до 18,04, и когда я работаю sudo apt update
, это жалуется:
/usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so: symbol gnutls_pkcs11_privkey_init version GNUTLS_3_4 not defined in file libgnutls.so.30 with link time reference Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
Более старая информация:
Выполнение gio version
дает: 2.53.6
Выполнение gntls-cli -v
дает: gnutls-cli 3.5.8
Насколько я могу сказать, это означает это apt-get
хочет использовать GNUTLS version 3.4
, когда я имею 3.5.8
.
Любые идеи о том, как продолжить двигаться, ценились бы. Мое подозрение - то, что, возможно, это не разрешило зависимости правильно при обновлении дистрибутивов или пытается обновить из неправильных репозиториев.
Интересно, я получаю ту же ошибку при открытии Octave (https://www.gnu.org/software/octave/).
Добавленный в ответ на комментарий:
apt-cache policy libgnutls30
говорит:
libgnutls30:
Installed: 3.5.18-1ubuntu1
Candidate: 3.5.18-1ubuntu1
Version table:
*** 3.5.18-1ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
100 /var/lib/dpkg/status
/usr/lib/x86_64-linux-gnu/libgnutls.so.30
точки к libgnutls.so.30.14.10
для меня
nm -D /usr/lib/x86_64-linux-gnu/libgnutls.so.30 | grep GNUTLS_3
печать 0000000000000000 A GNUTLS_3_4
Вот то, как я решил проблему. Обратите внимание, что это казалось немного опасным в конце, таким образом, более безопасный подход в другом ответе или в комментариях будет цениться.
Я нашел, там две версии libgnutls.so.30
в моей системе, один в /usr/lib/x86_64-linux-gnu
и другой в /usr/local/lib/
.
Выполнение nm -gC
и readelf -sW
с grep
на этих шоу файлов, что первый действительно содержит рассматриваемый символ и второе, не делает. Это приводит меня полагать что неправильная копия gnutls
загружается во время выполнения.
Файл в /usr/lib/x86_64-linux-gnu
ссылка на libgnutls.so.30.14.10
, и тот в /usr/local/lib/x86_64-linux-gnu
ссылка на libgnutls.so.30.13.1
.
Подтверждение: выполнение ldd
на libgiognutls
шоу, которые это действительно пытается связать с /usr/local/lib
версия.
Больше подтверждения: Изменение LD_LIBRARY_PATH
не работал. Просмотр ld.so
страница справочника показывает, что это, вероятно, потому что некоторое поднятое полномочие достигнуто к тому времени, когда ld.so называют.
Выполнение sudo su
и затем изменение LD_LIBRARY_PATH
. На данном этапе я убежден, что это - приоритеты ссылки двух версий libgnutls
это - проблема.
Решенный: Я просто взял прыжок веры и связался /usr/local/lib/libgnutls.so
кому: /usr/lib/x86_64-linux-gnu/libgnutls.so
файл и то же с .30
версии также. До сих пор ничто не повредилось, и сообщений об ошибках не стало.