简介
注意 这是 r-darwish 的 topgrade 的一个分支,目的是保持其维护。
保持系统更新通常需要调用多个包管理器。 这导致在你的 shell 中保存了庞大且不可移植的一行式命令。 为了解决这个问题,Topgrade 会检测你使用的工具并运行适当的命令来更新它们。
安装
- Arch Linux: AUR
- NixOS: Nixpkgs
- Void Linux: XBPS
- macOS: Homebrew 或 MacPorts
- Windows: Scoop 或 Winget
- PyPi: pip
其他系统用户可以使用 cargo install
或从发布页面下载编译好的二进制文件。
编译好的二进制文件包含自我升级功能。
目前,Topgrade 需要 Rust 1.65 或更高版本。通常,Topgrade 会跟踪最新的稳定工具链。
使用方法
只需运行 topgrade
。
配置
查看 config.example.toml
以获取示例配置文件。
迁移和重大变更
每当有重大变更时,主版本号将会增加, 我们会在发布说明中记录这些变更,请在更新到主要版本时查看。
有问题吗?随时开启一个 issue 或讨论!
配置路径
各平台的 CONFIG_DIR
- Windows:
%APPDATA%
- macOS 和 其他 Unix 系统:
${XDG_CONFIG_HOME:-~/.config}
topgrade
将按以下优先顺序查找配置文件:
CONFIG_DIR/topgrade.toml
CONFIG_DIR/topgrade/topgrade.toml
如果优先级更高的文件存在,无论其是否有效,其他配置文件都将被忽略。
在首次运行时(不存在配置文件),topgrade
将为你在 CONFIG_DIR/topgrade.toml
创建一个配置文件。
自定义命令
可以在配置文件中定义自定义命令,这些命令可以在内置命令之前、期间或之后运行,根据需要。
默认情况下,自定义命令使用新的 shell 运行,在 Unix 上根据 $SHELL
环境变量(默认为 sh
),在 Windows 上使用 pwsh
(默认为 powershell
)。
在 Unix 上,如果你想使用交互式 shell 运行命令,例如要加载 shell 的 rc 文件,你可以在自定义命令开头添加 -i
。
但请注意,这要求命令正确退出 shell,否则 shell 将无限期挂起。
远程执行
你可以在配置文件中指定一个名为 remote_topgrades
的键。
这个键应包含一个安装了 Topgrade 的主机名列表。
Topgrade 将使用 ssh
在远程主机上运行 topgrade
,然后在本地执行。
要限制只在特定主机上执行,请使用 --remote-host-limit
参数。
贡献
遇到问题或缺少功能?
开启一个新的 issue 描述你的问题,如果可能的话,提供一个解决方案。
缺少功能或发现不支持的工具/发行版?
只需通过开启一个 issue 让我们知道你缺少什么。 对于工具,请开启一个 issue 描述该工具、它支持的平台,如果可能的话,给我们一个使用示例。
想为代码做贡献?
只需 fork 仓库并开始编码。
贡献指南
路线图
- 为代码库添加适当的测试框架。
- 为包管理器添加单元测试。
- 将代码拆分为更易维护的部分,例如将每个 Linux 包管理器放在 linux.rs 的单独子模块中。