简介
[!NOTE] 这是 topgrade by r-darwish 的分支,旨在保持其维护。
保持系统更新通常涉及调用多个包管理器。 这会导致在你的 shell 中保存大量不可移植的 shell 单行命令。 为了解决这个问题,Topgrade 会检测你使用的工具,并运行相应的命令来更新它们。
安装
官方
- 自更新二进制文件(所有平台):releases
- 从源码安装(所有平台):
cargo install topgrade - Debian/Ubuntu(deb-get):
deb-get install topgrade - Arch Linux(AUR):topgrade 或 topgrade-bin
- PyPi:
pip、pipx或uv toolinstall topgrade - Windows(Winget):
winget install --id=topgrade-rs.topgrade -e - macOS 或 Linux(Homebrew):
brew install topgrade - Fedora/RHEL/AlmaLinux/CentOS-Stream(Copr):
sudo dnf copr enable lilay/topgrade && sudo dnf install topgrade
社区维护
- Windows(Chocolatey):
choco install topgrade - Windows(Scoop):
scoop bucket add main && scoop install main/topgrade - macOS(MacPorts):
sudo port install topgrade - Ubuntu(Pacstall):
pacstall -I topgrade-bin - NixOS 或 Nix(nixpkgs):topgrade
- Alpine Linux:
sudo apk add topgrade - Void Linux:
sudo xbps-install -S topgrade
用法
只需运行 topgrade。
配置
请参阅 config.example.toml 获取配置文件示例。
MSRV
在 Cargo.toml 的 rust-version 下查找当前的 MSRV。此 MSRV 仅会在主要版本发布时提升。
迁移与破坏性变更
每当出现破坏性变更时,主版本号将会提升, 并且我们会在发布说明中记录这些变更,请在升级到主要版本时查看。
有问题?欢迎随时提交 issue 或 discussion!
配置路径
各平台上的 CONFIG_DIR
- Windows:
%APPDATA% - macOS 和其他 Unix 系统:
${XDG_CONFIG_HOME:-~/.config}
topgrade 将按以下优先级顺序查找配置文件:
CONFIG_DIR/topgrade.tomlCONFIG_DIR/topgrade/topgrade.toml
如果存在优先级较高的文件,无论其是否有效,其他配置文件都将被 忽略。
首次运行时(前提是尚不存在配置文件),topgrade 会在
CONFIG_DIR/topgrade.toml 处为您创建一个配置文件。CONFIG_DIR/topgrade.d/ 中的任何文件也会在主要
配置文件之前被加载并合并。
自定义命令
可以在配置文件中定义自定义命令,这些命令可以根据需要在内置命令之前、期间或之后运行。
默认情况下,自定义命令会根据 Unix 上的 $SHELL 环境变量使用新的 shell 运行(回退到
sh),或在 Windows 上使用 pwsh(回退到 powershell)。
在 Unix 上,如果您希望使用交互式 shell 运行命令,例如为了加载您的 shell 的 RC 文件,您
可以在自定义命令的开头添加 -i。
但请注意,这要求命令正确退出 shell,否则 shell 将无限期挂起。
远程执行
您可以在配置文件中指定一个名为 remote_topgrades 的键。
该键应包含一个已安装 Topgrade 的主机名列表。
Topgrade 将在本地操作之前使用 ssh 在远程主机上运行 topgrade。
要将执行限制在特定主机,请使用 --remote-host-limit 参数。
贡献
遇到问题或缺少功能?
请打开一个新 issue 描述您的问题,并尽可能提供解决方案。
缺少功能或发现不支持的工具/发行版?
请通过提交 issue 告知我们您缺少什么。 对于工具,请提交一个 issue 描述该工具、它支持的平台,并尽可能提供其使用示例。
想要贡献?
Discord 服务器
如果您想讨论 Topgrade,欢迎加入我们的 Discord 服务器