использование git на Ubuntu20.04.6 с ошибкой поиска символов: /lib/x86_64-linux-gnu/libgnutls.so.30: неопределённый символ: __gmpz_limbs_write

Вопрос или проблема

Я использую Ubuntu 20.04.6 LTS, и у меня была следующая ошибка при использовании git:

/usr/lib/git-core/git-remote-https: ошибка поиска символа: /lib/x86_64-linux-gnu/libgnutls.so.30: неопределённый символ: __gmpz_limbs_write

Изучив некоторые похожие вопросы, я проверил зависимости libgnutls.so.30, которая является гиперссылкой на /lib/x86_64-linux-gnu/libgnutls.so.30.27.0:

ldd /lib/x86_64-linux-gnu/libgnutls.so.30

    linux-vdso.so.1 (0x00007ffef73f2000)
    libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f8173d92000)
    libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f8173d71000)
    libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f8173bef000)
    libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f8173bd9000)
    libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007f8173b9f000)
    libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007f8173b68000)
    libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f8173ae2000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f81738f0000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f81740b5000)
    libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007f81738e4000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f81738de000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f81738bb000)

И я смог отследить до libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10.

Что мне делать с libgmp, который вызвал проблему?

libgmp.so.10.4.0 указывает на /lib/x86_64-linux-gnu/libgmp.so.10.4.0.

И вот версия Git 2.25.1

Ответ или решение

Решение проблемы с ошибкой символа в Git на Ubuntu 20.04.6

Вам стало известно о проблеме при использовании Git на Ubuntu 20.04.6 LTS, связанной с ошибкой символа, которая проявляется следующим образом:

/usr/lib/git-core/git-remote-https: symbol lookup error: /lib/x86_64-linux-gnu/libgnutls.so.30: undefined symbol: __gmpz_limbs_write

И данная ошибка указывает на конфликт или некорректную загрузку библиотеки libgmp, которая используется libgnutls.

Шаг 1: Диагностика проблемы

Первый шаг в решении проблемы — это убедиться в корректности установки библиотек и их версий. При анализе зависимостей libgnutls.so.30 вы заметили, что одна из библиотек, от которой она зависит, — это libgmp.so.10. Однако символ __gmpz_limbs_write, который вызывается из libgmp, не удалось обнаружить. Это может происходить из-за разных причин:

  • Устаревшая версия libgmp.
  • Убедиться, что установленные версии библиотек соответствуют друг другу.

Шаг 2: Обновление библиотеки libgmp

Чтобы обновить библиотеку libgmp, выполните следующие команды в терминале:

sudo apt update
sudo apt upgrade libgmp10

Эти команды обновят вашу систему и библиотеку libgmp до последней стабильной версии из репозиториев Ubuntu.

Шаг 3: Проверка и переустановка GnuTLS и Git

Иногда проблема может быть также связана с несовместимостью между версиями libgmp, libgnutls и git. Поэтому имеет смысл переустановить пакеты gnutls и git. Выполните:

sudo apt remove --purge libgnutls30 git
sudo apt install libgnutls30 git

Эти команды сначала удалят, а затем установят библиотеки заново. Это гарантирует, что у вас будут установлены последние версии, что может решить конфликт.

Шаг 4: Проверка зависимостей

После переустановки библиотек убедитесь, что соответствия всех зависимостей теперь корректные. Запустите команду проверки зависимостей:

ldd /usr/lib/git-core/git-remote-https

Эта команда покажет, все ли зависимости правильно загружены и присутствуют ли они в системе.

Шаг 5: Перезагрузка системы

Наконец, если ошибка всё еще возникает, перезагрузите систему, чтобы убедиться, что все изменения вступили в силу.

sudo reboot

Заключение

Ошибки с символами в библиотеке часто возникают из-за несовместимых версий или повреждённых библиотек. Обновление и переустановка соответствующих пакетов, включая libgmp и другие зависимости, решает большинство проблем. Такие действия гарантируют, что ваше программное обеспечение работает без сбоев. Если после всех выполненных шагов ошибка всё ещё сохраняется, имеет смысл обратиться на форумы поддержки Ubuntu или Git для более глубокого анализа проблемы.

Если у вас возникнут дополнительные вопросы или сложности, не стесняйтесь задавать их!

Оцените материал
Добавить комментарий

Капча загружается...