如何在Linux中使用Topgrade CLI实用程序升级所有内容

时间:2020-03-21 11:45:03  来源:igfitidea点击:

众所周知,要使我们的Linux系统保持最新状态,就需要调用多个软件包管理器。
举例来说,在Ubuntu中,我们无法使用“ sudo apt update && sudo apt upgrade”命令来升级所有内容。
此命令将仅升级使用APT软件包管理器安装的软件包。
我们可能已经使用cargo,pip,npm,snap,flatpak或者Linuxbrew软件包管理器安装了一些其他应用程序。

我们需要使用相应的程序包管理器,以使其全部更新。
不再!向“ topgrade”打个招呼,该实用程序可使用一个命令一次性升级所有内容。

我们无需单独运行每个程序包管理器来更新程序包。
顶级工具通过检测已安装的软件包,工具,插件并运行其相应的软件包管理器来解决此问题,只需一个命令即可更新Linux框中的所有内容。
它是免费的开放源代码,并使用Rust编程语言编写。
它支持GNU/Linux,Mac OS X,FreeBSD和Microsoft Windows。

安装Topgrade

topgrade可在AUR中获取。

因此,我们可以在任何基于Arch的系统中使用Yay帮助程序来安装它。

$yay -S topgrade

在其他Linux发行版上,可以安装topgrade Cargo软件包管理器。

然后,运行以下命令以安装topgrade:

$cargo install topgrade

如果Rust方法由于任何原因不起作用,请从发布页面下载最新的顶级二进制文件。

在撰写本教程时,最新版本为2.2.0。

$wget https://github.com/r-darwish/topgrade/releases/download/v2.2.0/topgrade-v2.2.0-x86_64-unknown-linux-gnu.tar.gz

提取tar文件:

$tar xvf topgrade-v2.2.0-x86_64-unknown-linux-gnu.tar.gz

将顶级二进制文件复制或者移动到路径,例如/usr/local/bin /。

$sudo mv topgrade /usr/local/bin/

如下所示检查它是否正确安装。

$which topgrade
/usr/local/bin/topgrade

检查安装的版本:

$topgrade -V
Topgrade 2.2.0

在Linux和Unix中使用Topgrade升级所有内容

安装完成后,运行topgrade实用程序以升级Linux系统中的所有组件。

$topgrade

调用topgrade后,它将根据我们使用的OS一项一项地执行以下任务。
在必要时,系统将要求我们输入root/sudo用户密码。

在Linux上:

1.运行Linux系统的程序包管理器并执行以下操作:

  • 基于拱门:运行yay 或者退回到pacman
  • 基于Redhat:运行“ yum upgrade”(如果存在,则运行“ dnf”)
  • 基于Debian的:运行'apt update && apt dist-upgrade'
  • Gentoo:运行“ layman -s ALL && emerge --sync -q && eix-update && emerge -uDNa world”
  • openSUSE:运行“ zypper刷新&& zypper dist-upgrade”
  • 无效:运行“ xbps-install -Su”

2.运行etc-update。

3.运行非官方和第三方程序包管理器:

  • 更新Flatpak软件包
  • 更新快照包
  • 运行fwupdmgr以显示固件升级。 (仅查看。实际上不会执行任何升级)
  • 运行“ rpi-update”以更新Raspberry Pi固件
  • 运行pihole更新器
  • 通过运行'rustup update'更新Rustup。当Rustup安装在主目录中时,这还将尝试运行“ rustup self update”。
  • 运行货运安装更新
  • 升级Emacs软件包
  • 升级OCaml软件包
  • 升级vcpkg全局安装的软件包
  • 升级myrepos托管的源代码存储库
  • 升级使用pipx安装的Python软件包
  • 升级R全局安装的软件包
  • 升级Vim/Neovim软件包。与以下插件框架一起使用:
  • NeoBundle
  • 旺德尔
  • 插头
  • 节点
  • 如果安装了yarn,请运行“ yarn global update”。
  • 如果已安装NPM,并且运行'npm root -g'是主目录中的路径,请运行'npm update -g'。
  • 如果Composer的主目录位于用户的主目录中,请运行“ composer全局更新”。之后运行“代客安装”。
  • 升级Atom软件包
  • 如果存在'~/.gem',请运行'gem upgrade --user-install'

