我们知道,让 Linux 系统保持最新状态要用到多种包管理器。比如说,在 Ubuntu 中,你无法使用 sudo apt update
和 sudo apt upgrade
命令升级所有软件。此命令仅升级使用 APT 包管理器安装的应用程序。你有可能使用 cargo
、pip、npm
、snap
、flatpak
或 Linuxbrew 包管理器安装了其他软件。你需要使用相应的包管理器才能使它们全部更新。
下面推荐一个工具 topgrade
,它可以一次性升级系统中所有软件,无需运行每个包管理器来更新包。这个 topgrade
工具通过检测已安装的软件包、工具、插件并运行相应的软件包管理器来更新 Linux 中的所有软件,用一条命令解决了这个问题。它是开源的,使用 rust 语言编写,支持 GNU/Linux 和 Mac OS X.
在 Linux 中使用一个命令升级所有软件
topgrade
存在于 AUR 中,你可以在任何基于 Arch 的系统中使用 Yay 助手程序安装它。
- $ yay -S topgrade
在其他 Linux 发行版上,你可以使用 cargo
包管理器安装 topgrade
。要安装 cargo 包管理器,请参阅以下链接:
- 在 Linux 安装 rust 语言
然后,运行以下命令来安装 topgrade
。
- $ cargo install topgrade
安装完成后,运行 topgrade
以升级 Linux 系统中的所有软件。
- $ topgrade
一旦调用了 topgrade
,它将逐个执行以下任务。如有必要,系统会要求输入 root/sudo 用户密码。
1、 运行系统的包管理器:
- Arch:运行
yay
或者回退到 pacman - CentOS/RHEL:运行
yum upgrade
- Fedora :运行
dnf upgrade
- Debian/Ubuntu:运行
apt update
和apt dist-upgrade
- Linux/macOS:运行
brew update
和brew upgrade
2、 检查 Git 是否跟踪了以下路径。如果有,则拉取它们:
~/.emacs.d
(无论你使用 Spacemacs 还是自定义配置都应该可用)~/.zshrc
~/.oh-my-zsh
~/.tmux
~/.config/fish/config.fish
- 自定义路径
3、 Unix:运行 zplug
更新
4、 Unix:使用 TPM 升级 tmux
插件
5、 运行 cargo install-update
6、 升级 Emacs 包
7、 升级 Vim 包。对以下插件框架均可用:
- NeoBundle
- Vundle
- Plug
8、 升级 npm 全局安装的包
9、 升级 Atom 包
10、 升级 Flatpak 包
11、 升级 snap 包
12、 Linux:运行 fwupdmgr
显示固件升级。 (仅查看。实际不会执行升级)
13、 运行自定义命令。
最后,topgrade
将运行 needrestart
以重新启动所有服务。在 Mac OS X 中,它会升级 App Store 程序。就个人而言,我喜欢创建一个像 topgrade
程序的想法,并使用一个命令升级使用各种包管理器安装的所有软件。
80%的人都看过的文章
- 基于容器的简化Linux发行版RancherOS 1.5.0发布
- 轻量级Web服务器Nginx 1.15.2 主线版发布
- Red Hat Enterprise Linux 6 和 CentOS 6 更新
- Linux Kernel 4.20 RC6 发布
- Linux Mint 19.2“Tina”Beta 版发布,更好的内核管理功能
- Deepin Linux 15.10 发布
- Linux Kernel 5.1 分支的 5.1.3 版本发布
- 优雅现代的 Linux 发行版 Solus 4 发布