@wwkit/opm 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +381 -0
  2. package/bin/index.js +9 -0
  3. package/docs/managers/apt.md +45 -0
  4. package/docs/managers/brew.md +92 -0
  5. package/docs/managers/bun.md +50 -0
  6. package/docs/managers/cft.md +57 -0
  7. package/docs/managers/composer.md +96 -0
  8. package/docs/managers/config.md +32 -0
  9. package/docs/managers/dnf.md +46 -0
  10. package/docs/managers/node.md +49 -0
  11. package/docs/managers/npm.md +100 -0
  12. package/docs/managers/nvm.md +34 -0
  13. package/docs/managers/php.md +48 -0
  14. package/docs/managers/phpenv.md +34 -0
  15. package/docs/managers/pip.md +98 -0
  16. package/docs/managers/python.md +53 -0
  17. package/docs/managers/uv.md +27 -0
  18. package/docs/opm.html +570 -0
  19. package/docs/packages/opencode.md +41 -0
  20. package/package.json +51 -0
  21. package/scripts/postinstall.js +7 -0
  22. package/src/binaries/base.js +508 -0
  23. package/src/binaries/cft/index.js +35 -0
  24. package/src/binaries/depchecker.js +172 -0
  25. package/src/binaries/exefinder.js +110 -0
  26. package/src/binaries/platform.js +17 -0
  27. package/src/cli/doc.js +335 -0
  28. package/src/cli/groups/config.js +78 -0
  29. package/src/cli/groups/ensure.js +96 -0
  30. package/src/cli/groups/homebrew.js +73 -0
  31. package/src/cli/groups/nvm.js +73 -0
  32. package/src/cli/groups/package.js +514 -0
  33. package/src/cli/groups/phpenv.js +89 -0
  34. package/src/cli/groups/uv.js +73 -0
  35. package/src/cli/groups/version-manager.js +186 -0
  36. package/src/cli/helpers/args.js +49 -0
  37. package/src/cli/index.js +129 -0
  38. package/src/config.js +133 -0
  39. package/src/config.json5 +158 -0
  40. package/src/formatter.js +13 -0
  41. package/src/harnesses/base.js +205 -0
  42. package/src/harnesses/opencode/clear.js +239 -0
  43. package/src/harnesses/opencode/db.js +39 -0
  44. package/src/harnesses/opencode/index.js +46 -0
  45. package/src/harnesses/opencode/sqlite.js +200 -0
  46. package/src/index.js +46 -0
  47. package/src/managers/apt.js +377 -0
  48. package/src/managers/base.js +167 -0
  49. package/src/managers/brew.js +374 -0
  50. package/src/managers/bun.js +342 -0
  51. package/src/managers/composer.js +280 -0
  52. package/src/managers/dnf.js +370 -0
  53. package/src/managers/http.js +432 -0
  54. package/src/managers/node.js +150 -0
  55. package/src/managers/npm.js +473 -0
  56. package/src/managers/php.js +157 -0
  57. package/src/managers/pip.js +555 -0
  58. package/src/managers/python.js +180 -0
  59. package/src/managers/runtime.js +309 -0
  60. package/src/managers/winget.js +268 -0
  61. package/src/presets.js +24 -0
  62. package/src/proxy-presets.js +12 -0
