很抱歉问这个问题,但我几个小时都无法解决这么简单的问题:
我犯了一个打字错误
update-alternatives --install /usr/lib64/R/lib/libRblapack.so libRblapack.so /usr/lib64/R/lib/libRblapack_native.so 100
应该是 libRlapack.so 而不是 libRblapack。问题是如果发出正确的命令行,即
update-alternatives --install /usr/lib64/R/lib/libRlapack.so libRlapack.so /usr/lib64/R/lib/libRlapack_native.so 100
它返回一个错误:
libRlapack.so 的主链接必须是 /usr/lib64/R/lib/libRblapack.so
我试过
update-alternatives --remove libRblapack.so /usr/lib64/R/lib/libRblapack.so
但它不起作用——输入正确命令时返回相同的错误。
我该如何修复它?
谢谢!
答案1
我会尝试手动清理。我从来没有这样做过,所以请确保事先备份。
- 从 /etc/alternatives 中删除链接
- 从管理目录中删除相关文件
- ubuntu 上的 /var/lib/dpkg/alternatives/(debian 可能相同,但请检查 FILES 部分下的手册页)
- CentOS 6&7 上的 /var/lib/alternatives/
答案2
在我的情况下,手动删除它们会导致... is already managed by ...
错误。除此之外,手动删除也没有扩展,因为我已经为集中式符号链接添加了多个替代方案。这简直是一团糟。
当涉及到update-alternatives
或 时alternatives
,它们都提供了--remove
和--remove-all
标志。至于前一个标志,它只会删除链接组的一个替代方案。例如
$ update-alternatives --list python3
/usr/bin/python3.8
/usr/bin/python3.9
$ sudo update-alternatives --remove python3 /usr/bin/python3.9
$ update-alternatives --list python3
/usr/bin/python3.8
--remove
国旗 的形状update-alternatives --remove symlink-generic-name /path/to/one/executable/alternative
但是,如果您想一次性彻底删除通用名称及其所有相关替代名称,那么这--remove-all
就是可行的方法。
$ update-alternatives --list python3
/usr/bin/python3.8
/usr/bin/python3.9
$ sudo update-alternatives --remove-all python3
$ update-alternatives --list python3
update-alternatives: error: no alternatives for python3
$ update-alternatives --query python3
update-alternatives: error: no alternatives for python3