@wwkit/opm 1.0.14 → 1.0.16
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.
- package/README.md +33 -8
- package/docs/managers/apt.md +0 -1
- package/docs/managers/brew.md +0 -4
- package/docs/managers/bun.md +0 -2
- package/docs/managers/composer.md +0 -4
- package/docs/managers/dnf.md +0 -1
- package/docs/managers/npm.md +0 -4
- package/docs/managers/pip.md +0 -4
- package/docs/opm.html +8 -21
- package/docs/test/linux-environment-test-report.md +0 -1
- package/package.json +13 -4
- package/src/binaries/base.js +1 -1
- package/src/cli/groups/env.js +451 -0
- package/src/cli/groups/package.js +30 -10
- package/src/cli/groups/ping.js +60 -20
- package/src/cli/index.js +3 -1
- package/src/index.js +2 -1
- package/src/managers/apt.js +0 -17
- package/src/managers/base.js +0 -15
- package/src/managers/brew.js +1 -32
- package/src/managers/bun.js +7 -58
- package/src/managers/composer.js +1 -16
- package/src/managers/dnf.js +0 -17
- package/src/managers/npm.js +0 -20
- package/src/managers/pip.js +1 -22
- package/src/managers/proc.js +7 -1
- package/src/managers/runtime.js +0 -4
- package/src/managers/winget.js +0 -14
- package/src/managers/http.js +0 -432
package/README.md
CHANGED
|
@@ -67,6 +67,7 @@ pnpm opm <command> [args] [options]
|
|
|
67
67
|
| `ftp <action>` | FTP 文件管理(上传/rsync/下载) |
|
|
68
68
|
| `ensure <runtime> [version]` | 确保运行时已安装(node/php/python) |
|
|
69
69
|
| `ping <host|proxy|registry>` | 验证主机、代理或所有 registry 的可访问性 |
|
|
70
|
+
| `env <action>` | 环境变量管理(list/get/set,跨平台:Unix profile / Windows user 级注册表) |
|
|
70
71
|
| `config [section]` | 查看常用配置(proxy + 各 registry 段,段名动态生成) |
|
|
71
72
|
| `opencode <action>` | opencode 运维命令(安装/升级/清理/env);裸 `opm opencode` 启动 TUI |
|
|
72
73
|
| `harness <action>` | @wwkit/harness 插件管理(安装/升级/list/status/env/dir) |
|
|
@@ -102,7 +103,6 @@ pnpm opm <command> [args] [options]
|
|
|
102
103
|
| `info <name>` | 查询包详情 |
|
|
103
104
|
| `versions <name>` | 列出所有可用版本 |
|
|
104
105
|
| `list` | 列出所有已安装包(仅运行时 node/php/python 与工具组 nvm/phpenv/uv 支持) |
|
|
105
|
-
| `outdated` | 列出过期包 |
|
|
106
106
|
| `install <name> [version]` | 安装包 |
|
|
107
107
|
| `uninstall <name>` | 卸载包 |
|
|
108
108
|
| `upgrade <name>` | 升级包 |
|
|
@@ -137,7 +137,7 @@ pnpm opm <command> [args] [options]
|
|
|
137
137
|
| 选项 | 说明 |
|
|
138
138
|
|------|------|
|
|
139
139
|
| `-g, --global` | 全局操作(npm: global node_modules; pip: system Python) |
|
|
140
|
-
| `-p, --proxy <url>` | 代理地址(search/info/versions/
|
|
140
|
+
| `-p, --proxy <url>` | 代理地址(search/info/versions/install/upgrade);未传时默认使用配置 `proxy.active`(为空则不启用代理) |
|
|
141
141
|
| `-h, --help` | 显示帮助 |
|
|
142
142
|
|
|
143
143
|
> 所有命令默认以 JSON 格式输出。
|
|
@@ -155,7 +155,6 @@ opm npm search axios 1.7.9 # 查询指定版本
|
|
|
155
155
|
opm npm view axios # 查询全局与项目作用域安装信息
|
|
156
156
|
opm npm info axios # 包详情
|
|
157
157
|
opm npm versions axios # 所有版本
|
|
158
|
-
opm npm outdated # 过期包
|
|
159
158
|
opm npm install axios # 安装
|
|
160
159
|
opm npm install axios 1.7.9 # 安装指定版本
|
|
161
160
|
opm npm install -g typescript # 全局安装
|
|
@@ -191,7 +190,6 @@ opm dnf search vim-enhanced # 查询包在源是否可用
|
|
|
191
190
|
opm dnf view vim-enhanced # 查询全局作用域安装信息(无项目作用域)
|
|
192
191
|
opm dnf info vim-enhanced # 包详情
|
|
193
192
|
opm dnf versions vim-enhanced # 所有可用版本
|
|
194
|
-
opm dnf outdated # 过期包
|
|
195
193
|
opm dnf install htop # 安装
|
|
196
194
|
opm dnf install vim-enhanced 9.0 # 安装指定版本
|
|
197
195
|
opm dnf uninstall htop # 卸载
|
|
@@ -210,7 +208,6 @@ opm apt search curl # 查询包在源是否可用
|
|
|
210
208
|
opm apt view curl # 查询全局作用域安装信息(无项目作用域)
|
|
211
209
|
opm apt info curl # 包详情
|
|
212
210
|
opm apt versions curl # 所有可用版本
|
|
213
|
-
opm apt outdated # 过期包
|
|
214
211
|
opm apt install htop # 安装
|
|
215
212
|
opm apt install curl 7.68.0-1ubuntu2.7 # 安装指定版本
|
|
216
213
|
opm apt uninstall htop # 卸载
|
|
@@ -229,7 +226,6 @@ opm brew search wget # 查询 wget 是否可用
|
|
|
229
226
|
opm brew view wget # 查询全局作用域安装信息(无项目作用域)
|
|
230
227
|
opm brew info wget # 包详情
|
|
231
228
|
opm brew versions wget # 所有可用版本
|
|
232
|
-
opm brew outdated # 过期包
|
|
233
229
|
opm brew install wget # 安装
|
|
234
230
|
opm brew install python 3.12 # 安装指定版本(versioned formula)
|
|
235
231
|
opm brew uninstall wget # 卸载
|
|
@@ -249,7 +245,6 @@ opm composer search monolog/monolog 3.9.0 # 查询指定版本
|
|
|
249
245
|
opm composer view monolog/monolog # 查询项目作用域安装信息(无全局作用域)
|
|
250
246
|
opm composer info monolog/monolog # 包详情
|
|
251
247
|
opm composer versions monolog/monolog # 所有可用版本
|
|
252
|
-
opm composer outdated # 过期包
|
|
253
248
|
opm composer install monolog/monolog # 安装(composer require)
|
|
254
249
|
opm composer install monolog/monolog ^3.0 # 安装指定版本约束
|
|
255
250
|
opm composer uninstall monolog/monolog # 卸载(composer remove)
|
|
@@ -267,7 +262,6 @@ opm bun search axios # 查询 axios 是否可用
|
|
|
267
262
|
opm bun view axios # 查询全局与项目作用域安装信息
|
|
268
263
|
opm bun info axios # 包详情
|
|
269
264
|
opm bun versions axios # 所有可用版本
|
|
270
|
-
opm bun outdated # 过期包
|
|
271
265
|
opm bun install axios # 安装(bun add)
|
|
272
266
|
opm bun uninstall axios # 卸载(bun remove)
|
|
273
267
|
opm bun upgrade axios # 升级(bun update)
|
|
@@ -532,6 +526,37 @@ opm ping registry -d # 输出完整 JSON 数组
|
|
|
532
526
|
> `opm ping proxy` 从 `proxy.active` 解析代理 URL,提取主机名后 ping。
|
|
533
527
|
> `opm ping registry` 遍历所有含 `registry` 配置的工具,并行 ping 各 active 地址的主机。
|
|
534
528
|
|
|
529
|
+
### env
|
|
530
|
+
|
|
531
|
+
```bash
|
|
532
|
+
opm env list # 列出 opm 管理的环境变量(含配置文件路径)
|
|
533
|
+
opm env list --all # 追加 process.env 全量,每条标注 managed: true/false
|
|
534
|
+
opm env get PATH # 根据 key 取值(先查 opm 管理源,回退 process.env)
|
|
535
|
+
opm env set FOO bar # 设置环境变量(替换已存在的)
|
|
536
|
+
opm env set MY_API_KEY secret123 # 设置 API 密钥
|
|
537
|
+
opm env search api # 按关键词匹配 key 或 value(忽略大小写)
|
|
538
|
+
opm env search api --all # 同时搜索 process.env
|
|
539
|
+
opm env help # 通用介绍
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
输出格式:默认输出**简化文本**(list/search 按来源分组:`配置文件路径` 行 + `key = value` 行;get/set 输出单行 `key = value`);加 `-j/--json` 输出完整 JSON。
|
|
543
|
+
|
|
544
|
+
```bash
|
|
545
|
+
opm env list # 简化文本(按来源分组)
|
|
546
|
+
opm env list --json # JSON 数组
|
|
547
|
+
opm env get PATH # 简化:PATH = /usr/bin:/bin
|
|
548
|
+
opm env get PATH --json # JSON 对象(含 source/scope)
|
|
549
|
+
opm env set FOO bar # 简化:FOO = bar
|
|
550
|
+
opm env set FOO bar --json # JSON 对象(含 written/source)
|
|
551
|
+
opm env search api # 简化:匹配项按来源分组
|
|
552
|
+
opm env search api --json # JSON 数组
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
> `list`/`search` 默认只作用于 `opm env set` 管理的变量(Unix 的 `# >>> wwkit NAME >>>` 标记块 / Windows manifest);`--all` 在其基础上追加 `process.env` 全量,并给每条标注 `managed: true/false` 与来源。
|
|
556
|
+
> `search <keyword>` 匹配 key 或 value 是否包含关键词(忽略大小写),可用 `-q/--query` 替代位置参数。
|
|
557
|
+
> 跨平台:Unix 读写 shell profile(`.zshrc`/`.bashrc`/`.profile`/fish config),用 `# >>> wwkit NAME >>>` 标记块管理;Windows 用 `setx` 写 user 级注册表(`HKCU\Environment`),`list` 用 `reg query` 读取。
|
|
558
|
+
> Windows 上 `setx` 不留标记,opm 通过 `~/.config/opm/env-managed.json` 记录哪些 user 级变量由 opm 管理;`set` 始终写入 user 级(无需管理员权限)。
|
|
559
|
+
|
|
535
560
|
### opencode
|
|
536
561
|
|
|
537
562
|
```bash
|
package/docs/managers/apt.md
CHANGED
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
| `opm apt view <name>` | `dpkg -l` / `apt list --installed` | 查询包在全局作用域的安装信息(无项目作用域,project 显示未安装) |
|
|
15
15
|
| `opm apt info <name>` | `apt-cache show` | 包详情 |
|
|
16
16
|
| `opm apt versions <name>` | `apt-cache madison` / `policy` | 所有可用版本 |
|
|
17
|
-
| `opm apt outdated` | `apt list --upgradable` | 过期包 |
|
|
18
17
|
| `opm apt install <name>` | `apt install` | 安装 |
|
|
19
18
|
| `opm apt uninstall <name>` | `apt remove` | 卸载 |
|
|
20
19
|
| `opm apt upgrade <name>` | `apt upgrade` | 升级 |
|
package/docs/managers/brew.md
CHANGED
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
| `opm brew view <name>` | `brew list --versions <name>` | 查询包在全局作用域的安装信息(无项目作用域,project 显示未安装) |
|
|
16
16
|
| `opm brew info <name>` | `brew info --json=v2 <name>` | 查询包详情(描述/主页/许可证/仓库等) |
|
|
17
17
|
| `opm brew versions <name>` | `brew info --json=v2 <name>` | 列出所有可用版本 |
|
|
18
|
-
| `opm brew outdated` | `brew outdated --json=v2` | 列出过期包 |
|
|
19
18
|
| `opm brew install <name>` | `brew install <name>` | 安装包(formula / cask 均可) |
|
|
20
19
|
| `opm brew install <name> <version>` | `brew install <name>@<version>` | 安装指定版本(versioned formula) |
|
|
21
20
|
| `opm brew uninstall <name>` | `brew uninstall <name>` | 卸载包 |
|
|
@@ -65,9 +64,6 @@ opm brew info wget
|
|
|
65
64
|
# 列出 wget 所有可用版本
|
|
66
65
|
opm brew versions wget
|
|
67
66
|
|
|
68
|
-
# 列出过期包
|
|
69
|
-
opm brew outdated
|
|
70
|
-
|
|
71
67
|
# 安装 wget
|
|
72
68
|
opm brew install wget
|
|
73
69
|
|
package/docs/managers/bun.md
CHANGED
|
@@ -16,7 +16,6 @@ Bun 是全栈 JS 工具链(runtime + 包管理器 + 打包器),包管理
|
|
|
16
16
|
| `opm bun view <name>` | 查 `node_modules/<name>/package.json` | 查询包在全局与项目作用域的安装信息 |
|
|
17
17
|
| `opm bun info <name>` | HTTP 查 npm registry | 显示包详情 |
|
|
18
18
|
| `opm bun versions <name>` | HTTP 查 npm registry | 列出所有可用版本 |
|
|
19
|
-
| `opm bun outdated [-g]` | `bun outdated` | 列出过期包 |
|
|
20
19
|
| `opm bun install <name> [version]` | `bun add <name>@<version>` | 安装包 |
|
|
21
20
|
| `opm bun uninstall <name>` | `bun remove <name>` | 卸载包 |
|
|
22
21
|
| `opm bun upgrade <name>` | `bun update <name>` | 升级包 |
|
|
@@ -39,7 +38,6 @@ opm bun version
|
|
|
39
38
|
opm bun registry set taobao
|
|
40
39
|
opm bun search axios
|
|
41
40
|
opm bun info react
|
|
42
|
-
opm bun outdated
|
|
43
41
|
opm bun install axios
|
|
44
42
|
opm bun install react@18
|
|
45
43
|
opm bun upgrade axios
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
| `opm composer view <name>` | 读 `vendor/composer/installed.json` | 查询包在项目作用域的安装信息(无全局作用域,global 显示未安装) |
|
|
16
16
|
| `opm composer info <name>` | `{registry}/p2/{name}.json` | 查询包详情(描述/作者/主页/许可证等) |
|
|
17
17
|
| `opm composer versions <name>` | `{registry}/p2/{name}.json` | 列出所有可用版本 |
|
|
18
|
-
| `opm composer outdated` | `composer outdated --format=json` | 列出过期包 |
|
|
19
18
|
| `opm composer install <name>` | `composer require <name> --no-interaction` | 安装包 |
|
|
20
19
|
| `opm composer install <name> <version>` | `composer require <name>:<version> --no-interaction` | 安装指定版本约束 |
|
|
21
20
|
| `opm composer uninstall <name>` | `composer remove <name> --no-interaction` | 卸载包 |
|
|
@@ -69,9 +68,6 @@ opm composer info monolog/monolog
|
|
|
69
68
|
# 列出 monolog/monolog 所有可用版本
|
|
70
69
|
opm composer versions monolog/monolog
|
|
71
70
|
|
|
72
|
-
# 列出过期包
|
|
73
|
-
opm composer outdated
|
|
74
|
-
|
|
75
71
|
# 安装 monolog/monolog
|
|
76
72
|
opm composer install monolog/monolog
|
|
77
73
|
|
package/docs/managers/dnf.md
CHANGED
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
| `opm dnf view <name>` | `dnf list installed` | 查询包在全局作用域的安装信息(无项目作用域,project 显示未安装) |
|
|
15
15
|
| `opm dnf info <name>` | `dnf info` | 包详情 |
|
|
16
16
|
| `opm dnf versions <name>` | `dnf list --showduplicates` | 所有可用版本 |
|
|
17
|
-
| `opm dnf outdated` | `dnf check-update` | 过期包 |
|
|
18
17
|
| `opm dnf install <name>` | `dnf install` | 安装 |
|
|
19
18
|
| `opm dnf uninstall <name>` | `dnf remove` | 卸载 |
|
|
20
19
|
| `opm dnf upgrade <name>` | `dnf upgrade` | 升级 |
|
package/docs/managers/npm.md
CHANGED
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
| `opm npm view <name>` | `npm list <name>` / 读 `node_modules/<name>/package.json` | 查询包在全局与项目作用域的安装信息 |
|
|
16
16
|
| `opm npm info <name>` | `npm view <name>` | 查询包详情(描述/作者/主页/许可证等) |
|
|
17
17
|
| `opm npm versions <name>` | `npm view <name> versions` | 列出所有可用版本 |
|
|
18
|
-
| `opm npm outdated` | `npm outdated` | 列出过期包 |
|
|
19
18
|
| `opm npm install <name>` | `npm install <name>` | 安装包 |
|
|
20
19
|
| `opm npm install <name> <version>` | `npm install <name>@<version>` | 安装指定版本 |
|
|
21
20
|
| `opm npm install -g <name>` | `npm install -g <name>` | 全局安装 |
|
|
@@ -70,9 +69,6 @@ opm npm info axios
|
|
|
70
69
|
# 列出 axios 所有版本
|
|
71
70
|
opm npm versions axios
|
|
72
71
|
|
|
73
|
-
# 列出过期包
|
|
74
|
-
opm npm outdated
|
|
75
|
-
|
|
76
72
|
# 安装 axios
|
|
77
73
|
opm npm install axios
|
|
78
74
|
|
package/docs/managers/pip.md
CHANGED
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
| `opm pip view <name>` | `pip show <name>` | 查询包在全局与项目作用域的安装信息 |
|
|
16
16
|
| `opm pip info <name>` | PyPI JSON API / `pip show <name>` | 查询包详情(描述/作者/主页/许可证等) |
|
|
17
17
|
| `opm pip versions <name>` | PyPI JSON API / simple index | 列出所有可用版本 |
|
|
18
|
-
| `opm pip outdated` | `pip list --outdated` | 列出过期包 |
|
|
19
18
|
| `opm pip install <name>` | `pip install <name>` | 安装包 |
|
|
20
19
|
| `opm pip install <name> <version>` | `pip install <name>==<version>` | 安装指定版本 |
|
|
21
20
|
| `opm pip uninstall <name>` | `pip uninstall -y <name>` | 卸载包 |
|
|
@@ -66,9 +65,6 @@ opm pip info requests
|
|
|
66
65
|
# 列出 requests 所有版本
|
|
67
66
|
opm pip versions requests
|
|
68
67
|
|
|
69
|
-
# 列出过期包
|
|
70
|
-
opm pip outdated
|
|
71
|
-
|
|
72
68
|
# 安装 requests
|
|
73
69
|
opm pip install requests
|
|
74
70
|
|
package/docs/opm.html
CHANGED
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
<div id="managers_apt" class="doc-content" style="display:block;"><h1>apt 命令对照表</h1>
|
|
120
120
|
<p><code>@wwkit/opm</code> 统一命令管理 apt 包(Debian / Ubuntu 等 dpkg 系,系统级)。</p>
|
|
121
121
|
<h2>命令对照</h2>
|
|
122
|
-
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm apt version [name]</code></td><td><code>apt --version</code></td><td>无 name 显示 apt 版本;有 name 显示包在全局作用域的版本(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm apt registry</code></td><td>读 <code>/etc/apt/sources.list.d/opm.list</code></td><td>查询当前启用源</td></tr><tr><td><code>opm apt registry set <url|preset></code></td><td>写 <code>/etc/apt/sources.list.d/opm.list</code> + <code>apt update</code></td><td>设置镜像源</td></tr><tr><td><code>opm apt registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm apt search <name></code></td><td><code>apt-cache search</code></td><td>查询包在源是否可用</td></tr><tr><td><code>opm apt view <name></code></td><td><code>dpkg -l</code> / <code>apt list --installed</code></td><td>查询包在全局作用域的安装信息(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm apt info <name></code></td><td><code>apt-cache show</code></td><td>包详情</td></tr><tr><td><code>opm apt versions <name></code></td><td><code>apt-cache madison</code> / <code>policy</code></td><td>所有可用版本</td></tr><tr><td><code>opm apt
|
|
122
|
+
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm apt version [name]</code></td><td><code>apt --version</code></td><td>无 name 显示 apt 版本;有 name 显示包在全局作用域的版本(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm apt registry</code></td><td>读 <code>/etc/apt/sources.list.d/opm.list</code></td><td>查询当前启用源</td></tr><tr><td><code>opm apt registry set <url|preset></code></td><td>写 <code>/etc/apt/sources.list.d/opm.list</code> + <code>apt update</code></td><td>设置镜像源</td></tr><tr><td><code>opm apt registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm apt search <name></code></td><td><code>apt-cache search</code></td><td>查询包在源是否可用</td></tr><tr><td><code>opm apt view <name></code></td><td><code>dpkg -l</code> / <code>apt list --installed</code></td><td>查询包在全局作用域的安装信息(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm apt info <name></code></td><td><code>apt-cache show</code></td><td>包详情</td></tr><tr><td><code>opm apt versions <name></code></td><td><code>apt-cache madison</code> / <code>policy</code></td><td>所有可用版本</td></tr><tr><td><code>opm apt install <name></code></td><td><code>apt install</code></td><td>安装</td></tr><tr><td><code>opm apt uninstall <name></code></td><td><code>apt remove</code></td><td>卸载</td></tr><tr><td><code>opm apt upgrade <name></code></td><td><code>apt upgrade</code></td><td>升级</td></tr><tr><td><code>opm apt cache clean</code></td><td><code>apt clean</code></td><td>清理缓存</td></tr></tbody></table>
|
|
123
123
|
<h2>镜像预设</h2>
|
|
124
124
|
<table><thead><tr><th>预设名</th><th>地址</th></tr></thead><tbody><tr><td><code>ubuntu-tsinghua</code></td><td><code>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse</code></td></tr><tr><td><code>ubuntu-huawei</code></td><td><code>deb https://mirrors.huaweicloud.com/ubuntu/ focal main restricted universe multiverse</code></td></tr><tr><td><code>ubuntu-aliyun</code></td><td><code>deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse</code></td></tr><tr><td><code>debian-official</code></td><td><code>deb http://deb.debian.org/debian/ bookworm main</code></td></tr><tr><td><code>debian-tsinghua</code></td><td><code>deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main</code></td></tr></tbody></table>
|
|
125
125
|
<h2>示例</h2>
|
|
@@ -134,7 +134,7 @@ opm apt cache clean</code></pre></div>
|
|
|
134
134
|
<div id="managers_brew" class="doc-content" style="display:none;"><h1>brew 命令对照表</h1>
|
|
135
135
|
<p><code>@wwkit/opm</code> 统一命令与 Homebrew 原始命令的映射关系(macOS)。</p>
|
|
136
136
|
<h2>命令对照</h2>
|
|
137
|
-
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm brew version [name]</code></td><td><code>brew --version</code></td><td>无 name 显示 brew 本身版本;有 name 显示包在全局作用域的版本(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm brew registry</code></td><td>读 <code>~/.config/opm/config.json5</code> 的 <code>brew.registry.active</code></td><td>查询配置中的激活镜像(不读系统配置)</td></tr><tr><td><code>opm brew registry set <url|preset></code></td><td>写 <code>~/.config/opm/config.json5</code> 的 <code>brew.registry.active</code></td><td>设置激活镜像(支持预设名,install/upgrade 自动传 <code>HOMEBREW_API_DOMAIN</code> / <code>HOMEBREW_BOTTLE_DOMAIN</code>;仅作用于本工具发起的命令,不改系统 brew 配置)</td></tr><tr><td><code>opm brew registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm brew search <name></code></td><td><code>brew info --json=v2 <name></code></td><td>查询包在源是否可用(返回最新版本 + 版本列表)</td></tr><tr><td><code>opm brew search <name> <version></code></td><td><code>brew info --json=v2 <name></code></td><td>查询指定版本是否可用</td></tr><tr><td><code>opm brew view <name></code></td><td><code>brew list --versions <name></code></td><td>查询包在全局作用域的安装信息(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm brew info <name></code></td><td><code>brew info --json=v2 <name></code></td><td>查询包详情(描述/主页/许可证/仓库等)</td></tr><tr><td><code>opm brew versions <name></code></td><td><code>brew info --json=v2 <name></code></td><td>列出所有可用版本</td></tr><tr><td><code>opm brew
|
|
137
|
+
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm brew version [name]</code></td><td><code>brew --version</code></td><td>无 name 显示 brew 本身版本;有 name 显示包在全局作用域的版本(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm brew registry</code></td><td>读 <code>~/.config/opm/config.json5</code> 的 <code>brew.registry.active</code></td><td>查询配置中的激活镜像(不读系统配置)</td></tr><tr><td><code>opm brew registry set <url|preset></code></td><td>写 <code>~/.config/opm/config.json5</code> 的 <code>brew.registry.active</code></td><td>设置激活镜像(支持预设名,install/upgrade 自动传 <code>HOMEBREW_API_DOMAIN</code> / <code>HOMEBREW_BOTTLE_DOMAIN</code>;仅作用于本工具发起的命令,不改系统 brew 配置)</td></tr><tr><td><code>opm brew registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm brew search <name></code></td><td><code>brew info --json=v2 <name></code></td><td>查询包在源是否可用(返回最新版本 + 版本列表)</td></tr><tr><td><code>opm brew search <name> <version></code></td><td><code>brew info --json=v2 <name></code></td><td>查询指定版本是否可用</td></tr><tr><td><code>opm brew view <name></code></td><td><code>brew list --versions <name></code></td><td>查询包在全局作用域的安装信息(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm brew info <name></code></td><td><code>brew info --json=v2 <name></code></td><td>查询包详情(描述/主页/许可证/仓库等)</td></tr><tr><td><code>opm brew versions <name></code></td><td><code>brew info --json=v2 <name></code></td><td>列出所有可用版本</td></tr><tr><td><code>opm brew install <name></code></td><td><code>brew install <name></code></td><td>安装包(formula / cask 均可)</td></tr><tr><td><code>opm brew install <name> <version></code></td><td><code>brew install <name>@<version></code></td><td>安装指定版本(versioned formula)</td></tr><tr><td><code>opm brew uninstall <name></code></td><td><code>brew uninstall <name></code></td><td>卸载包</td></tr><tr><td><code>opm brew upgrade <name></code></td><td><code>brew upgrade <name></code></td><td>升级包到最新版本</td></tr><tr><td><code>opm brew cache clean</code></td><td><code>brew cleanup -s --prune=all</code></td><td>清理缓存</td></tr><tr><td><code>opm brew help</code></td><td>—</td><td>显示 brew 命令清单</td></tr></tbody></table>
|
|
138
138
|
<h2>镜像预设</h2>
|
|
139
139
|
<table><thead><tr><th>预设名</th><th>地址</th></tr></thead><tbody><tr><td><code>official</code></td><td><code>https://ghcr.io/v2/homebrew</code></td></tr><tr><td><code>tsinghua</code></td><td><code>https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles</code></td></tr><tr><td><code>ustc</code></td><td><code>https://mirrors.ustc.edu.cn/homebrew-bottles</code></td></tr></tbody></table>
|
|
140
140
|
<blockquote>镜像预设记录的是 bottle 域名;使用非 official 镜像时,<code>HOMEBREW_API_DOMAIN</code> 取 <code>${bottle}/api</code>,<code>HOMEBREW_BOTTLE_DOMAIN</code> 取 bottle 域名本身。</blockquote>
|
|
@@ -163,9 +163,6 @@ opm brew info wget
|
|
|
163
163
|
# 列出 wget 所有可用版本
|
|
164
164
|
opm brew versions wget
|
|
165
165
|
|
|
166
|
-
# 列出过期包
|
|
167
|
-
opm brew outdated
|
|
168
|
-
|
|
169
166
|
# 安装 wget
|
|
170
167
|
opm brew install wget
|
|
171
168
|
|
|
@@ -187,7 +184,7 @@ opm brew help</code></pre></div>
|
|
|
187
184
|
<p><code>@wwkit/opm</code> 统一命令管理 Bun 包。</p>
|
|
188
185
|
<p>Bun 是全栈 JS 工具链(runtime + 包管理器 + 打包器),包管理与 npm 兼容。</p>
|
|
189
186
|
<h2>命令对照</h2>
|
|
190
|
-
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm bun version [name]</code></td><td><code>bun --version</code></td><td>无 name 显示 bun 版本;有 name 显示包在全局与项目作用域的版本</td></tr><tr><td><code>opm bun registry</code></td><td>读 <code>~/.config/opm/config.json5</code> 的 <code>bun.registry.active</code></td><td>查询 bun registry 镜像</td></tr><tr><td><code>opm bun registry set <url|preset></code></td><td>写 <code>~/.config/opm/config.json5</code></td><td>设置 bun registry 镜像(传给 <code>BUN_CONFIG_REGISTRY</code>)</td></tr><tr><td><code>opm bun registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm bun search <name> [version]</code></td><td>HTTP 查 npm registry</td><td>查询包是否可用</td></tr><tr><td><code>opm bun view <name></code></td><td>查 <code>node_modules/<name>/package.json</code></td><td>查询包在全局与项目作用域的安装信息</td></tr><tr><td><code>opm bun info <name></code></td><td>HTTP 查 npm registry</td><td>显示包详情</td></tr><tr><td><code>opm bun versions <name></code></td><td>HTTP 查 npm registry</td><td>列出所有可用版本</td></tr><tr><td><code>opm bun
|
|
187
|
+
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm bun version [name]</code></td><td><code>bun --version</code></td><td>无 name 显示 bun 版本;有 name 显示包在全局与项目作用域的版本</td></tr><tr><td><code>opm bun registry</code></td><td>读 <code>~/.config/opm/config.json5</code> 的 <code>bun.registry.active</code></td><td>查询 bun registry 镜像</td></tr><tr><td><code>opm bun registry set <url|preset></code></td><td>写 <code>~/.config/opm/config.json5</code></td><td>设置 bun registry 镜像(传给 <code>BUN_CONFIG_REGISTRY</code>)</td></tr><tr><td><code>opm bun registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm bun search <name> [version]</code></td><td>HTTP 查 npm registry</td><td>查询包是否可用</td></tr><tr><td><code>opm bun view <name></code></td><td>查 <code>node_modules/<name>/package.json</code></td><td>查询包在全局与项目作用域的安装信息</td></tr><tr><td><code>opm bun info <name></code></td><td>HTTP 查 npm registry</td><td>显示包详情</td></tr><tr><td><code>opm bun versions <name></code></td><td>HTTP 查 npm registry</td><td>列出所有可用版本</td></tr><tr><td><code>opm bun install <name> [version]</code></td><td><code>bun add <name>@<version></code></td><td>安装包</td></tr><tr><td><code>opm bun uninstall <name></code></td><td><code>bun remove <name></code></td><td>卸载包</td></tr><tr><td><code>opm bun upgrade <name></code></td><td><code>bun update <name></code></td><td>升级包</td></tr><tr><td><code>opm bun cache clean</code></td><td><code>bun pm cache rm</code></td><td>清理缓存</td></tr></tbody></table>
|
|
191
188
|
<h2>镜像预设</h2>
|
|
192
189
|
<table><thead><tr><th>预设名</th><th>地址</th></tr></thead><tbody><tr><td><code>official</code></td><td><code>https://registry.npmjs.org/</code></td></tr><tr><td><code>taobao</code></td><td><code>https://registry.npmmirror.com/</code></td></tr><tr><td><code>huawei</code></td><td><code>https://cmc.centralrepo.rnd.huawei.com/artifactory/api/npm/npm-central-repo/</code></td></tr></tbody></table>
|
|
193
190
|
<blockquote>镜像通过 <code>BUN_CONFIG_REGISTRY</code> 环境变量传递给 bun 命令。</blockquote>
|
|
@@ -196,7 +193,6 @@ opm brew help</code></pre></div>
|
|
|
196
193
|
opm bun registry set taobao
|
|
197
194
|
opm bun search axios
|
|
198
195
|
opm bun info react
|
|
199
|
-
opm bun outdated
|
|
200
196
|
opm bun install axios
|
|
201
197
|
opm bun install react@18
|
|
202
198
|
opm bun upgrade axios
|
|
@@ -232,7 +228,7 @@ opm cft registry set official</code></pre></div>
|
|
|
232
228
|
<div id="managers_composer" class="doc-content" style="display:none;"><h1>composer 命令对照表</h1>
|
|
233
229
|
<p><code>@wwkit/opm</code> 统一命令与 Composer(PHP)原始命令的映射关系。</p>
|
|
234
230
|
<h2>命令对照</h2>
|
|
235
|
-
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm composer version [name]</code></td><td><code>composer --version</code></td><td>无 name 显示 composer 本身版本;有 name 显示包在项目作用域的版本(无全局作用域,global 显示未安装)</td></tr><tr><td><code>opm composer registry</code></td><td>读 <code>~/.config/opm/config.json5</code> 的 <code>composer.registry.active</code></td><td>查询配置中的激活镜像(不读系统配置)</td></tr><tr><td><code>opm composer registry set <url|preset></code></td><td>写 <code>~/.config/opm/config.json5</code> 的 <code>composer.registry.active</code></td><td>设置激活镜像(支持预设名;镜像作用于 search/info/versions 的 P2 元数据拉取)</td></tr><tr><td><code>opm composer registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm composer search <name></code></td><td><code>{registry}/p2/{name}.json</code></td><td>查询包在源是否可用(返回最新版本 + 版本列表)</td></tr><tr><td><code>opm composer search <name> <version></code></td><td><code>{registry}/p2/{name}.json</code></td><td>查询指定版本是否可用</td></tr><tr><td><code>opm composer view <name></code></td><td>读 <code>vendor/composer/installed.json</code></td><td>查询包在项目作用域的安装信息(无全局作用域,global 显示未安装)</td></tr><tr><td><code>opm composer info <name></code></td><td><code>{registry}/p2/{name}.json</code></td><td>查询包详情(描述/作者/主页/许可证等)</td></tr><tr><td><code>opm composer versions <name></code></td><td><code>{registry}/p2/{name}.json</code></td><td>列出所有可用版本</td></tr><tr><td><code>opm composer
|
|
231
|
+
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm composer version [name]</code></td><td><code>composer --version</code></td><td>无 name 显示 composer 本身版本;有 name 显示包在项目作用域的版本(无全局作用域,global 显示未安装)</td></tr><tr><td><code>opm composer registry</code></td><td>读 <code>~/.config/opm/config.json5</code> 的 <code>composer.registry.active</code></td><td>查询配置中的激活镜像(不读系统配置)</td></tr><tr><td><code>opm composer registry set <url|preset></code></td><td>写 <code>~/.config/opm/config.json5</code> 的 <code>composer.registry.active</code></td><td>设置激活镜像(支持预设名;镜像作用于 search/info/versions 的 P2 元数据拉取)</td></tr><tr><td><code>opm composer registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm composer search <name></code></td><td><code>{registry}/p2/{name}.json</code></td><td>查询包在源是否可用(返回最新版本 + 版本列表)</td></tr><tr><td><code>opm composer search <name> <version></code></td><td><code>{registry}/p2/{name}.json</code></td><td>查询指定版本是否可用</td></tr><tr><td><code>opm composer view <name></code></td><td>读 <code>vendor/composer/installed.json</code></td><td>查询包在项目作用域的安装信息(无全局作用域,global 显示未安装)</td></tr><tr><td><code>opm composer info <name></code></td><td><code>{registry}/p2/{name}.json</code></td><td>查询包详情(描述/作者/主页/许可证等)</td></tr><tr><td><code>opm composer versions <name></code></td><td><code>{registry}/p2/{name}.json</code></td><td>列出所有可用版本</td></tr><tr><td><code>opm composer install <name></code></td><td><code>composer require <name> --no-interaction</code></td><td>安装包</td></tr><tr><td><code>opm composer install <name> <version></code></td><td><code>composer require <name>:<version> --no-interaction</code></td><td>安装指定版本约束</td></tr><tr><td><code>opm composer uninstall <name></code></td><td><code>composer remove <name> --no-interaction</code></td><td>卸载包</td></tr><tr><td><code>opm composer upgrade <name></code></td><td><code>composer update <name> --no-interaction</code></td><td>升级包</td></tr><tr><td><code>opm composer cache clean</code></td><td><code>composer clear-cache</code></td><td>清理缓存</td></tr><tr><td><code>opm composer help</code></td><td>—</td><td>显示 composer 命令清单</td></tr></tbody></table>
|
|
236
232
|
<h2>镜像预设</h2>
|
|
237
233
|
<table><thead><tr><th>预设名</th><th>地址</th></tr></thead><tbody><tr><td><code>official</code></td><td><code>https://repo.packagist.org</code></td></tr><tr><td><code>aliyun</code></td><td><code>https://mirrors.aliyun.com/composer</code></td></tr><tr><td><code>tencent</code></td><td><code>https://mirrors.cloud.tencent.com/composer</code></td></tr></tbody></table>
|
|
238
234
|
<blockquote>镜像作用于 search/info/versions 的 Packagist P2 元数据拉取(<code>{base}/p2/{vendor}/{package}.json</code>)。<br>install/upgrade 使用 composer CLI 自身的仓库配置(项目 composer.json / 全局 config)。</blockquote>
|
|
@@ -264,9 +260,6 @@ opm composer info monolog/monolog
|
|
|
264
260
|
# 列出 monolog/monolog 所有可用版本
|
|
265
261
|
opm composer versions monolog/monolog
|
|
266
262
|
|
|
267
|
-
# 列出过期包
|
|
268
|
-
opm composer outdated
|
|
269
|
-
|
|
270
263
|
# 安装 monolog/monolog
|
|
271
264
|
opm composer install monolog/monolog
|
|
272
265
|
|
|
@@ -303,7 +296,7 @@ opm config python.registry</code></pre></div>
|
|
|
303
296
|
<div id="managers_dnf" class="doc-content" style="display:none;"><h1>dnf 命令对照表</h1>
|
|
304
297
|
<p><code>@wwkit/opm</code> 统一命令管理 dnf 包(Fedora / RHEL / EulerOS 等 rpm 系,系统级)。</p>
|
|
305
298
|
<h2>命令对照</h2>
|
|
306
|
-
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm dnf version [name]</code></td><td><code>dnf --version</code></td><td>无 name 显示 dnf 版本;有 name 显示包在全局作用域的版本(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm dnf registry</code></td><td>读 <code>/etc/yum.repos.d/opm.repo</code></td><td>查询当前启用仓库</td></tr><tr><td><code>opm dnf registry set <url|preset></code></td><td>写 <code>/etc/yum.repos.d/opm.repo</code> + <code>dnf clean</code></td><td>设置镜像仓库</td></tr><tr><td><code>opm dnf registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm dnf search <name></code></td><td><code>dnf search</code></td><td>查询包在源是否可用</td></tr><tr><td><code>opm dnf view <name></code></td><td><code>dnf list installed</code></td><td>查询包在全局作用域的安装信息(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm dnf info <name></code></td><td><code>dnf info</code></td><td>包详情</td></tr><tr><td><code>opm dnf versions <name></code></td><td><code>dnf list --showduplicates</code></td><td>所有可用版本</td></tr><tr><td><code>opm dnf
|
|
299
|
+
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm dnf version [name]</code></td><td><code>dnf --version</code></td><td>无 name 显示 dnf 版本;有 name 显示包在全局作用域的版本(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm dnf registry</code></td><td>读 <code>/etc/yum.repos.d/opm.repo</code></td><td>查询当前启用仓库</td></tr><tr><td><code>opm dnf registry set <url|preset></code></td><td>写 <code>/etc/yum.repos.d/opm.repo</code> + <code>dnf clean</code></td><td>设置镜像仓库</td></tr><tr><td><code>opm dnf registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm dnf search <name></code></td><td><code>dnf search</code></td><td>查询包在源是否可用</td></tr><tr><td><code>opm dnf view <name></code></td><td><code>dnf list installed</code></td><td>查询包在全局作用域的安装信息(无项目作用域,project 显示未安装)</td></tr><tr><td><code>opm dnf info <name></code></td><td><code>dnf info</code></td><td>包详情</td></tr><tr><td><code>opm dnf versions <name></code></td><td><code>dnf list --showduplicates</code></td><td>所有可用版本</td></tr><tr><td><code>opm dnf install <name></code></td><td><code>dnf install</code></td><td>安装</td></tr><tr><td><code>opm dnf uninstall <name></code></td><td><code>dnf remove</code></td><td>卸载</td></tr><tr><td><code>opm dnf upgrade <name></code></td><td><code>dnf upgrade</code></td><td>升级</td></tr><tr><td><code>opm dnf cache clean</code></td><td><code>dnf clean all</code></td><td>清理缓存</td></tr></tbody></table>
|
|
307
300
|
<h2>镜像预设</h2>
|
|
308
301
|
<table><thead><tr><th>预设名</th><th>地址</th></tr></thead><tbody><tr><td><code>hce</code></td><td><code>http://his-mirrors.huawei.com/install/hce/2.0/os/x86_64/</code></td></tr><tr><td><code>hce-updates</code></td><td><code>http://his-mirrors.huawei.com/install/hce/2.0/updates/x86_64/</code></td></tr><tr><td><code>fedora</code></td><td><code>https://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/</code></td></tr><tr><td><code>fedora-updates</code></td><td><code>https://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/Everything/$basearch/</code></td></tr><tr><td><code>epel</code></td><td><code>https://dl.fedoraproject.org/pub/epel/$releasever/Everything/$basearch/</code></td></tr><tr><td><code>epel-testing</code></td><td><code>https://dl.fedoraproject.org/pub/epel/testing/$releasever/Everything/$basearch/</code></td></tr></tbody></table>
|
|
309
302
|
<h2>示例</h2>
|
|
@@ -393,7 +386,7 @@ opm node upgrade</code></pre></div>
|
|
|
393
386
|
<div id="managers_npm" class="doc-content" style="display:none;"><h1>npm 命令对照表</h1>
|
|
394
387
|
<p><code>@wwkit/opm</code> 统一命令与 npm 原始命令的映射关系。</p>
|
|
395
388
|
<h2>命令对照</h2>
|
|
396
|
-
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm npm version [name]</code></td><td><code>npm --version</code></td><td>无 name 显示 npm 本身版本;有 name 显示包在全局与项目作用域的版本</td></tr><tr><td><code>opm npm registry</code></td><td>读 <code>~/.config/opm/config.json5</code> 的 <code>npm.registry.active</code></td><td>查询配置中的激活镜像(不读系统配置)</td></tr><tr><td><code>opm npm registry set <url|preset></code></td><td>写 <code>~/.config/opm/config.json5</code> 的 <code>npm.registry.active</code></td><td>设置激活镜像(支持预设名,install/upgrade 自动带 <code>--registry</code>)</td></tr><tr><td><code>opm npm registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm npm search <name></code></td><td><code>npm view <name></code></td><td>查询包在源是否可用(返回最新版本 + 版本列表)</td></tr><tr><td><code>opm npm search <name> <version></code></td><td><code>npm view <name>@<version></code></td><td>查询指定版本是否可用</td></tr><tr><td><code>opm npm view <name></code></td><td><code>npm list <name></code> / 读 <code>node_modules/<name>/package.json</code></td><td>查询包在全局与项目作用域的安装信息</td></tr><tr><td><code>opm npm info <name></code></td><td><code>npm view <name></code></td><td>查询包详情(描述/作者/主页/许可证等)</td></tr><tr><td><code>opm npm versions <name></code></td><td><code>npm view <name> versions</code></td><td>列出所有可用版本</td></tr><tr><td><code>opm npm
|
|
389
|
+
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm npm version [name]</code></td><td><code>npm --version</code></td><td>无 name 显示 npm 本身版本;有 name 显示包在全局与项目作用域的版本</td></tr><tr><td><code>opm npm registry</code></td><td>读 <code>~/.config/opm/config.json5</code> 的 <code>npm.registry.active</code></td><td>查询配置中的激活镜像(不读系统配置)</td></tr><tr><td><code>opm npm registry set <url|preset></code></td><td>写 <code>~/.config/opm/config.json5</code> 的 <code>npm.registry.active</code></td><td>设置激活镜像(支持预设名,install/upgrade 自动带 <code>--registry</code>)</td></tr><tr><td><code>opm npm registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm npm search <name></code></td><td><code>npm view <name></code></td><td>查询包在源是否可用(返回最新版本 + 版本列表)</td></tr><tr><td><code>opm npm search <name> <version></code></td><td><code>npm view <name>@<version></code></td><td>查询指定版本是否可用</td></tr><tr><td><code>opm npm view <name></code></td><td><code>npm list <name></code> / 读 <code>node_modules/<name>/package.json</code></td><td>查询包在全局与项目作用域的安装信息</td></tr><tr><td><code>opm npm info <name></code></td><td><code>npm view <name></code></td><td>查询包详情(描述/作者/主页/许可证等)</td></tr><tr><td><code>opm npm versions <name></code></td><td><code>npm view <name> versions</code></td><td>列出所有可用版本</td></tr><tr><td><code>opm npm install <name></code></td><td><code>npm install <name></code></td><td>安装包</td></tr><tr><td><code>opm npm install <name> <version></code></td><td><code>npm install <name>@<version></code></td><td>安装指定版本</td></tr><tr><td><code>opm npm install -g <name></code></td><td><code>npm install -g <name></code></td><td>全局安装</td></tr><tr><td><code>opm npm uninstall <name></code></td><td><code>npm uninstall <name></code></td><td>卸载包</td></tr><tr><td><code>opm npm uninstall -g <name></code></td><td><code>npm uninstall -g <name></code></td><td>全局卸载</td></tr><tr><td><code>opm npm upgrade <name></code></td><td><code>npm install <name>@latest</code></td><td>升级包到最新版本</td></tr><tr><td><code>opm npm upgrade -g <name></code></td><td><code>npm install -g <name>@latest</code></td><td>全局升级</td></tr><tr><td><code>opm npm cache clean</code></td><td><code>npm cache clean --force</code></td><td>清理缓存</td></tr><tr><td><code>opm npm help</code></td><td>—</td><td>显示 npm 命令清单</td></tr></tbody></table>
|
|
397
390
|
<h2>镜像预设</h2>
|
|
398
391
|
<table><thead><tr><th>预设名</th><th>地址</th></tr></thead><tbody><tr><td><code>official</code></td><td><code>https://registry.npmjs.org/</code></td></tr><tr><td><code>taobao</code></td><td><code>https://registry.npmmirror.com/</code></td></tr><tr><td><code>huawei</code></td><td><code>https://cmc.centralrepo.rnd.huawei.com/artifactory/api/npm/npm-central-repo/</code></td></tr></tbody></table>
|
|
399
392
|
<h2>选项</h2>
|
|
@@ -424,9 +417,6 @@ opm npm info axios
|
|
|
424
417
|
# 列出 axios 所有版本
|
|
425
418
|
opm npm versions axios
|
|
426
419
|
|
|
427
|
-
# 列出过期包
|
|
428
|
-
opm npm outdated
|
|
429
|
-
|
|
430
420
|
# 安装 axios
|
|
431
421
|
opm npm install axios
|
|
432
422
|
|
|
@@ -497,7 +487,7 @@ opm phpenv uninstall</code></pre></div>
|
|
|
497
487
|
<div id="managers_pip" class="doc-content" style="display:none;"><h1>pip 命令对照表</h1>
|
|
498
488
|
<p><code>@wwkit/opm</code> 统一命令与 pip 原始命令的映射关系。</p>
|
|
499
489
|
<h2>命令对照</h2>
|
|
500
|
-
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm pip version [name]</code></td><td><code>pip --version</code></td><td>无 name 显示 pip 本身版本;有 name 显示包在全局与项目作用域的版本</td></tr><tr><td><code>opm pip registry</code></td><td>读 <code>~/.config/opm/config.json5</code> 的 <code>pip.registry.active</code></td><td>查询配置中的激活镜像(不读系统配置)</td></tr><tr><td><code>opm pip registry set <url|preset></code></td><td>写 <code>~/.config/opm/config.json5</code> 的 <code>pip.registry.active</code></td><td>设置激活镜像(支持预设名,install/upgrade 自动带 <code>--index-url</code>)</td></tr><tr><td><code>opm pip registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm pip search <name></code></td><td>PyPI JSON API / simple index</td><td>查询包在源是否可用(返回最新版本 + 版本列表)</td></tr><tr><td><code>opm pip search <name> <version></code></td><td>PyPI JSON API / simple index</td><td>查询指定版本是否可用</td></tr><tr><td><code>opm pip view <name></code></td><td><code>pip show <name></code></td><td>查询包在全局与项目作用域的安装信息</td></tr><tr><td><code>opm pip info <name></code></td><td>PyPI JSON API / <code>pip show <name></code></td><td>查询包详情(描述/作者/主页/许可证等)</td></tr><tr><td><code>opm pip versions <name></code></td><td>PyPI JSON API / simple index</td><td>列出所有可用版本</td></tr><tr><td><code>opm pip
|
|
490
|
+
<table><thead><tr><th>统一命令</th><th>原始命令</th><th>说明</th></tr></thead><tbody><tr><td><code>opm pip version [name]</code></td><td><code>pip --version</code></td><td>无 name 显示 pip 本身版本;有 name 显示包在全局与项目作用域的版本</td></tr><tr><td><code>opm pip registry</code></td><td>读 <code>~/.config/opm/config.json5</code> 的 <code>pip.registry.active</code></td><td>查询配置中的激活镜像(不读系统配置)</td></tr><tr><td><code>opm pip registry set <url|preset></code></td><td>写 <code>~/.config/opm/config.json5</code> 的 <code>pip.registry.active</code></td><td>设置激活镜像(支持预设名,install/upgrade 自动带 <code>--index-url</code>)</td></tr><tr><td><code>opm pip registry presets</code></td><td>—</td><td>列出可用镜像预设</td></tr><tr><td><code>opm pip search <name></code></td><td>PyPI JSON API / simple index</td><td>查询包在源是否可用(返回最新版本 + 版本列表)</td></tr><tr><td><code>opm pip search <name> <version></code></td><td>PyPI JSON API / simple index</td><td>查询指定版本是否可用</td></tr><tr><td><code>opm pip view <name></code></td><td><code>pip show <name></code></td><td>查询包在全局与项目作用域的安装信息</td></tr><tr><td><code>opm pip info <name></code></td><td>PyPI JSON API / <code>pip show <name></code></td><td>查询包详情(描述/作者/主页/许可证等)</td></tr><tr><td><code>opm pip versions <name></code></td><td>PyPI JSON API / simple index</td><td>列出所有可用版本</td></tr><tr><td><code>opm pip install <name></code></td><td><code>pip install <name></code></td><td>安装包</td></tr><tr><td><code>opm pip install <name> <version></code></td><td><code>pip install <name>==<version></code></td><td>安装指定版本</td></tr><tr><td><code>opm pip uninstall <name></code></td><td><code>pip uninstall -y <name></code></td><td>卸载包</td></tr><tr><td><code>opm pip upgrade <name></code></td><td><code>pip install --upgrade <name></code></td><td>升级包到最新版本</td></tr><tr><td><code>opm pip cache clean</code></td><td><code>pip cache purge</code></td><td>清理缓存</td></tr><tr><td><code>opm pip help</code></td><td>—</td><td>显示 pip 命令清单</td></tr></tbody></table>
|
|
501
491
|
<h2>镜像预设</h2>
|
|
502
492
|
<table><thead><tr><th>预设名</th><th>地址</th></tr></thead><tbody><tr><td><code>official</code></td><td><code>https://pypi.org/simple</code></td></tr><tr><td><code>tsinghua</code></td><td><code>https://pypi.tuna.tsinghua.edu.cn/simple</code></td></tr><tr><td><code>huawei</code></td><td><code>https://cmc.centralrepo.rnd.huawei.com/artifactory/api/pypi/pypi-repo/simple</code></td></tr></tbody></table>
|
|
503
493
|
<h2>选项</h2>
|
|
@@ -528,9 +518,6 @@ opm pip info requests
|
|
|
528
518
|
# 列出 requests 所有版本
|
|
529
519
|
opm pip versions requests
|
|
530
520
|
|
|
531
|
-
# 列出过期包
|
|
532
|
-
opm pip outdated
|
|
533
|
-
|
|
534
521
|
# 安装 requests
|
|
535
522
|
opm pip install requests
|
|
536
523
|
|
|
@@ -661,7 +648,7 @@ opm opencode clear --backup # 删除前备份数据库</code></pre></div
|
|
|
661
648
|
<ul><li><strong>通过</strong>: 225</li><li><strong>失败</strong>: 3(均为 pip 网络测试,依赖 pypi.org 直连,非本次改动引入)</li><li><strong>修复</strong>: cft.test.js 配置 active 不匹配(<code>npmmirror</code> → 动态断言)</li></ul>
|
|
662
649
|
<h2>二、真实环境命令测试</h2>
|
|
663
650
|
<h3>已安装命令(9 个)</h3>
|
|
664
|
-
<table><thead><tr><th>命令</th><th>动作</th><th>结果</th><th>备注</th></tr></thead><tbody><tr><td><code>opm npm</code></td><td>version</td><td>PASS</td><td>10.8.2</td></tr><tr><td>registry</td><td>PASS</td><td>npmmirror</td></tr><tr><td>installed</td><td>PASS</td></tr><tr><td>search</td><td>PASS</td><td>通过代理查询 axios</td></tr><tr><td>info</td><td>PASS</td></tr><tr><td>list</td><td>PASS</td></tr><tr><td>
|
|
651
|
+
<table><thead><tr><th>命令</th><th>动作</th><th>结果</th><th>备注</th></tr></thead><tbody><tr><td><code>opm npm</code></td><td>version</td><td>PASS</td><td>10.8.2</td></tr><tr><td>registry</td><td>PASS</td><td>npmmirror</td></tr><tr><td>installed</td><td>PASS</td></tr><tr><td>search</td><td>PASS</td><td>通过代理查询 axios</td></tr><tr><td>info</td><td>PASS</td></tr><tr><td>list</td><td>PASS</td></tr><tr><td>registry set</td><td>PASS</td><td>切换 huawei 后恢复</td></tr><tr><td><code>opm pip</code></td><td>version</td><td>PASS</td><td>21.3.1</td></tr><tr><td>registry</td><td>PASS</td><td>tsinghua</td></tr><tr><td>search</td><td>PASS</td><td>通过代理查询 requests</td></tr><tr><td>list</td><td>PASS</td></tr><tr><td>registry set</td><td>PASS</td></tr><tr><td><code>opm dnf</code></td><td>version</td><td>PASS</td><td>4.10.0</td></tr><tr><td>registry</td><td>PASS</td><td>hce</td></tr><tr><td>search</td><td>PASS</td><td>curl 返回 exists:false(HCE 源无此包,预期行为)</td></tr><tr><td><code>opm node</code></td><td>version</td><td>PASS</td><td>20.20.2</td></tr><tr><td>current</td><td>PASS</td><td>v20.20.2</td></tr><tr><td>list</td><td>PASS</td></tr><tr><td>versions</td><td>PASS</td><td>通过代理获取远程版本列表</td></tr><tr><td>use</td><td>PASS</td></tr><tr><td><code>opm nvm</code></td><td>version</td><td>PASS</td><td>0.40.4</td></tr><tr><td>installed</td><td>PASS</td></tr><tr><td>registry</td><td>PASS</td><td>huawei</td></tr><tr><td>dir</td><td>PASS</td><td>/root/.nvm</td></tr><tr><td>upgrade</td><td><strong>FAIL</strong></td><td><code>/root/.nvm</code> 非 git 仓库(git clone 安装的才支持 upgrade)</td></tr><tr><td>uninstall</td><td><strong>WARN</strong></td><td>实际执行了卸载,删除了 <code>/root/.nvm</code>,导致 node 不可用</td></tr><tr><td><code>opm config</code></td><td>(full)</td><td>PASS</td></tr><tr><td>proxy</td><td>PASS</td><td>显示 huawei 代理 + active</td></tr><tr><td><code>opm ping</code></td><td>host</td><td>PASS</td></tr><tr><td>proxy</td><td>PASS</td><td>通过代理访问 npm registry 验证可用性</td></tr><tr><td>registry</td><td>PASS</td><td>16/16 全部 reachable:true</td></tr><tr><td>source</td><td>PASS</td><td>打印 curl 示例命令</td></tr><tr><td><code>opm cft</code></td><td>version</td><td>PASS</td><td>未安装,输出空</td></tr><tr><td>dir</td><td>PASS</td></tr><tr><td>list</td><td>PASS</td></tr><tr><td>status</td><td>PASS</td></tr><tr><td>versions</td><td><strong>FAIL</strong></td><td>deepbluenet 镜像无 versions JSON 文件</td></tr><tr><td><code>opm ensure</code></td><td>node</td><td>PASS</td><td>已安装,satisfied:true</td></tr><tr><td>help</td><td>PASS</td></tr></tbody></table>
|
|
665
652
|
<h3>未安装命令(7 个)</h3>
|
|
666
653
|
<table><thead><tr><th>命令</th><th>动作</th><th>结果</th><th>备注</th></tr></thead><tbody><tr><td><code>opm uv</code></td><td>version</td><td>PASS</td><td>未安装,输出空</td></tr><tr><td>installed</td><td>PASS</td><td>false</td></tr><tr><td>registry</td><td>PASS</td><td>ghproxy</td></tr><tr><td>install</td><td><strong>FAIL</strong></td><td>超时——curl 未走代理,无法访问 ghproxy.com</td></tr><tr><td><code>opm python</code></td><td>version</td><td>PASS</td><td>3.9.9(系统 python)</td></tr><tr><td>current</td><td>PASS</td></tr><tr><td>versions</td><td><strong>FAIL</strong></td><td>uv 未安装,预期行为</td></tr><tr><td><code>opm phpenv</code></td><td>version</td><td>PASS</td><td>未安装,输出空</td></tr><tr><td>installed</td><td>PASS</td><td>false</td></tr><tr><td><code>opm php</code></td><td>version</td><td>PASS</td><td>未安装,输出空</td></tr><tr><td>versions</td><td><strong>FAIL</strong></td><td>phpenv 未安装,预期行为</td></tr><tr><td><code>opm composer</code></td><td>version</td><td>PASS</td><td>未安装,输出空</td></tr><tr><td>registry</td><td>PASS</td><td>aliyun</td></tr><tr><td><code>opm bun</code></td><td>version</td><td>PASS</td><td>未安装,输出空</td></tr><tr><td>registry</td><td>PASS</td><td>npmmirror</td></tr><tr><td><code>opm docker</code></td><td>version</td><td>PASS</td><td>未安装,输出空</td></tr><tr><td>installed</td><td>PASS</td><td>false</td></tr><tr><td>registry</td><td>PASS</td><td>huawei</td></tr><tr><td>status</td><td>PASS</td><td>installed:false</td></tr><tr><td>dir</td><td>PASS</td></tr><tr><td>install</td><td><strong>SKIP</strong></td><td>需要网络下载便捷脚本,未测(避免修改系统)</td></tr></tbody></table>
|
|
667
654
|
<h2>三、发现的问题</h2>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wwkit/opm",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"author": "bluesliu <langcai163@163.com>",
|
|
5
5
|
"description": "Unified CLI — package management (npm/pip/dnf/apt) + config view + opencode maintenance",
|
|
6
6
|
"type": "module",
|
|
@@ -35,7 +35,16 @@
|
|
|
35
35
|
"basic-ftp": "^6.2.1",
|
|
36
36
|
"extract-zip": "^2.0.1",
|
|
37
37
|
"systeminformation": "^5.23.0",
|
|
38
|
-
"@wwkit/shared": "1.0.
|
|
38
|
+
"@wwkit/shared": "1.0.21"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"jest": "^29.7.0"
|
|
42
|
+
},
|
|
43
|
+
"jest": {
|
|
44
|
+
"transform": {},
|
|
45
|
+
"testMatch": [
|
|
46
|
+
"**/tests/**/*.test.js"
|
|
47
|
+
]
|
|
39
48
|
},
|
|
40
49
|
"publishConfig": {
|
|
41
50
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -45,8 +54,8 @@
|
|
|
45
54
|
"postinstall": "node scripts/postinstall.js",
|
|
46
55
|
"check": "node --check bin/index.js",
|
|
47
56
|
"start": "node bin/index.js",
|
|
48
|
-
"test": "node --
|
|
49
|
-
"test:all": "node --
|
|
57
|
+
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --no-cache tests",
|
|
58
|
+
"test:all": "node --experimental-vm-modules node_modules/jest/bin/jest.js --no-cache tests",
|
|
50
59
|
"doc": "node -e \"import('./src/cli/doc.js').then(m => m.generateDocHtml({ open: false }))\"",
|
|
51
60
|
"release": "node ../../packages/shared/bin/release-pkg.js"
|
|
52
61
|
}
|
package/src/binaries/base.js
CHANGED
|
@@ -17,7 +17,7 @@ import path from 'node:path'
|
|
|
17
17
|
import { parseFlags } from '../cli/helpers/args.js'
|
|
18
18
|
import { output } from '../formatter.js'
|
|
19
19
|
import { getActiveRegistry, setActiveRegistry, getPresets, getActiveProxy, getUserConfigDir } from '../config.js'
|
|
20
|
-
import { fetchText, downloadToFile } from '
|
|
20
|
+
import { fetchText, downloadToFile } from '@wwkit/shared'
|
|
21
21
|
import { getOs, OS_TYPES } from './platform.js'
|
|
22
22
|
import { find as findExe } from './exefinder.js'
|
|
23
23
|
import { verify as verifyDeps } from './depchecker.js'
|