Рейтинг:2

Как восстановить битые символические ссылки

флаг lb

В системе используется полностью обновленная версия Kubuntu 20.04.1.

В настоящее время я пытаюсь получить старый O.U. Плата Sense (SBC) запущена и работает. Мне удалось установить программное обеспечение для его IDE на основе Scratch/Squeak. Однако, когда я пытаюсь запустить ide, он не запускается. При вводе команды ldd и передаче ее вывода в grep система отображает следующий вывод.

kub@kub-SATELLITE-L870-18V:~$ ldd /usr/lib/Sense/*Plugin | grep "не найдено"
/usr/lib/Sense/CurlPlugin: /lib/i386-linux-gnu/libcurl.so.4: версия `CURL_OPENSSL_3' не найдена (требуется /usr/lib/Sense/CurlPlugin)
        libssl.so.0.9.8 => не найдено
        libssh2.so.1 => не найден
        libcrypto.so.0.9.8 => не найдено
        libasound.so.2 => не найдено
        libpangocairo-1.0.so.0 => не найдено
        libpango-1.0.so.0 => не найдено
        libcairo.so.2 => не найдено
        libgobject-2.0.so.0 => не найден
        libgmodule-2.0.so.0 => не найден
        libglib-2.0.so.0 => не найдено
kub@kub-SATELLITE-L870-18V:~$ 

Я обнаружил, что начиная с файла libssh2.so.1 и ниже, показанного в списке выше, все эти файлы существуют в системе внутри /usr/lib/x86_64-linux-gnu. Я думал, что для запуска ide достаточно просто переместить необходимые файлы библиотеки на один уровень вверх в /usr/lib. Я сделал это с (ссылочным файлом) libssh2.so.1 и (не связанным файлом) libssh2.so.1.0.1, на который ссылается первый файл.

Используя Dolphin в /usr/lib/x86_64-linux-gnu, я вижу, что значок файла для файла ссылки имеет подзначок ссылки в правом нижнем углу. Однако в /usr/lib Dolphin показывает значок файла для файла ссылки без вспомогательного значка ссылки на цепочку.

В Konsole, когда я ввожу ls -l в /usr/lib/x86_64-linux-gnu, я нахожу следующее.

lrwxrwxrwx 1 root root 16 10 августа 2020 г. libssh2.so.1 -> libssh2.so.1.0.1

Это ясно показывает, что связь присутствует. Когда та же команда выполняется в /usr/lib, отображается следующее.

-rw-r--r-- 1 root root 186856 16 сентября 10:50 libssh2.so.1
-rw-r--r-- 1 root root 186856 16 сентября 10:51 libssh2.so.1.0.1

Хорошо видно, что связь удалена. Как восстановить связь между этими двумя файлами в /usr/lib?

ОБНОВЛЕНИЕ: теперь я еще более не уверен, как действовать, только что прочитав https://dmerej.info/blog/post/symlinks-and-so-files-on-linux/

Как вы можете видеть из верхнего списка, мне нужно будет повторить тот же процесс для ряда других файлов библиотеки (ссылочных и не связанных), поэтому любая помощь будет очень признательна.

С наилучшими пожеланиями,

Стюарт

флаг hr
Если вы пытаетесь запустить 32-битное приложение (как предлагает `/lib/i386-linux-gnu/libcurl.so.4`), то связывание 64-битных библиотек вряд ли поможет, я думаю?
user10489 avatar
флаг in
Вы решаете неправильную проблему. То, что имя файла совпадает, не означает, что это правильный файл. Такое перемещение вещей может сломать вашу систему.
user10489 avatar
флаг in
Попробуйте использовать команду `file` для библиотек и проверьте, соответствует ли архитектура.
N0rbert avatar
флаг zw
Это не неработающие символические ссылки, это неработающие библиотечные связи. Что такое CurlPlugin? Откуда скачал? Пожалуйста, сделайте ваш вопрос более воспроизводимым. Также обратите внимание, что 20.04.1 не является последней версией.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.