Topgrade – 在 Linux 上升級所有軟件包的命令行工具

在本指南中,我們將探索一個有趣的工具,該工具旨在使系統上安裝的所有內容的更新就像運行一個命令一樣簡單。 該軟件是頂級軟件,它檢測您在系統上使用的工具並運行適當的包管理器來更新包。

在 CentOS 等 RHEL 系列 Linux 發行版上,topgrade 將執行 yum upgrade命令,這是 dnf upgrade 為了 Fedora. 在 Debian 系列上,由 topgrade 執行以確保一切都是最新的等效命令是 apt update && apt dist-upgrade. 在 Arch Linux 上,它將使用 run yay 或回退到 pacman 如果 yay 沒有安裝。

如果您沒有在 Arch Linux 上安裝 yay AUR 助手,請通過克隆 PKGBUILD 並使用 makepkg 構建來安裝它。

git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

只需運行一個 topgrade 命令,它還將更新以下內容:

  • 升級 Atom 包
  • 在 Linux 上更新 Flatpak 包
  • 在 Linux 上更新 snap 包
  • 管理員 顯示固件升級。
  • 升級 Emacs 包
  • 運行貨物 安裝更新
  • 跑。brew update && brew upgrade. 這應該在 Unix 上處理 Homebrew 和 Linuxbrew。
  • 插頭 在 Unix 上更新
  • Unix:運行漁夫更新
  • 使用 TPM 升級 tmux 插件
  • 升級 Vim/Neovim 包。

在 Linux 上安裝 topgrade

在 Linux 上安裝 topgrade 可以通過拉一個預編譯的二進製文件或使用 cargo install 來完成。 如果你運行 Arch Linux 作為你的主要操作系統,你可以從 AUR 安裝 topgrade:

$ yaourt -S topgrade

對於所有其他操作系統,導航到 topgrade發布頁面 並下載最新版本。 在撰寫本文時,最新版本是 v0.9.0

$ export ver="v0.9.0"
$ wget https://github.com/r-darwish/topgrade/releases/download/${ver}/topgrade-${ver}-x86_64-unknown-linux-gnu.tar.gz

對於 macOS 用戶,下載名稱為的包 apple-darwin.tar.gz

解壓包得到二進製文件:

$ tar xvf topgrade-${ver}x86_64-unknown-linux-gnu.tar.gz

將提取的二進製文件移動到 /usr/local/bin

$ sudo mv topgrade /usr/local/bin/

確認升級二進制位置:

$ which topgrade
/usr/local/bin/topgrade

使用 topgrade 更新系統包

安裝包後,您可以通過調用終端上的名稱輕鬆使用它:

$ topgrade --help
Topgrade 0.9.0
Upgrade all the things

USAGE:
topgrade [FLAGS]

FLAGS:
-h, --help Prints help information
-t, --tmux Invoke inside tmux
-V, --version Prints version information

只需在您的終端上輸入 topgrade,它就會開始更新和升級已安裝的軟件包。

$ topgrade

如果 sudo 需要權限,系統會提示您 sudo 密碼。 既然我有 oh-my-zsh 它也得到了更新。

在 tmux 會話中運行 topgrade

建議讓 topgrade 運行 tmux session 以避免意外的人為中斷或網絡超時,尤其是在遠程系統上工作時。 為此用途:

$ topgrade -t

如果你沒有安裝 tmux,你可以使用你的操作系統包管理器來獲取它:

在 Ubuntu 上:

$ sudo apt-get install tmux

在 CentOS / Fedora:

$ sudo yum install tmux
$ sudo dnf install tmux

在 Arch Linux 上,使用:

$ sudo pacman -S tmux

定制上品

您可以將配置文件放在 ~/.config/topgrade.toml. 這是一個 example:

git_repos = [
    "~/dev/topgrade",
]

[pre_commands]
"Emacs Snapshot" = "rm -rf ~/.emacs.d/elpa.bak && cp -rl ~/.emacs.d/elpa ~/.emacs.d/elpa.bak"

[commands]
"Python Environment" = "~/dev/.env/bin/pip install -i https://pypi.python.org/simple -U --upgrade-strategy eager jupyter"

在這 example:

  • git_repos – 要拉取的自定義 Git 存儲庫列表
  • 預命令 – 在開始任何操作之前執行的命令
  • 命令 – 自定義升級步驟。

另請閱讀

  • 如何從 Yum 更新中排除特定包
  • 如何在 Ubuntu/CentOS 中升級單個軟件包
  • 如何在 Arch Linux 上安裝軟件包

Topgrade 似乎是一個必備的 Sysadmin 工具,用於管理您每天管理的服務器集群的更新。 您可以通過使用 -t 標誌讓它在 tmux 會話中運行這一事實,通過確保它們優雅地完成來保持更新更安全。 嘗試一下,並通過我們的評論部分讓我們知道您喜歡它。