Linux趣味教程之一鍵更新所有程序

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

Linux趣味教程之一鍵更新所有程序

最近發現了一個小程序,叫topgrade,這是一個可以一次性升級系統中所有軟件的工具。

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

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

$ yay -S topgrade

在其他 Linux 發行版上,你可以使用 cargo 包管理器安裝 topgrade。要安裝 cargo 包管理器,請參閱以下鏈接:

https://www.ostechnix.com/install-rust-programming-language-in-linux/

然後,運行以下命令來安裝 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 測試環境的示例輸出:

Linux趣味教程之一鍵更新所有程序

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

Linux趣味教程之一鍵更新所有程序


分享到:


相關文章: