众所周知, 让我们的 Linux 系统保持最新状态会用到多种包管理器. 比如说, 在 Ubuntu 中, 你无法使用 sudo apt update 和 sudo apt upgrade 命令升级所有软件. 此命令仅升级使用 APT 包管理器安装的应用程序. 你有可能使用 cargo, https://www.ostechnix.com/manage-python-packages-using-pip/ ,npm,snap ,flatpak 或 Linuxbrew https://www.ostechnix.com/linuxbrew-common-package-manager-linux-mac-os-x/ 包管理器安装了其他软件. 你需要使用相应的包管理器才能使它们全部更新.
再也不用这样了! 跟 topgrade 打个招呼, 这是一个可以一次性升级系统中所有软件的工具.
你无需运行每个包管理器来更新包. 这个 topgrade 工具通过检测已安装的软件包, 工具, 插件并运行相应的软件包管理器来更新 Linux 中的所有软件, 用一条命令解决了这个问题. 它是自由而开源的, 使用 rust 语言编写. 它支持 GNU/Linux 和 Mac OS X.
在 Linux 中使用一个命令升级所有软件
topgrade 存在于 AUR 中. 因此, 你可以在任何基于 Arch 的系统中使用 Yay https://www.ostechnix.com/yay-found-yet-another-reliable-aur-helper/ 助手程序安装它.
$ yay -S topgrade
在其他 Linux 发行版上, 你可以使用 cargo 包管理器安装 topgrade. 要安装 cargo 包管理器, 请参阅以下链接:
在 Linux 安装 rust 语言 https://www.ostechnix.com/install-rust-programming-language-in-linux/
然后, 运行以下命令来安装 topgrade.
$ cargo install topgrade
安装完成后, 运行 topgrade 以升级 Linux 系统中的所有软件.
$ topgrade
一旦调用了 topgrade, 它将逐个执行以下任务. 如有必要, 系统会要求输入 root/sudo 用户密码.
1, 运行系统的包管理器:
Arch: 运行 yay 或者回退到 https://www.ostechnix.com/getting-started-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 https://www.ostechnix.com/manage-vim-plugins-using-vundle-linux/
- Plug
8, 升级 https://www.ostechnix.com/manage-nodejs-packages-using-npm/ 全局安装的包
9, 升级 Atom 包
10, 升级 Flatpak https://www.ostechnix.com/flatpak-new-framework-desktop-applications-linux/ 包
11, 升级 https://www.ostechnix.com/install-snap-packages-arch-linux-fedora/ 包
12, Linux: 运行 fwupdmgr 显示固件升级. (仅查看. 实际不会执行升级)
13, 运行自定义命令.
最后, topgrade 将运行 needrestart 以重新启动所有服务. 在 Mac OS X 中, 它会升级 App Store 程序.
我的 Ubuntu 18.04 LTS 测试环境的示例输出:
好处是如果一个任务失败, 它将自动运行下一个任务并完成所有其他后续任务. 最后, 它将显示摘要, 其中包含运行的任务数量, 成功的数量和失败的数量等详细信息.
建议阅读:
就个人而言, 我喜欢创建一个像 topgrade 程序的想法, 并使用一个命令升级使用各种包管理器安装的所有软件. 我希望你也觉得它有用. 还有更多的好东西. 敬请关注!
来源: http://os.51cto.com/art/201807/579749.htm