译者:OpenView
原文地址:
https://www.ostechnix.com/how-to-upgrade-everything-using-a-single-command-in-linux/
我们都知道,要保持我们的Linux系统为最新状态需要使用不止一个包管理器。例如,在Ubuntu你不能仅仅通过下面的命令来更新所有的东西:
sudo apt update && sudo apt upgrade
因为上面的命令仅会更新使用apt包管理器安装的软件。而很有可能你还安装了其它的应用比如cargo、pip、npm、snap、flatpak或者Linuxbrew等包管理器。你需要使用其各自的更新命令来保持它们都是最新的。
现在不用那么麻烦了! 向”topgrade”说你好吧,它是一个使用单个命令来更新所有东西的命令行工具。
你不再需要单独运行每一个包管理器来更新软件包了。topgrade工具解决了该问题,方法是探测系统上安装了的软件包、工具、插件并运行合适的包管理器来更新你的Linux上的软件包。该工具是免费、开源的,使用Rust语言编写。其支持GNU/Linux、Mac OS X、FreeBSD和Microsoft Windows。
安装Topgrade
topgrade在archlinux的用户软件源中。因此,在基于archlinux的系统上你可以通过Yay助手程序来很容易地对其进行安装。
yay -S topgrade
在其它Linux发行版上,topgrade可以通过Cargo包管理器安装。要安装cargo包管理器,请参考下面的链接:
然后,运行下面的命令来安装topgrade:
cargo install topgrade
如果cargo这个方式处于某种原因不能正常工作,可以从topgrade的发行页面下载二进制程序,类似下面这样:
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
将topgrade二进制文件拷贝到你的path中,例如/usr/local/bin:
sudo mv topgrade /usr/local/bin
检查是否如下被正常安装:
$ which topgrade/usr/local/bin/tograde
检查安装的版本:
$ topgrade -VTopgrade 2.2.0
使用Topgrade来更新Linux/Unix中的所有软件包
一旦安装好了Topgrade,就可以运行该工具来更新你的Linux系统上的软件包了:
topgrade
一旦topgrade被唤醒,其将一条一条地执行下面的任务,并取决于你的操作系统。需要的时候,你得输入root/sudo密码。
在Linux上:
- 运行你的系统包管理器,并作如下操作:
2.运行etc-update
3.运行非官方和第三方包管理器:
在Unix上:
在FreeBSD上:
其它(这些步骤在所有的操作系统上都会被执行)
它将会检查是否下面的路径被Git追踪。如果是,将会对其进行pull:
最后一步
一旦所有的包都被更新了,Topgrade将会再多做一步:
在Linux上
Topgrade工具将运行needrestart来重启所有服务。
在FreeBSD上
Topgrade将运行freebsd-upgrade
在Mac OS X上
其将运行App Store应用。
下面是Ubuntu 18.04的输出示例:
好消息是,如果一个任务失败了,其将自动运行下一个命令并完成所有其它接下来的任务。最终,其将展示汇总信息,包括其运行了多少个任务,有多少个成功多少个失败等。
Topgrade选项
Topgrade具有一些选项来执行各种额外的任务。
在Tmux会话中运行Topgrade
这对于在远端系统上使用Topgrade的时候很方便。
要在一个Tmux会话中启动Tmux会话,使用-t参数:
topgrade -t
移除旧的和不需要的文件
要通知包管理器来清理旧的和不再使用的文件,使用-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-updatesinfo: 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: OKrustup: OKNPM: OK
跳过Emacs更新 :
topgrade --disable emacs
这个命令将会跳过更新Emacs包以及配置文件。
跳过Vim更新:
topgrade --disable vim
跳过gem更新:
topgrade --disable vim
要了解更多细节,通过运行下面的命令来查看帮助信息:
$ topgrade --helpTopgrade 2.2.0Roey Darwish Dror <roey.ghost@gmail.com>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这样的工具的创建,能够通过一个单一的命令更新系统上的所有东西。希望你也能发现这很有用。
更多关于Linux日常使用经验和趣谈的文章(点击跳转)
百度 盘发布了Linux版,你怎么看
解决Linux下WPS无法使用fcitx搜狗拼音
Linux下使用搜狗输入法键入中文
Linux下挂载使用Windows的NTFS分区
Linux下使用redshift来启用护眼模式
Linux使用图形界面连接WiFi
Linux中使用snap和flatpak来安装和管理应用程序
Linux下常用的图形应用下载工具
Linux下制作系统的U盘启动盘
用Youtube-dl下载视频:新手示例(上)
用Youtube-dl下载视频:新手示例(中)
用Youtube-dl下载视频:新手示例(下)
喜欢使用Linux办公、学习、hack的朋友们可以点击关注小编,小编将竭力提供更多内容给大家交流~
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!