topgrade - 命令行工具升级Linux上的所有包

时间:2020-03-05 15:31:17  来源:igfitidea点击:

在本教程中,我们将探讨一个有趣的工具,该工具旨在使系统上安装的所有内容更新,就像运行一个命令一样简单。
此软件是Topgrade,它检测我们在系统上使用的工具,并运行适当的包管理器以更新包。

在Rhel家庭Linux Pricsox PricsoS中,Topgrade将执行"yum升级"命令,这是"DNF升级"为Fedora。
在Debian系列上,Topgrade执行的等效命令以确保所有内容是最新的,是"APT更新&& APT Dist upgrade"。
在Arch Linux上,如果没有安装Yay,它将使用Run Yay或者返回"Pacman""。

如果我们没有安装在Arch Linux上的Yay Aur Helper,请通过克隆PKGBuild和Buytpkg构建来安装它。

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

只需运行单个topgrade命令,它也会更新以下内容:

  • 升级原子包
  • 在Linux上更新FlatPak包
  • 更新Linux上的Snap Packages
  • 运行fwupdmgr以显示固件升级。
  • 升级Emacs软件包
  • 运行货物安装 - 更新
  • 运行步。 Brew update && Brew升级。这应该在Unix上处理Homebrew和LinuxBrew。
  • 在UNIX上运行ZPLUG更新
  • UNIX:运行渔民更新
  • 使用TPM升级TMUX插件
  • 升级Vim/Neovim软件包。

在Linux上安装Topgrade

可以通过拉动预编译的二进制文件或者使用货物安装来完成Linux上的Topgrade安装。
如果我们正在运行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/

确认Topgrade二进制位置:

$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密码。
因为我有"哦 - my-zsh"",它也更新了。

在TMUX会话中运行FOLPRADE

建议将Topgrade留在"TMUX"程序中运行,以避免意外人类中断或者网络超时,特别是在在远程系统上工作时。
为此:

$topgrade -t

如果未安装TMUX,则可以使用OS包管理器获取它:

在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放置一个配置文件。
这是一个例子:

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"

在这个例子中:

  • git_repos - 拉动的自定义Git存储库列表
  • pre_commands - 在开始任何操作之前执行的命令
  • 命令 - 自定义升级步骤。

还要阅读

  • 如何从yum更新中排除特定包
  • 如何在Ubuntu/CentOS中升级个别包
  • 如何在Arch Linux上安装软件包

Topgrade似乎是一个必须具有Sysadmin工具,用于管理每天管理的服务器集群中的更新。
只需使用-t标志,我们可以在TMUX会话中运行它的事实,通过确保优雅地完成,保持更新更新。