склонный - добираются, хочет, чтобы была определена более старая версия GNUTLS

Просто обновленный до 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

5
задан 29 October 2018 в 14:31

1 ответ

Вот то, как я решил проблему. Обратите внимание, что это казалось немного опасным в конце, таким образом, более безопасный подход в другом ответе или в комментариях будет цениться.

Я нашел, там две версии 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 версии также. До сих пор ничто не повредилось, и сообщений об ошибках не стало.

3
ответ дан 23 November 2019 в 10:26

Другие вопросы по тегам:

Похожие вопросы: