1. 程式人生 > >如何在 Linux 中使用一個命令升級所有軟體?

如何在 Linux 中使用一個命令升級所有軟體?

640?wx_fmt=jpeg

英文:Sk,翻譯:Linux中國/geekpi

linux.cn/article-9866-1.html

640?wx_fmt=png

眾所周知,讓我們的 Linux 系統保持最新狀態會用到多種包管理器。比如說,在 Ubuntu 中,你無法使用 sudo apt update 和 sudo apt upgrade 命令升級所有軟體。此命令僅升級使用 APT 包管理器安裝的應用程式。你有可能使用 cargo、pip、npm、snap 、flatpak 或 Linuxbrew 包管理器安裝了其他軟體。你需要使用相應的包管理器才能使它們全部更新。

再也不用這樣了!跟 topgrade 打個招呼,這是一個可以一次性升級系統中所有軟體的工具。

你無需執行每個包管理器來更新包。這個 topgrade 工具通過檢測已安裝的軟體包、工具、外掛並執行相應的軟體包管理器來更新 Linux 中的所有軟體,用一條命令解決了這個問題。它是自由而開源的,使用 rust 語言編寫。它支援 GNU/Linux 和 Mac OS X.

在 Linux 中使用一個命令升級所有軟體

topgrade 存在於 AUR 中。因此,你可以在任何基於 Arch 的系統中使用 Yay 助手程式安裝它。

$ yay -S topgrade

在其他 Linux 發行版上,你可以使用 cargo 包管理器安裝 topgrade。

然後,執行以下命令來安裝 topgrade。

$ cargo install topgrade

安裝完成後,執行 topgrade 以升級 Linux 系統中的所有軟體。

$ topgrade

一旦呼叫了 topgrade,它將逐個執行以下任務。如有必要,系統會要求輸入 root/sudo 使用者密碼。

1、 執行系統的包管理器:

  • Arch:執行 yay 或者回退到 pacman

  • CentOS/RHEL:執行 yum upgrade

  • Fedora :執行 dnf upgrade

  • Debian/Ubuntu:執行 apt update 和 apt dist-upgrade

  • Linux/macOS:執行 brew update 和 brew upgrade

2、 檢查 Git 是否跟蹤了以下路徑。如果有,則拉取它們:

  • ~/.emacs.d (無論你使用 Spacemacs 還是自定義配置都應該可用)

  • ~/.zshrc

  • ~/.oh-my-zsh

  • ~/.tmux

  • ~/.config/fish/config.fish

  • 自定義路徑

3、 Unix:執行 zplug 更新

4、 Unix:使用 TPM 升級 tmux 外掛

5、 執行 cargo install-update

6、 升級 Emacs 包

7、 升級 Vim 包。對以下外掛框架均可用:

  • NeoBundle

  • Vundle

  • Plug

8、 升級 npm 全域性安裝的包

9、 升級 Atom 包

10、 升級 Flatpak 包

11、 升級 snap 包

12、 Linux:執行 fwupdmgr 顯示韌體升級。 (僅檢視。實際不會執行升級)

13、 執行自定義命令。

最後,topgrade 將執行 needrestart 以重新啟動所有服務。在 Mac OS X 中,它會升級 App Store 程式。

我的 Ubuntu 18.04 LTS 測試環境的示例輸出:

640?wx_fmt=png

好處是如果一個任務失敗,它將自動執行下一個任務並完成所有其他後續任務。最後,它將顯示摘要,其中包含執行的任務數量,成功的數量和失敗的數量等詳細資訊。

640?wx_fmt=png

640?

640?wx_fmt=gif

免責宣告:本文系網路轉載,版權歸原作者所有。如涉及作品版權問題,請與我們聯絡,我們將根據您提供的版權證明材料確認版權並支付稿酬或者刪除內容。