Отсутствует libudev.so.0

Кажется, я не могу решить, как исправить «ошибку при загрузке общих библиотек: libudev.so.0: не могу открыть файл общего объекта: нет такого файла или каталога»

Находится 12.04 ( точный) 64-битный, я пробовал sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0. Но не оплакивать.

0
задан 19 October 2013 в 12:33

2 ответа

Я столкнулся с этой проблемой после обновления с 12.04 до 14.04. Я думал о том же направлении, что и вы, исправляя проблему с помощью ссылки. Может быть, вы выбрали неправильное местоположение?

Я использовал find, чтобы найти libudev.so.1: /lib/i386-linux-gnu/libudev.so.1

Именно поэтому я решил свою проблему с помощью этой ссылки:

 ln -s /lib/i386-linux-gnu/libudev.so.1 /lib/i386-linux-gnu/libudev.so.0
[ 118] При использовании find нужно быть осторожным; либо используйте полное точное имя, либо используйте подстановочные знаки и поместите имя в кавычки

0
ответ дан 19 October 2013 в 12:33

То, как я это сделал, - это приложение для каждого приложения, а не для всей системы. Для каждого отдельного приложения в каталоге, где я скачал приложение, я создал символическую ссылку, выполнив:

application_directory$ ln -s /lib/x86_64-linux-gnu/libudev.so.1 libudev.so.0

, а затем проверив, что он разрешает зависимость с помощью:

application_directory$ LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" ldd ./<application>

и наконец, запуская приложение:

application_directory$ LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" ./<application>

Я предпочитаю этот подход, потому что он не требует root, но он работает, только если приложение установлено в вашем домашнем каталоге.

В противном случае вам нужно создать всю систему символьных ссылок, как вы это делали, но вам также необходимо обновить кэш ld после создания символической ссылки в / lib с помощью sudo ldcache -v. Проверьте вывод для строки libudev.so.0.

0
ответ дан 19 October 2013 в 12:33

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

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