如何修复损坏的符号链接

如何修复损坏的符号链接

系统使用Kubuntu 20.04.1完全更新。

我目前正在尝试启动并运行旧的 OU Sense 主板 (SBC)。我已成功安装了基于 Scratch/Squeak 的 IDE 软件。但是,当我尝试运行该 IDE 时,它却无法运行。发出 ldd 命令并将其输出通过管道传输到 grep 后,系统将显示以下输出。

kub@kub-SATELLITE-L870-18V:~$ ldd /usr/lib/Sense/*Plugin | grep 'not found'
/usr/lib/Sense/CurlPlugin: /lib/i386-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by /usr/lib/Sense/CurlPlugin)
        libssl.so.0.9.8 => not found
        libssh2.so.1 => not found
        libcrypto.so.0.9.8 => not found
        libasound.so.2 => not found
        libpangocairo-1.0.so.0 => not found
        libpango-1.0.so.0 => not found
        libcairo.so.2 => not found
        libgobject-2.0.so.0 => not found
        libgmodule-2.0.so.0 => not found
        libglib-2.0.so.0 => not found
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 执行了此操作。

在 /usr/lib/x86_64-linux-gnu 中使用 Dolphin,我看到链接文件的文件图标在其右下角有一个链环子图标。但是在 /usr/lib 中,Dolphin 显示链接文件的文件图标,但没有显示其链环子图标。

在 Konsole 中,当我在 /usr/lib/x86_64-linux-gnu 中输入 ls -l 时,我发现以下内容。

lrwxrwxrwx  1 root root        16 Aug 10  2020 libssh2.so.1 -> libssh2.so.1.0.1

这清楚地表明链接存在。在 /usr/lib 中发出相同命令时,将显示以下内容。

-rw-r--r--   1 root root  186856 Sep 16 10:50 libssh2.so.1
-rw-r--r--   1 root root  186856 Sep 16 10:51 libssh2.so.1.0.1

可以清楚的看到链接已被删除。如何恢复 /usr/lib 中这两个文件之间的链接?

更新:我现在更加不确定如何继续阅读https://dmerej.info/blog/post/symlinks-and-so-files-on-linux/

正如您从顶部列表中看到的,我需要对许多其他库(链接和非链接)文件重复相同的过程,因此非常感谢任何帮助。

此致,

斯图尔特

相关内容