如何在Linux中使用Topgrade CLI实用程序升级所有内容
众所周知,要使我们的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之类的实用程序的想法,并只需一个命令即可升级安装在各种程序包管理器中的所有内容。
我希望我们也觉得它有用。