package/README.md ADDED
@@ -0,0 +1,381 @@
1
+ # opm CLI 命令
2
+
3
+ ## 用户配置
4
+
5
+ 安装后自动生成 `~/.config/opm/config.json5`(或 `$XDG_CONFIG_HOME/opm/config.json5`),用户可直接编辑:
6
+
7
+ - 合并读取:内置默认(`src/config.json5`)→ 用户文件 → `OPM_CONFIG_CONTENT` 环境变量注入层(最高优先级);字符串中 `{env:XXX}` 占位符替换为环境变量
8
+ - `proxy` — 代理预设 + `active`(当前激活代理;默认空 = 不使用代理,可改为预设 key 或完整 URL。命令行 `-p/--proxy` 传入时优先使用传入值)
9
+ - `npm` / `pip` / `dnf` / `apt` / `brew` / `composer` / `bun` / `nvm` / `node` / `phpenv` / `php` / `python` 的 `registry` — 镜像预设 + `active`(当前激活镜像)
10
+
11
+ `active` 可以是预设 key(如 `"taobao"`),也可以是完整 URL:
12
+
13
+ ```json5
14
+ {
15
+ npm: {
16
+ registry: {
17
+ official: "https://registry.npmjs.org/",
18
+ taobao: "https://registry.npmmirror.com/",
19
+ active: "taobao", // 预设 key,或直接写 URL
20
+ },
21
+ },
22
+ }
23
+ ```
24
+
25
+ - `opm config` 显示合并后的配置文件(不读系统配置;可用段名由配置动态生成,`opm config <段>` 可查看任意段)
26
+ - `opm <manager> registry set <key|url>` 更新配置文件中的 `active`
27
+ - `install` / `upgrade` 默认使用配置中的 active 镜像(npm 传 `--registry`,pip 传 `--index-url`;dnf/apt 通过 `registry set` 同步写入系统 repo 文件;brew 传 `HOMEBREW_API_DOMAIN` / `HOMEBREW_BOTTLE_DOMAIN`,不改系统配置;node 传 `NVM_NODEJS_ORG_MIRROR`;php 传 `PHP_BUILD_MIRROR_URL`;python 传 `UV_PYTHON_INSTALL_MIRROR`;bun 传 `BUN_CONFIG_REGISTRY`)
28
+
29
+ ## 用法
30
+
31
+ ```bash
32
+ # 开发阶段(项目内直接运行)
33
+ node bin <command> [args] [options]
34
+ node bin config [section]
35
+
36
+ # 全局安装后
37
+ opm <command> [args] [options]
38
+
39
+ # 从 monorepo 根目录
40
+ pnpm opm <command> [args] [options]
41
+ ```
42
+
43
+ ## Commands
44
+
45
+ | Command | 说明 |
46
+ |---------|------|
47
+ | `npm <action>` | npm 包管理器 |
48
+ | `pip <action>` | pip 包管理器 |
49
+ | `dnf <action>` | dnf 包管理器(Fedora / RHEL / EulerOS 等 rpm 系) |
50
+ | `apt <action>` | apt 包管理器(Debian / Ubuntu 等 dpkg 系) |
51
+ | `brew <action>` | brew 包管理器(macOS / Homebrew) |
52
+ | `composer <action>` | composer 包管理器(PHP) |
53
+ | `bun <action>` | bun 包管理器(Bun runtime,npm 兼容源) |
54
+ | `nvm <action>` | nvm 自身管理(安装/升级/卸载 nvm) |
55
+ | `node <action>` | node 版本管理(基于 nvm 安装/切换/卸载 Node.js 版本) |
56
+ | `phpenv <action>` | phpenv 自身管理(安装/升级/卸载 phpenv) |
57
+ | `php <action>` | php 版本管理(基于 phpenv 安装/切换/卸载 PHP 版本) |
58
+ | `uv <action>` | uv 自身管理(安装/升级/卸载 uv) |
59
+ | `python <action>` | python 版本管理(基于 uv 安装/切换/卸载 Python 版本) |
60
+ | `config [section]` | 查看常用配置(proxy + 各 registry 段,段名动态生成) |
61
+ | `opencode <action>` | opencode 运维命令(clear 清理过期会话) |
62
+
63
+ ## Managers
64
+
65
+ | Manager | 说明 |
66
+ |---------|------|
67
+ | `npm` | npm 包管理器(registry 镜像,global/local 概念) |
68
+ | `pip` | pip 包管理器(index-url 镜像,global 为系统 Python) |
69
+ | `dnf` | dnf 包管理器(系统级,所有操作作用于系统,无全局/local 概念) |
70
+ | `apt` | apt 包管理器(系统级,所有操作作用于系统,无全局/local 概念) |
71
+ | `brew` | brew 包管理器(macOS,系统级,所有操作作用于系统,无全局/local 概念) |
72
+ | `composer` | composer 包管理器(PHP,项目级,install/upgrade 作用于当前项目 composer.json) |
73
+ | `bun` | bun 包管理器(Bun runtime,使用 npm 兼容 registry,global/local 概念) |
74
+ | `nvm` | nvm 自身管理(安装/升级/卸载 nvm,git clone + shell profile) |
75
+ | `node` | node 版本管理(基于 nvm,install/use/uninstall Node.js 版本,镜像 via `NVM_NODEJS_ORG_MIRROR`) |
76
+ | `phpenv` | phpenv 自身管理(安装/升级/卸载 phpenv + php-build 插件,git clone + shell profile) |
77
+ | `php` | php 版本管理(基于 phpenv,install/global 切换 PHP 版本,镜像 via `PHP_BUILD_MIRROR_URL`) |
78
+ | `uv` | uv 自身管理(安装/升级/卸载 uv,curl 安装 + `uv self update`) |
79
+ | `python` | python 版本管理(基于 uv,install/pin/uninstall Python 版本,镜像 via `UV_PYTHON_INSTALL_MIRROR`) |
80
+
81
+ ## Actions
82
+
83
+ | Action | 说明 |
84
+ |--------|------|
85
+ | `version` | 查看管理器本身版本 |
86
+ | `registry` | 查询当前镜像地址 |
87
+ | `registry set <url\|preset>` | 设置镜像地址(支持预设名) |
88
+ | `registry presets` | 列出可用镜像预设 |
89
+ | `search <name> [version]` | 查询包在源是否可用 |
90
+ | `view <name>` | 查询包是否已安装 |
91
+ | `info <name>` | 查询包详情 |
92
+ | `versions <name>` | 列出所有可用版本 |
93
+ | `list` | 列出所有已安装包 |
94
+ | `outdated` | 列出过期包 |
95
+ | `install <name> [version]` | 安装包 |
96
+ | `uninstall <name>` | 卸载包 |
97
+ | `upgrade <name>` | 升级包 |
98
+ | `cache clean` | 清理缓存 |
99
+
100
+ ## Opencode 运维
101
+
102
+ | 命令 | 说明 |
103
+ |------|------|
104
+ | `opencode clear` | 清理过期会话并 VACUUM 压缩数据库(缺省 `-d 1`,只保留今天) |
105
+ | `opencode clear -d, --days <n>` | 保留最近 n 天(对齐本地零点,含今天) |
106
+ | `opencode clear -h, --hours <n>` | 保留最近 n 小时(滚动窗口) |
107
+ | `opencode clear -n, --num <n>` | 保留最新 n 个会话 |
108
+ | `opencode clear --dry-run` | 仅预览,不修改任何数据 |
109
+ | `opencode clear -y` | 跳过确认提示 |
110
+
111
+ 保留策略参数(`--days` / `--hours` / `--num`)三选一,互斥。
112
+
113
+ ## 选项
114
+
115
+ | 选项 | 说明 |
116
+ |------|------|
117
+ | `-g, --global` | 全局操作(npm: global node_modules; pip: system Python) |
118
+ | `-p, --proxy <url>` | 代理地址(search/info/versions/outdated/install/upgrade);未传时默认使用配置 `proxy.active`(为空则不启用代理) |
119
+ | `-h, --help` | 显示帮助 |
120
+
121
+ > 所有命令默认以 JSON 格式输出。
122
+
123
+ ## 示例
124
+
125
+ ### npm
126
+
127
+ ```bash
128
+ opm npm registry # 查看配置中的激活 registry
129
+ opm npm registry set taobao # 设置激活镜像为 taobao(写入 opm 配置)
130
+ opm npm registry presets # 列出可用镜像预设
131
+ opm npm search axios # 查询 axios 是否可用
132
+ opm npm search axios 1.7.9 # 查询指定版本
133
+ opm npm view axios # 查询是否已安装
134
+ opm npm info axios # 包详情
135
+ opm npm versions axios # 所有版本
136
+ opm npm list # 已安装列表
137
+ opm npm outdated # 过期包
138
+ opm npm install axios # 安装
139
+ opm npm install axios 1.7.9 # 安装指定版本
140
+ opm npm install -g typescript # 全局安装
141
+ opm npm uninstall axios # 卸载
142
+ opm npm upgrade axios # 升级
143
+ opm npm cache clean # 清理缓存
144
+ ```
145
+
146
+ ### pip
147
+
148
+ ```bash
149
+ opm pip registry # 查看当前 index-url
150
+ opm pip registry set tsinghua # 设置为清华镜像
151
+ opm pip search requests # 查询 requests 是否可用
152
+ opm pip view requests # 查询是否已安装
153
+ opm pip info requests # 包详情
154
+ opm pip versions requests # 所有版本
155
+ opm pip list # 已安装列表
156
+ opm pip install requests # 安装
157
+ opm pip install requests 2.31.0 # 安装指定版本
158
+ opm pip uninstall requests # 卸载
159
+ opm pip upgrade requests # 升级
160
+ opm pip cache clean # 清理缓存
161
+ ```
162
+
163
+ ### dnf
164
+
165
+ ```bash
166
+ opm dnf version # 查看 dnf 版本
167
+ opm dnf registry # 查看当前启用仓库
168
+ opm dnf registry set hce-updates # 写入 opm.repo 指向 hce-updates 镜像
169
+ opm dnf registry presets # 列出可用镜像预设
170
+ opm dnf search vim-enhanced # 查询包在源是否可用
171
+ opm dnf view vim-enhanced # 查询是否已安装
172
+ opm dnf info vim-enhanced # 包详情
173
+ opm dnf versions vim-enhanced # 所有可用版本
174
+ opm dnf list # 已安装包列表
175
+ opm dnf outdated # 过期包
176
+ opm dnf install htop # 安装
177
+ opm dnf install vim-enhanced 9.0 # 安装指定版本
178
+ opm dnf uninstall htop # 卸载
179
+ opm dnf upgrade htop # 升级
180
+ opm dnf cache clean # 清理缓存
181
+ ```
182
+
183
+ ### apt
184
+
185
+ ```bash
186
+ opm apt version # 查看 apt 版本
187
+ opm apt registry # 查看当前启用源
188
+ opm apt registry set ubuntu-tsinghua # 写入 /etc/apt/sources.list.d/opm.list
189
+ opm apt registry presets # 列出可用镜像预设
190
+ opm apt search curl # 查询包在源是否可用
191
+ opm apt view curl # 查询是否已安装
192
+ opm apt info curl # 包详情
193
+ opm apt versions curl # 所有可用版本
194
+ opm apt list # 已安装包列表
195
+ opm apt outdated # 过期包
196
+ opm apt install htop # 安装
197
+ opm apt install curl 7.68.0-1ubuntu2.7 # 安装指定版本
198
+ opm apt uninstall htop # 卸载
199
+ opm apt upgrade htop # 升级
200
+ opm apt cache clean # 清理缓存
201
+ ```
202
+
203
+ ### brew
204
+
205
+ ```bash
206
+ opm brew version # 查看 brew 版本
207
+ opm brew registry # 查看配置中的激活镜像
208
+ opm brew registry set tsinghua # 设置为清华镜像(install/upgrade 传 HOMEBREW_*_DOMAIN)
209
+ opm brew registry presets # 列出可用镜像预设
210
+ opm brew search wget # 查询 wget 是否可用
211
+ opm brew view wget # 查询是否已安装
212
+ opm brew info wget # 包详情
213
+ opm brew versions wget # 所有可用版本
214
+ opm brew list # 已安装列表
215
+ opm brew outdated # 过期包
216
+ opm brew install wget # 安装
217
+ opm brew install python 3.12 # 安装指定版本(versioned formula)
218
+ opm brew uninstall wget # 卸载
219
+ opm brew upgrade wget # 升级
220
+ opm brew cache clean # 清理缓存
221
+ ```
222
+
223
+ ### composer
224
+
225
+ ```bash
226
+ opm composer version # 查看 composer 版本
227
+ opm composer registry # 查看配置中的激活镜像
228
+ opm composer registry set aliyun # 设置为阿里云镜像
229
+ opm composer registry presets # 列出可用镜像预设
230
+ opm composer search monolog/monolog # 查询包是否可用
231
+ opm composer search monolog/monolog 3.9.0 # 查询指定版本
232
+ opm composer view monolog/monolog # 查询是否已安装
233
+ opm composer info monolog/monolog # 包详情
234
+ opm composer versions monolog/monolog # 所有可用版本
235
+ opm composer list # 已安装列表
236
+ opm composer outdated # 过期包
237
+ opm composer install monolog/monolog # 安装(composer require)
238
+ opm composer install monolog/monolog ^3.0 # 安装指定版本约束
239
+ opm composer uninstall monolog/monolog # 卸载(composer remove)
240
+ opm composer upgrade monolog/monolog # 升级(composer update)
241
+ opm composer cache clean # 清理缓存
242
+ ```
243
+
244
+ ### bun
245
+
246
+ ```bash
247
+ opm bun version # 查看 bun 版本
248
+ opm bun registry # 查看配置中的激活 registry
249
+ opm bun registry set taobao # 设置为 taobao 镜像(传 BUN_CONFIG_REGISTRY)
250
+ opm bun search axios # 查询 axios 是否可用
251
+ opm bun view axios # 查询是否已安装
252
+ opm bun info axios # 包详情
253
+ opm bun versions axios # 所有可用版本
254
+ opm bun list # 已安装列表
255
+ opm bun outdated # 过期包
256
+ opm bun install axios # 安装(bun add)
257
+ opm bun uninstall axios # 卸载(bun remove)
258
+ opm bun upgrade axios # 升级(bun update)
259
+ opm bun cache clean # 清理缓存(bun pm cache rm)
260
+ ```
261
+
262
+ ### nvm
263
+
264
+ ```bash
265
+ opm nvm version # 查看 nvm 版本
266
+ opm nvm registry set gitee # 设置 nvm git 镜像为 gitee
267
+ opm nvm install # 安装 nvm(git clone + shell profile)
268
+ opm nvm upgrade # 更新 nvm(git pull)
269
+ opm nvm view # 检查 nvm 是否已安装
270
+ opm nvm uninstall # 卸载 nvm
271
+ ```
272
+
273
+ ### node
274
+
275
+ ```bash
276
+ opm node current # 当前 Node.js 版本
277
+ opm node version # 同上
278
+ opm node list # 已安装版本列表
279
+ opm node versions # 所有可用版本
280
+ opm node install 20 # 安装 Node.js 20
281
+ opm node install --lts # 安装最新 LTS
282
+ opm node use 20 # 切换到 Node.js 20
283
+ opm node default 20 # 设置默认版本
284
+ opm node search v20.20.2 # 查询版本是否可下载
285
+ opm node view v20.20.2 # 查询版本是否已安装
286
+ opm node uninstall 18 # 卸载 Node.js 18
287
+ opm node upgrade # 安装最新 LTS
288
+ ```
289
+
290
+ ### phpenv
291
+
292
+ ```bash
293
+ opm phpenv version # 查看 phpenv 版本
294
+ opm phpenv registry set gitee # 设置 phpenv git 镜像为 gitee
295
+ opm phpenv install # 安装 phpenv(git clone + php-build 插件 + shell profile)
296
+ opm phpenv upgrade # 更新 phpenv + php-build 插件
297
+ opm phpenv view # 检查 phpenv 是否已安装
298
+ opm phpenv uninstall # 卸载 phpenv
299
+ ```
300
+
301
+ ### php
302
+
303
+ ```bash
304
+ opm php current # 当前 PHP 版本
305
+ opm php list # 已安装版本列表
306
+ opm php versions # 所有可用版本
307
+ opm php install 8.3 # 安装 PHP 8.3
308
+ opm php use 8.3 # 切换全局版本(phpenv global)
309
+ opm php default 8.3 # 设置默认版本
310
+ opm php search 8.3.13 # 查询版本是否可下载
311
+ opm php view 8.3.13 # 查询版本是否已安装
312
+ opm php uninstall 8.2 # 卸载 PHP 8.2
313
+ opm php upgrade # 安装最新版本
314
+ ```
315
+
316
+ ### uv
317
+
318
+ ```bash
319
+ opm uv version # 查看 uv 版本
320
+ opm uv install # 安装 uv(curl 安装脚本)
321
+ opm uv upgrade # 更新 uv(uv self update)
322
+ opm uv view # 检查 uv 是否已安装
323
+ opm uv uninstall # 卸载 uv
324
+ ```
325
+
326
+ ### python
327
+
328
+ ```bash
329
+ opm python current # 当前 Python 版本
330
+ opm python list # 已安装版本列表
331
+ opm python versions # 所有可用版本
332
+ opm python install 3.12 # 安装 Python 3.12
333
+ opm python use 3.12 # 固定当前目录版本(uv python pin)
334
+ opm python default 3.12 # 设置默认版本(写 ~/.python-version)
335
+ opm python search 3.12.4 # 查询版本是否可下载
336
+ opm python view 3.12.4 # 查询版本是否已安装
337
+ opm python uninstall 3.11 # 卸载 Python 3.11
338
+ opm python upgrade # 安装最新版本
339
+ ```
340
+
341
+ > `pip` 与 `python` 互不干扰:`opm pip` 直接调用 pip CLI;`opm python` 通过 uv 管版本;如需更快的 pip 替代,可直用 `uv pip`。
342
+
343
+ ### config
344
+
345
+ ```bash
346
+ opm config # 查看合并后的用户配置(proxy + registries)
347
+ opm config proxy # 查看代理预设 + active(空 = 不使用代理)
348
+ opm config npm.registry # 查看 npm registry 预设 + active
349
+ opm config pip.registry # 查看 pip registry 预设 + active
350
+ opm config dnf.registry # 查看 dnf registry 预设 + active
351
+ opm config apt.registry # 查看 apt registry 预设 + active
352
+ opm config brew.registry # 查看 brew registry 预设 + active
353
+ opm config composer.registry # 查看 composer registry 预设 + active
354
+ opm config bun.registry # 查看 bun registry 预设 + active
355
+ opm config nvm.registry # 查看 nvm registry 预设 + active
356
+ opm config node.registry # 查看 node registry 预设 + active
357
+ opm config phpenv.registry # 查看 phpenv registry 预设 + active
358
+ opm config php.registry # 查看 php registry 预设 + active
359
+ opm config python.registry # 查看 python registry 预设 + active
360
+ ```
361
+
362
+ > `opm config [section]` 的可用段名由合并配置动态生成(每个 top-level 段 + 含 `registry` 的 `.registry` 子段),`opm config <未知段>` 会列出全部可用段。
363
+
364
+ ### opencode
365
+
366
+ ```bash
367
+ opm opencode clear # 只保留今天创建的会话
368
+ opm opencode clear -d 7 # 保留最近 7 天会话
369
+ opm opencode clear -h 24 # 保留最近 24 小时会话
370
+ opm opencode clear -n 10 # 保留最新 10 个会话
371
+ opm opencode clear --dry-run # 仅预览
372
+ opm opencode clear -y # 跳过确认直接执行
373
+ ```
374
+
375
+ ## npm scripts
376
+
377
+ | 命令 | 说明 |
378
+ |------|------|
379
+ | `npm run check` | 语法检查(`node --check bin/index.js`) |
380
+ | `npm run test` | 运行测试 |
381
+ | `npm run release` | 发布(复用 @wwkit/shared 的单包发布) |
package/bin/index.js ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { CLI } from '../src/cli/index.js'
4
+
5
+ const cli = new CLI()
6
+ cli.run(process.argv.slice(2)).catch((err) => {
7
+ console.error(`[opm] Error: ${err.message}`)
8
+ process.exit(1)
9
+ })
@@ -0,0 +1,45 @@
1
+ # apt 命令对照表
2
+
3
+ `@wwkit/opm` 统一命令管理 apt 包(Debian / Ubuntu 等 dpkg 系,系统级)。
4
+
5
+ ## 命令对照
6
+
7
+ | 统一命令 | 原始命令 | 说明 |
8
+ |---------|---------|------|
9
+ | `opm apt version` | `apt --version` | 查看 apt 版本 |
10
+ | `opm apt registry` | 读 `/etc/apt/sources.list.d/opm.list` | 查询当前启用源 |
11
+ | `opm apt registry set <url\|preset>` | 写 `/etc/apt/sources.list.d/opm.list` + `apt update` | 设置镜像源 |
12
+ | `opm apt registry presets` | — | 列出可用镜像预设 |
13
+ | `opm apt search <name>` | `apt-cache search` | 查询包在源是否可用 |
14
+ | `opm apt view <name>` | `dpkg -l` / `apt list --installed` | 查询包是否已安装 |
15
+ | `opm apt info <name>` | `apt-cache show` | 包详情 |
16
+ | `opm apt versions <name>` | `apt-cache madison` / `policy` | 所有可用版本 |
17
+ | `opm apt list` | `apt list --installed` | 已安装包列表 |
18
+ | `opm apt outdated` | `apt list --upgradable` | 过期包 |
19
+ | `opm apt install <name>` | `apt install` | 安装 |
20
+ | `opm apt uninstall <name>` | `apt remove` | 卸载 |
21
+ | `opm apt upgrade <name>` | `apt upgrade` | 升级 |
22
+ | `opm apt cache clean` | `apt clean` | 清理缓存 |
23
+
24
+ ## 镜像预设
25
+
26
+ | 预设名 | 地址 |
27
+ |--------|------|
28
+ | `ubuntu-tsinghua` | `deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse` |
29
+ | `ubuntu-huawei` | `deb https://mirrors.huaweicloud.com/ubuntu/ focal main restricted universe multiverse` |
30
+ | `ubuntu-aliyun` | `deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse` |
31
+ | `debian-official` | `deb http://deb.debian.org/debian/ bookworm main` |
32
+ | `debian-tsinghua` | `deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main` |
33
+
34
+ ## 示例
35
+
36
+ ```bash
37
+ opm apt version
38
+ opm apt registry set ubuntu-tsinghua
39
+ opm apt search curl
40
+ opm apt info curl
41
+ opm apt install htop
42
+ opm apt uninstall htop
43
+ opm apt upgrade htop
44
+ opm apt cache clean
45
+ ```
@@ -0,0 +1,92 @@
1
+ # brew 命令对照表
2
+
3
+ `@wwkit/opm` 统一命令与 Homebrew 原始命令的映射关系(macOS)。
4
+
5
+ ## 命令对照
6
+
7
+ | 统一命令 | 原始命令 | 说明 |
8
+ |---------|---------|------|
9
+ | `opm brew version` | `brew --version` | 查看 brew 本身版本 |
10
+ | `opm brew registry` | 读 `~/.config/opm/config.json5` 的 `brew.registry.active` | 查询配置中的激活镜像(不读系统配置) |
11
+ | `opm brew registry set <url\|preset>` | 写 `~/.config/opm/config.json5` 的 `brew.registry.active` | 设置激活镜像(支持预设名,install/upgrade 自动传 `HOMEBREW_API_DOMAIN` / `HOMEBREW_BOTTLE_DOMAIN`;仅作用于本工具发起的命令,不改系统 brew 配置) |
12
+ | `opm brew registry presets` | — | 列出可用镜像预设 |
13
+ | `opm brew search <name>` | `brew info --json=v2 <name>` | 查询包在源是否可用(返回最新版本 + 版本列表) |
14
+ | `opm brew search <name> <version>` | `brew info --json=v2 <name>` | 查询指定版本是否可用 |
15
+ | `opm brew view <name>` | `brew list --versions <name>` | 查询包是否已安装 |
16
+ | `opm brew info <name>` | `brew info --json=v2 <name>` | 查询包详情(描述/主页/许可证/仓库等) |
17
+ | `opm brew versions <name>` | `brew info --json=v2 <name>` | 列出所有可用版本 |
18
+ | `opm brew list` | `brew list --versions` | 列出所有已安装包(formulae + casks) |
19
+ | `opm brew outdated` | `brew outdated --json=v2` | 列出过期包 |
20
+ | `opm brew install <name>` | `brew install <name>` | 安装包(formula / cask 均可) |
21
+ | `opm brew install <name> <version>` | `brew install <name>@<version>` | 安装指定版本(versioned formula) |
22
+ | `opm brew uninstall <name>` | `brew uninstall <name>` | 卸载包 |
23
+ | `opm brew upgrade <name>` | `brew upgrade <name>` | 升级包到最新版本 |
24
+ | `opm brew cache clean` | `brew cleanup -s --prune=all` | 清理缓存 |
25
+ | `opm brew help` | — | 显示 brew 命令清单 |
26
+
27
+ ## 镜像预设
28
+
29
+ | 预设名 | 地址 |
30
+ |--------|------|
31
+ | `official` | `https://ghcr.io/v2/homebrew` |
32
+ | `tsinghua` | `https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles` |
33
+ | `ustc` | `https://mirrors.ustc.edu.cn/homebrew-bottles` |
34
+
35
+ > 镜像预设记录的是 bottle 域名;使用非 official 镜像时,`HOMEBREW_API_DOMAIN` 取 `${bottle}/api`,`HOMEBREW_BOTTLE_DOMAIN` 取 bottle 域名本身。
36
+
37
+ ## 选项
38
+
39
+ | 选项 | 说明 |
40
+ |------|------|
41
+ | `-h, --help` | 显示帮助 |
42
+
43
+ > 所有命令默认以 JSON 格式输出。
44
+
45
+ ## 示例
46
+
47
+ ```bash
48
+ # 查看 brew 版本
49
+ opm brew version
50
+
51
+ # 查询当前镜像
52
+ opm brew registry
53
+
54
+ # 切换到清华镜像
55
+ opm brew registry set tsinghua
56
+
57
+ # 查询 wget 是否在源中可用
58
+ opm brew search wget
59
+
60
+ # 查看 wget 是否已安装
61
+ opm brew view wget
62
+
63
+ # 查看 wget 详情
64
+ opm brew info wget
65
+
66
+ # 列出 wget 所有可用版本
67
+ opm brew versions wget
68
+
69
+ # 列出所有已安装包
70
+ opm brew list
71
+
72
+ # 列出过期包
73
+ opm brew outdated
74
+
75
+ # 安装 wget
76
+ opm brew install wget
77
+
78
+ # 安装指定版本(versioned formula,如 python@3.12)
79
+ opm brew install python 3.12
80
+
81
+ # 卸载 wget
82
+ opm brew uninstall wget
83
+
84
+ # 升级 wget
85
+ opm brew upgrade wget
86
+
87
+ # 清理缓存
88
+ opm brew cache clean
89
+
90
+ # 显示帮助
91
+ opm brew help
92
+ ```
@@ -0,0 +1,50 @@
1
+ # bun 命令对照表
2
+
3
+ `@wwkit/opm` 统一命令管理 Bun 包。
4
+
5
+ Bun 是全栈 JS 工具链(runtime + 包管理器 + 打包器),包管理与 npm 兼容。
6
+
7
+ ## 命令对照
8
+
9
+ | 统一命令 | 原始命令 | 说明 |
10
+ |---------|---------|------|
11
+ | `opm bun version` | `bun --version` | 查看 bun 版本 |
12
+ | `opm bun registry` | 读 `~/.config/opm/config.json5` 的 `bun.registry.active` | 查询 bun registry 镜像 |
13
+ | `opm bun registry set <url\|preset>` | 写 `~/.config/opm/config.json5` | 设置 bun registry 镜像(传给 `BUN_CONFIG_REGISTRY`) |
14
+ | `opm bun registry presets` | — | 列出可用镜像预设 |
15
+ | `opm bun search <name> [version]` | HTTP 查 npm registry | 查询包是否可用 |
16
+ | `opm bun view <name> [-g]` | 查 `node_modules/<name>/package.json` | 查询包是否已安装 |
17
+ | `opm bun info <name>` | HTTP 查 npm registry | 显示包详情 |
18
+ | `opm bun versions <name>` | HTTP 查 npm registry | 列出所有可用版本 |
19
+ | `opm bun list [-g]` | `bun pm ls` | 列出已安装包 |
20
+ | `opm bun outdated [-g]` | `bun outdated` | 列出过期包 |
21
+ | `opm bun install <name> [version]` | `bun add <name>@<version>` | 安装包 |
22
+ | `opm bun uninstall <name>` | `bun remove <name>` | 卸载包 |
23
+ | `opm bun upgrade <name>` | `bun update <name>` | 升级包 |
24
+ | `opm bun cache clean` | `bun pm cache rm` | 清理缓存 |
25
+
26
+ ## 镜像预设
27
+
28
+ | 预设名 | 地址 |
29
+ |--------|------|
30
+ | `official` | `https://registry.npmjs.org/` |
31
+ | `taobao` | `https://registry.npmmirror.com/` |
32
+ | `huawei` | `https://cmc.centralrepo.rnd.huawei.com/artifactory/api/npm/npm-central-repo/` |
33
+
34
+ > 镜像通过 `BUN_CONFIG_REGISTRY` 环境变量传递给 bun 命令。
35
+
36
+ ## 示例
37
+
38
+ ```bash
39
+ opm bun version
40
+ opm bun registry set taobao
41
+ opm bun search axios
42
+ opm bun info react
43
+ opm bun list
44
+ opm bun outdated
45
+ opm bun install axios
46
+ opm bun install react@18
47
+ opm bun upgrade axios
48
+ opm bun uninstall axios
49
+ opm bun cache clean
50
+ ```
@@ -0,0 +1,57 @@
1
+ # cft 命令对照表
2
+
3
+ `@wwkit/opm` 统一命令管理 Chrome for Testing 二进制工具(chrome + chromedriver)的下载、解压、多版本安装。
4
+
5
+ ## 命令对照
6
+
7
+ | 统一命令 | 说明 |
8
+ |---------|------|
9
+ | `opm cft version` | 查看当前激活版本 |
10
+ | `opm cft installed` | 查看是否已安装(列出本地版本) |
11
+ | `opm cft dir` | 查看激活版本安装目录 + chrome/chromedriver 路径(供外部消费) |
12
+ | `opm cft versions` | 列出远程可用版本(known-good-versions-with-downloads.json) |
13
+ | `opm cft list` | 列出本地已安装版本 |
14
+ | `opm cft install [version]` | 安装指定版本(缺省 = `config.cft.version`);同版本已装跳过;设为 active |
15
+ | `opm cft status [version]` | 查看版本安装状态/二进制文件校验(缺省 = 全部) |
16
+ | `opm cft clear [version]` | 删除指定版本安装产物;不传 = 清理所有版本 |
17
+ | `opm cft registry` | 查询激活镜像(读 `~/.config/opm/config.json5` 的 `cft.registry.active`) |
18
+ | `opm cft registry set <url\|preset>` | 设置激活镜像 |
19
+ | `opm cft registry presets` | 列出可用镜像预设 |
20
+
21
+ ## 镜像预设
22
+
23
+ | 预设名 | 地址 |
24
+ |--------|------|
25
+ | `official` | `https://googlechromelabs.github.io/chrome-for-testing` |
26
+ | `npmmirror` | `https://npmmirror.com/mirrors/chrome-for-testing` |
27
+
28
+ 默认 `active` = `npmmirror`(镜像,非 official)。
29
+
30
+ ## 安装目录
31
+
32
+ `~/.config/opm/cft/<version>/`(尊重 `OPM_CONFIG_DIR`)
33
+
34
+ ```
35
+ ~/.config/opm/cft/
36
+ manifest.json { active: "141.0.7390.54" }
37
+ <version>/
38
+ chrome-<os>/
39
+ chromedriver-<os>/
40
+ installed.json
41
+ ```
42
+
43
+ ## 示例
44
+
45
+ ```bash
46
+ opm cft version
47
+ opm cft dir
48
+ opm cft list
49
+ opm cft versions
50
+ opm cft install
51
+ opm cft install 141.0.7390.54
52
+ opm cft status
53
+ opm cft status 141.0.7390.54
54
+ opm cft clear 141.0.7390.54
55
+ opm cft clear
56
+ opm cft registry set official
57
+ ```