Error while loading error while loading shared libraries 解决办法
缺失了,那就找到放回去
发行版:Archlinux
如标题所言,这里以截至写文章前碰到的yaourt
为例:
➜ ~ yaourt -Ss uswsusp
yaourt: error while loading shared libraries: libalpm.so.12
看了一下系统里的,发现libalpm.so
已经升级到13
➜ ~ ls -l /usr/lib/libalpm.so*
lrwxrwxrwx 1 root root 13 Jul 16 03:26 /usr/lib/libalpm.so -> libalpm.so.13
lrwxrwxrwx 1 root root 17 Jul 16 03:26 /usr/lib/libalpm.so.13 -> libalpm.so.13.0.0
-rwxr-xr-x 1 root root 243608 Jul 16 03:26 /usr/lib/libalpm.so.13.0.0
那么,问题很简单,库升级了,而依赖的软件开发者没有升级。
接下来,只需要三个步骤:
- 确认
libalpm.so
来自的软件,并下载老版本(其中可能包含 我们需要的 12
) - 一般将包打开,可以直接找到相应的链接库
- 复制到
/usr/lib
下
我的详细步骤:
搜索发现可能是在 pacman
这个包里
➜ ~ pacman -Ss libalpm
core/pacman 6.0.0-5 (base-devel) [installed]
A library-based package manager with dependency support
extra/pyalpm 0.10.6-1
Python 3 bindings for libalpm
(..... 其他无关紧要的软件包)
要下载Archlinux的旧软件包,需要到 Arch archive 找。
在 /packages/p/pacman/
这个目录下尝试性的下载了当前版本(v6.0.0)的前一个版本,pacman-5.2.2-4-x86_64.pkg.tar.zst
直接打开,发现了 libalpm.so.12
最后将解压后的 libalpm.so.*
复制到 /usr/lib
即可。(注意不要复制不带版本后缀的那个 libalpm.so
)
这么简单的一个问题,却困扰了我很久很久……好在那些软件不重要,否则真的要令人抓狂。
我发现百度、谷歌上的答案简直是99%都是不靠谱的答案,这么简单的解决办法怎么会搜索不到呢?
有幸有天头晕脑眩的搜索后无意间发现了。一时间在思考到底是我sb还是这个世界sb……
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)