语境:ArchLinux 包管理器: 吃豆人
运行几乎任何pacman
命令都会产生警告:
pacman: /opt/plexmediaserver/libcurl.so.4: no version information available (required by /usr/lib/libalpm.so.10)
我已经看到了解决方案和错误报告,但是在下一个更新出现之前,管理员如何解决这个问题?我听说要学习管理思维过程,而不是寻找极简主义的答案。
- 删除符号链接并冒破坏依赖关系的风险?
- 安装旧版本并安装了两个版本?
- 恢复到旧版本(
pacman -U pkgname
从/var/cache/pacman/pkg/
)并将 pkg 名称添加到/etc/pacman.conf
?的 IgnPackage 部分 - 等待并希望最好的结果?
- 还有其他技术吗?
文件系统输出ls -lsa /usr/lib/libcurl*
很明显 libcurl.so.4 -> libcurl.so.4.5.0* 是链接的。
0 lrwxrwxrwx 1 root root 16 23. Okt 13:27 libcurl.so -> libcurl.so.4.5.0*
0 lrwxrwxrwx 1 root root 16 23. Okt 13:27 libcurl.so.4 -> libcurl.so.4.5.0*
520 -rwxr-xr-x 1 root root 530656 23. Okt 13:28 libcurl.so.4.5.0*
答案1
当您有一个不工作的 aur 包时,请执行以下步骤:
- 重建 aur 包,它可能会链接到新版本的库。
- 如果维护者更新了 PKGBUILD,则更新 aur 包
- 如果没有帮助,请更新/修复 PKGBUILD
- 如果失败,请安装旧版本并等待。
- 如果您需要更新其他软件包,请删除有问题的 aur 软件包。
第一步抓住了 sonamebumps。在其他情况下,您确实应该更新或删除 aur 包。如果有新的 PKGBUILD 可用,您不应该等待。
如果您确实想保留特定版本,只需执行第一步和第三步。
答案2
为了子孙后代,我找到了真正的罪魁祸首。事实是,在写问题时,我误解了这个问题。
解决方案
在一些实验中,我添加了export LD_LIBRARY_PATH=/opt/plexmediaserver
我的 bash 配置文件。
我只需要删除它。共享库路径恢复正常 ( /usr/lib
),生活也恢复正常。
printenv
我通过以正确的用户身份运行来解决这个问题。