Linux
如何在 Linux 上刪除“update-alternatives”連結
很抱歉問這個問題,但我無法在幾個小時內解決這樣一個簡單的問題:
我犯了一個錯字
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
但它不起作用 - 輸入正確的命令時返回相同的錯誤。
我怎樣才能修復它?
謝謝!
我會嘗試手動清理它。我從來沒有這樣做過,所以請確保您事先備份。
從 /etc/alternatives 中刪除連結
從 admin 目錄中刪除相關文件
- ubuntu 上的 /var/lib/dpkg/alternatives/ (debian 可能相同,但請查看 FILES 部分下的手冊頁)
- /var/lib/alternatives/ 在 CentOS 6&7 上
在我的情況下,手動刪除它們會導致
... is already managed by ...
錯誤。除此之外,手動刪除也沒有擴展,因為我為集中式符號連結添加了多個替代方案。這只是一團糟。當涉及
update-alternatives
oralternatives
時,它們都提供--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