Решение проблемы: не найдена определённая версия библиотеки

08.06.2018
0
779


Иногда программа не запускается из-за отсутствия библиотеки определённой версии, при этом в системе может присутствовать эта самая библиотека, но другой версии.

 


Чтобы было понятно, после одного из обновлений (в Arch Linux) перестал запускаться NetworkManager

 


sudo systemctl restart NetworkManager
Job for NetworkManager.service failed because the control process exited with error code.
See "systemctl status NetworkManager.service" and "journalctl -xe" for details.

 


В журнале

 


journalctl -xe

 


было следующее:

 


-- Начат процесс запуска юнита NetworkManager.service.
мар 21 16:37:23 HackWare NetworkManager[1110]: /usr/bin/NetworkManager: error while loading shared libraries: libpsl.so.5: cannot open shared object file: No such file or directory
мар 21 16:37:23 HackWare systemd[1]: NetworkManager.service: Main process exited, code=exited, status=127/n/a
мар 21 16:37:23 HackWare systemd[1]: NetworkManager.service: Failed with result 'exit-code'.
мар 21 16:37:23 HackWare systemd[1]: Failed to start Network Manager.
-- Subject: Ошибка юнита NetworkManager.service
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Произошел сбой юнита NetworkManager.service.
--
-- Результат: RESULT.
мар 21 16:37:23 HackWare systemd[1]: NetworkManager.service: Service hold-off time over, scheduling restart.
мар 21 16:37:23 HackWare systemd[1]: NetworkManager.service: Scheduled restart job, restart counter is at 5.
-- Subject: Назначен автоматический перезапуск юнита
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--

 


Главной там является строка /usr/bin/NetworkManager: error while loading shared libraries: libpsl.so.5: cannot open shared object file: No such file or directory, которая говорит о том, что произошла ошибка во время загрузки разделяемой библиотеки libpsl.so.5, проблема в том, что не получается открыть файл из-за его отсутствия.

 


С помощью locate я поискал, какие именно версии разделяемой библиотеки присутствуют:

 


locate libpsl.so
/usr/lib/libpsl.so
/usr/lib/libpsl.so.6
/usr/lib/libpsl.so.6.2.0

 


Как можно увидеть, в принципе библиотека в системе есть, но у неё другая версия.

 


Одним из способов решить данную проблему является создание символической ссылки командой следующего вида:

 


ln -s /путь/до/существующего.файла /путь/до/отсутствующего.файла

 


Например, у меня в системе есть файл /usr/lib/libpsl.so, а программа не может запуститься из-за отсутствия файла /usr/lib/libpsl.so.5, тогда получается команда:

 


ln -s /usr/lib/libpsl.so /usr/lib/libpsl.so.5

 


Это нельзя назвать полноценным решением проблемы – это, скорее «хот фикс», быстрое и не особо правильное решение проблемы. Но я пару раз применял этом приём и оба раза он срабатывал! Например, служба NetworkManager всё-таки запустилась.

 


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

 


Но поскольку NetworkManager – это популярная программа, то правильное исправление прилетело уже при следующем обновлении пакетов, причём из-за созданного мной файла обновление завершалось ошибкой:

 


(42/42) проверка конфликтов файлов [##################] 100%
ошибка: не удалось завершить транзакцию (конфликтующие файлы)
libpsl: '/usr/lib/libpsl.so.5' существует в файловой системе
Обнаружены ошибки, пакеты не обновлены.

 


Как только я удалил символическую ссылку (файл /usr/lib/libpsl.so.5), то обновление прошло успешно. После этого NetworkManager начал работать без созданной мной символической ссылки:

 


 


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

Рейтинг:
0
Понравиласть статья? Жми лайк или расскажи своим друзьям!
Теги к новости:
Комментарии
Добавить комментарий
Добавить свой комментарий:
Ваше Имя:
Ваш E-Mail:
  • Это код:
    Кликните на изображение чтобы обновить код, если он неразборчив
    Введите сюда:
    Похожие новости:
    11.11.2017
    Linux (видео уроки) Обзор Linux видео уроки 1. Введение в ОС Linux/Unix Ubuntu. Видео linux уроки 2017 года. gnu linux operating system. Linux администрирование и linux уроки, linux скачать. To linux distros for 2017 and обзор linux mint 18 1.
    15.12.2018
    Linux mint 19.1 (скачать) Развиваемый сообществом дистрибутив Linux mint, основанный на Ubuntu и Debian, который ставит целью предоставить пользователю «современную, элегантную и удобную операционную систему, которая одновременно является мощной и
    13.07.2018
    Стала доступна для скачивания финальная версия Linux Mint 19 сразу со всеми основными вариантами рабочих столов: Cinnamon, MATE и Xfce. Если вы только начинаете знакомиться с удивительным миром Linux, то поясню: Cinnamon – это самый передовой и
    14.03.2018
    Rosa Linux - Linux из России. ROSA Fresh. Сделана для дома. Создана для вас. ROSA Fresh — это современная отечественная операционная система Linux, создаваемая сообществом и легально доступная всем желающим совершенно бесплатно и без регистрации.
    08.06.2018
    Linux Mint 19 – это релиз с длительной поддержкой до 2023 года. Он поставляется с обновлённым программным обеспечением и приносит усовершенствования и множество новых функций, чтобы сделать ваш рабочий стол более удобным. На момент написания, Linux
    03.12.2018
    Новая версия Deepin 15 включает в себя новый дизайн Центра Управления и компьютера, он имеет новый размытый и прозрачный стиль, также включены новые взаимодействия для угловой навигации и оконного менеджера наряду с выбором обоев рабочего стола,
    все шаблоны для dle на сайте шаблоны dle 11.2 скачать
    выбрать фон