在Unix上:

  • 运行“brew update && brew upgrade”。这应该同时处理Homebrew和Linuxbrew。
  • 运行'nix upgrade-nix && nix --upgrade'。
  • 运行Pearl“pearl update”。
  • 运行zplug update
  • 使用TPM升级tmux插件

在FreeBSD上:

  • 升级和审核程序包。

杂项(这些步骤将在所有操作系统上执行)

它将检查Git是否跟踪以下路径。
如果是这样,请pull它们:

  • ~/.emacs.d
  • ~/.zshrc
  • ~/.oh-my-zsh
  • ~/.tmux
  • ~/.config /鱼
  • ~/.config/nvim
  • ~/.vim
  • ~/.config/openbox
  • ~/.config/bspwm
  • ~/.config/i3
  • Powershell配置文件
  • 自定义路径

最后步骤

所有软件包升级后,Topgrade将再执行最后一步。

在Linux上:

Topgrade实用程序将运行Needrestart以重新启动所有服务。

在FreeBSD上:

Topgrade将运行“ freebsd-upgrade”

在Mac OS X中,它将升级App Store应用程序。

我的Ubuntu 18.04 LTS测试箱的输出示例:

好消息是,如果一个任务失败,它将自动运行下一个任务并完成所有其他后续任务。
最后,它将显示摘要,其中包含详细信息,例如运行了多少任务,成功完成了多少,失败了多少等。

最高等级的选项

Tograde带有一些选项来执行各种其他任务。

在Tmux会话中运行Topgrade

在远程系统上使用Topgrade时,这很方便。

要在Tmux会话中启动Topgrade,请使用-t标志。

$topgrade -t

删除旧的和不必要的文件

要指示软件包管理器清理旧文件和未使用的文件,请在topgrade中使用-c标志:

$topgrade -c

禁用特定的升级步骤

有时,我们不想升级特定的软件包。
如果是这样,我们可以使用'--disable'选项。

例如,使用以下命令跳过系统升级:

$topgrade --disable system

此命令将仅跳过系统升级阶段,并照常进行其他所有升级。

―― 11:39:48 - Self update ――――――――――――――――――――――――――――――――――――――――――――――――――――――
Topgrade is up-to-date
―― 11:39:50 - rustup ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
info: checking for self-updates
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: checking for self-updates
stable-x86_64-unknown-linux-gnu unchanged - rustc 1.35.0 (3c235d560 2019-05-20)

―― 11:39:52 - Node Package Manager ―――――――――――――――――――――――――――――――――――――――――――――
―― 11:40:08 - Summary ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Git repositories: OK
rustup: OK
NPM: OK

跳过Emacs升级:

$topgrade --disable emacs

该命令将跳过升级Emacs软件包及其配置文件。

跳过Vim升级:

$topgrade --disable vim

跳过宝石升级:

$topgrade --disable gem

有关更多详细信息,请通过运行以下命令来查看帮助部分:

$topgrade --help
Topgrade 2.2.0
Roey Darwish Dror <Hyman@theitroad>
Command line arguments
USAGE:
topgrade [FLAGS] [OPTIONS]
FLAGS:
-c, --cleanup Cleanup temporary or old files
-n, --dry-run Print what would be done
-h, --help Prints help information
--no-retry Do not ask to retry failed steps
-t, --tmux Run inside tmux
-V, --version Prints version information
-v, --verbose Output logs
OPTIONS:
--disable <disable>... Do not perform upgrades for the given steps [possible values: gem, git-repos, vim,
emacs, system]

就个人而言,我喜欢创建诸如topgrade之类的实用程序的想法,并只需一个命令即可升级安装在各种程序包管理器中的所有内容。
我希望我们也觉得它有用。