Fedora 40 сломана после установки GNU readline

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

Я разрабатывал программу, которая использует библиотеку GNU readline для лучшей обработки ввода. Я установил пакет и программа работала отлично. Однако я понимаю, что libreadline имеет испорченную связь.

Например, когда я пытаюсь сделать коммит кода:

git commit -m "commit"
ошибка: gpg не смог подписать данные:
/usr/bin/gpg: ошибка поиска символов: /usr/local/lib/libreadline.so.8: неопределенный символ: UP

фатальная ошибка: не удалось записать объект коммита

Проблема более серьезная, так как libreadline нарушает работу многих основных утилит, таких как gpg, awk, gawk, dnf remove на моей машине с Fedora.

Я пытаюсь следовать некоторым ответам из этого поста на StackOverflow. Тем не менее, ничего из этого не работает из-за испорченных команд. make uninstall тоже не работает по той же причине.

Вот мой диагноз на данный момент:

$ gawk --version
gawk: ошибка поиска символов: /usr/local/lib/libreadline.so.8: неопределенный символ: UP

$ ldd /bin/gawk
        linux-vdso.so.1 (0x00007f1f3c794000)
        libreadline.so.8 => /usr/local/lib/libreadline.so.8 (0x00007f1f3c64d000)
        libmpfr.so.6 => /lib64/libmpfr.so.6 (0x00007f1f3c590000)
        libgmp.so.10 => /lib64/libgmp.so.10 (0x00007f1f3c4ec000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f1f3c408000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f1f3c217000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1f3c796000)

$ ls /usr/lib | grep ncurses
libncurses.so.6
libncurses.so.6.4
libncursesw.so.6
libncursesw.so.6.4

$ ls /usr/local/lib | grep readline
libreadline.a
libreadline.so
libreadline.so.8
libreadline.so.8.2

Как я могу исправить эти проблемы, оставаясь при этом способным использовать readline? Заранее спасибо.

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

Как исправить проблемы с GNU Readline на Fedora 40?

У вас возникла проблема с библиотекой GNU Readline, которая обрывает линковку и приводит к ошибкам в нескольких утилитах, таких как gpg, awk и других. Давайте разберем эту ситуацию и предоставим вам подробный план решения проблемы.

Что произошло?

После установки библиотеки GNU Readline вы столкнулись с ошибками, связанными с символом UP, что указывает на потенциальные проблемы с версией библиотеки. Ваша система пытается использовать libreadline.so.8, расположенную в /usr/local/lib, но при этом не может найти необходимые символы, что приводит к сбоям в других программах.

Шаги для устранения проблемы

  1. Проверка системных библиотек:
    Убедитесь, что у вас установлена версия readline, подходящая для вашей системы. Вы можете проверить наличие установленной библиотеки с помощью следующей команды:

    rpm -qa | grep readline
  2. Удаление локальной библиотеки:
    Поскольку библиотека, установленная в /usr/local/lib, конфликтует с системной, вам необходимо удалить её. Поскольку make uninstall не доступен из-за сбоя в командах, используйте:

    sudo rm -f /usr/local/lib/libreadline.so*
  3. Удаление пакетного менеджера DNF:
    Если команда dnf также не работает, попробуйте воспользоваться rpm для удаления:

    sudo rpm -e readline

    Это позволит вам удалить библиотеку напрямую из RPM-базы.

  4. Установите библиотеку программы:
    После удаления сломанной библиотеки установите правильную версию GNU Readline с помощью:

    sudo dnf install readline readline-devel
  5. Проверка целостности зависимостей:
    После изменения библиотек не забудьте проверить целостность системы с помощью следующей команды:

    sudo dnf check
  6. Обновление кэша и перезапуск утилит:
    Обновите кэш библиотек, чтобы система могла обнаружить корректные зависимости. Используйте команду:

    sudo ldconfig
  7. Тестирование установленных утилит:
    Проверьте, исправлены ли проблемы с помощью повторного запуска gpg, gawk, и других использованных вами утилит:

    gawk --version
    gpg --version

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

Заключение

Устранение проблем с библиотеками в Fedora 40 может быть сложной задачей, особенно при конфликтующих версиях библиотек. Однако следуя вышеуказанным шагам, вы сможете избавиться от возникающих ошибок и вернуть свою систему в работоспособное состояние. Если проблема всё еще сохраняется, рассмотрите возможность обращения в поддержку Fedora или на соответствующий форум для получения дополнительных рекомендаций.

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

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