Skip to content

Commit bd54fa3

Browse files
docs(cli): finalize installation guide for stage-two delivery
阶段二代码就绪后改写 CLI 安装文档与命令参考: - install.md 从「阶段一仅本地构建」改写为四种正式方式: install.sh / npm 包装 / 直接下载 / 源码构建。每节附环境变量 覆盖示例(INSTALL_DIR / VERSION / NO_VERIFY / MP2RSS_VERSION / MP2RSS_NO_VERIFY)与卸载指引;总览说明资产命名约定与 checksums.txt 校验。 - faq.md 新增「如何更新到最新版本」:mp2rss update(推荐)+ pnpm up -g @mp2rss/cli + 重跑 install.sh + 源码 git pull 四条 路径;卸载条目按四种安装方式补全。 - commands.md `mp2rss update` 节从占位说明改写为完整行为描述: GitHub Releases 拉 + checksums.txt SHA-256 校验 + 原子替换 + macOS quarantine 处理;tip 提示包管理器装的用户优先用包管理器 升级。 - index.md 安装速览改为四种方式简写 + 链接到 install.md。 所有 release 资源链接统一指向 /releases/latest,避免硬编码版本号。
1 parent c759fa4 commit bd54fa3

4 files changed

Lines changed: 237 additions & 55 deletions

File tree

docs/cli/commands.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,16 +236,23 @@ mp2rss mp articles 2234567 -o json | jq '.items[].title'
236236

237237
## `mp2rss update`
238238

239-
自更新命令
239+
自更新到 GitHub Releases 的最新版本
240240

241241
```bash
242242
mp2rss update # 检查并执行更新
243243
mp2rss update --check # 只检查不更新
244-
mp2rss update --force # 跳过版本对比强制更新
244+
mp2rss update --force # 即使版本相同也强制重装
245245
```
246246

247-
::: warning 当前阶段为占位实现
248-
当前版本执行该命令仅会提示「自更新功能将在 v1.x 版本启用」。完整功能(拉取最新 release 并原子替换)将在 v1.x 上线时启用。
247+
行为:
248+
249+
1. 查询 `https://api.github.com/.../releases/latest`,按语义版本与本地比对(预发布版本视为更老)。
250+
2. 下载对应平台归档 + `checksums.txt`,校验 SHA-256。
251+
3. 暂存为 `<selfpath>.new``os.Rename` **原子替换**;Windows 下若旧二进制被占用,会先改名 `.old` 再换入。
252+
4. macOS 自动 `xattr -d com.apple.quarantine` 去掉 Gatekeeper 隔离属性。
253+
254+
::: tip 通过 npm / 包管理器装的怎么升级?
255+
仍可用 `mp2rss update`,但**推荐改用对应包管理器**(如 `pnpm up -g @mp2rss/cli`),避免下次包管理器升级时哈希校验冲突。详见 [FAQ](./faq#如何更新到最新版本)
249256
:::
250257

251258
## 配置与环境变量

docs/cli/faq.md

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,58 @@ mp2rss mp list -o json
8484

8585
CLI 在写入时会强制设置上述权限。如果权限被外部修改成更宽松的值,下次写入会自动恢复。
8686

87+
## 如何更新到最新版本?
88+
89+
按安装方式选择对应的更新路径:
90+
91+
### 推荐:`mp2rss update`(任何安装方式通用)
92+
93+
```bash
94+
mp2rss update # 检查并升级到最新 release
95+
mp2rss update --check # 只检查,不下载
96+
mp2rss update --force # 即使版本相同也强制重装
97+
```
98+
99+
行为细节:
100+
101+
- 查询 `https://api.github.com/.../releases/latest`,与本地版本比对(语义版本,预发布版本视为更老)。
102+
- 下载平台归档 + `checksums.txt`,校验 SHA-256。
103+
- 暂存为 `<selfpath>.new``os.Rename` 原子替换;Windows 会先把旧二进制改名 `.old` 再换入,避免「文件正在使用」。
104+
- macOS 会自动 `xattr -d com.apple.quarantine` 去掉 Gatekeeper 隔离属性。
105+
106+
::: tip 通过包管理器装的,仍可用 `mp2rss update` 吗?
107+
可以,但**推荐改用对应包管理器**,避免覆盖被包管理器接管的文件——下次包管理器升级时可能出现哈希校验冲突。
108+
:::
109+
110+
### npm / pnpm 安装的场景
111+
112+
```bash
113+
pnpm up -g @mp2rss/cli
114+
#
115+
npm update -g @mp2rss/cli
116+
```
117+
118+
`postinstall` 会重新拉对应版本的二进制并校验 SHA-256。
119+
120+
### install.sh 安装的场景
121+
122+
直接重跑安装命令即可:
123+
124+
```bash
125+
curl -fsSL https://mp2rss.com/install.sh | sh
126+
```
127+
128+
脚本会发现已存在的二进制并覆盖到同一位置。可用 `VERSION=v0.2.0` 锁定具体版本。
129+
130+
### 源码构建的场景
131+
132+
```bash
133+
cd /path/to/mp2rss-cli
134+
git pull
135+
make build
136+
sudo install -m 0755 mp2rss /usr/local/bin/mp2rss
137+
```
138+
87139
## 怎么完全卸载并清理本地痕迹?
88140

89141
```bash
@@ -93,8 +145,10 @@ mp2rss auth logout
93145
# 2. 删除配置目录
94146
rm -rf ~/.mp2rss
95147

96-
# 3. 从 PATH 中删掉二进制
97-
sudo rm /usr/local/bin/mp2rss # 或你自己放置的位置
148+
# 3. 从 PATH 中删掉二进制(按你的安装方式选一种)
149+
sudo rm /usr/local/bin/mp2rss # install.sh / 源码构建 / 直接下载
150+
rm "$HOME/.local/bin/mp2rss" # install.sh 默认目录
151+
pnpm rm -g @mp2rss/cli # npm / pnpm / yarn 安装
98152
```
99153

100154
## 怎么报 Bug / 提需求?

docs/cli/index.md

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,23 @@ mp2rss mp list
3131

3232
## 安装速览
3333

34-
阶段一仅提供 **本地源码构建** 方式
34+
四种方式,按场景任选其一
3535

3636
```bash
37-
git clone https://github.com/areyoubugcoder/mp2rss-cli.git
38-
cd mp2rss-cli
39-
go build -o mp2rss .
40-
```
37+
# 一键安装(推荐 macOS / Linux)
38+
curl -fsSL https://mp2rss.com/install.sh | sh
4139

42-
::: tip 上线后可用的安装方式
43-
首个正式版本(v1.x)发布后将开放以下安装方式,安装文档届时一并补充:
40+
# npm 包装(Node ≥ 18)
41+
pnpm add -g @mp2rss/cli
4442

45-
- Homebrew(macOS / Linux)
46-
- npm 包装 `@mp2rss/cli`
47-
- 一键安装脚本 `https://mp2rss.com/install.sh`
48-
- 直接从 GitHub Releases 下载对应平台二进制
43+
# 直接下载
44+
# https://github.com/areyoubugcoder/mp2rss-cli/releases/latest
4945

50-
:::
46+
# 源码构建(Go ≥ 1.21)
47+
git clone https://github.com/areyoubugcoder/mp2rss-cli.git && cd mp2rss-cli && make build
48+
```
5149

52-
详细安装步骤见 [安装](./install)
50+
详细步骤、环境变量覆盖与卸载指引见 [安装](./install)
5351

5452
## 下一步
5553

docs/cli/install.md

Lines changed: 159 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,202 @@
11
# 安装
22

3+
`mp2rss` 提供四种安装方式,可按场景任选其一。
4+
35
## 系统要求
46

5-
- 操作系统:macOS、Linux、Windows 任一现代版本均可。
6-
- 架构:x86_64(amd64)或 arm64。
7-
- 构建工具(仅本地构建需要):Go 1.22 或更新版本。
7+
- **操作系统**:macOS、Linux、Windows(amd64 / arm64)。
8+
- **架构**:x86_64(amd64)或 arm64。
9+
- **可选依赖**
10+
- `install.sh` 一键安装:`curl``wget` + `tar`;macOS / Linux。
11+
- `npm` 包装:Node.js ≥ 18。
12+
- 源码构建:Go ≥ 1.21。
13+
- 直接下载:`tar`(unix)或解压 zip 的工具(Windows)。
14+
15+
::: tip 哪种装法适合我?
16+
- 桌面 / 开发机首次安装 → **install.sh 一键安装**
17+
- Node 工具链已就绪、想随 `package.json` 锁定版本 → **npm 包装**
18+
- 离线分发 / 公司内部镜像 / CI 缓存 → **直接下载**
19+
- 想跟踪未发布的 `main`**源码构建**
20+
:::
21+
22+
资产命名约定(所有安装方式底层都拉这些文件):
23+
24+
```
25+
mp2rss-cli_<version>_<goos>_<goarch>.tar.gz # darwin / linux
26+
mp2rss-cli_<version>_<goos>_<goarch>.zip # windows
27+
checksums.txt # 每个 release 配套的 SHA-256 清单
28+
```
829

9-
## 本地源码构建(当前阶段唯一方式)
30+
每个 release 同时附带 `checksums.txt`,建议保留校验环节,避免镜像被篡改。
1031

11-
阶段一只提供本地源码构建。完整步骤:
32+
## 方式一:install.sh 一键安装(推荐 macOS / Linux)
1233

1334
```bash
14-
# 1. 克隆仓库
15-
git clone https://github.com/areyoubugcoder/mp2rss-cli.git
16-
cd mp2rss-cli
35+
curl -fsSL https://mp2rss.com/install.sh | sh
36+
```
1737

18-
# 2. 构建二进制(产物即当前目录下的 mp2rss)
19-
go build -o mp2rss .
38+
脚本会:
2039

21-
# 3. 验证
22-
./mp2rss --version
23-
./mp2rss --help
40+
1. 探测当前 OS / 架构;
41+
2. 通过 `api.github.com/.../releases/latest` 解析最新 tag;
42+
3. 选写优先级 `$HOME/.local/bin``$HOME/bin``/usr/local/bin`(前者权限不足时回退,最后一档可能需要 `sudo`);
43+
4. 下载对应平台的 `tar.gz` 并对照 `checksums.txt` 校验 SHA-256;
44+
5. 解压、`chmod 755`,并尝试 `mp2rss --version` 自检。
45+
46+
### 环境变量覆盖
47+
48+
```bash
49+
# 指定安装目录
50+
curl -fsSL https://mp2rss.com/install.sh | INSTALL_DIR="$HOME/.local/bin" sh
51+
52+
# 指定版本(默认最新)
53+
curl -fsSL https://mp2rss.com/install.sh | VERSION=v0.2.0 sh
54+
55+
# 跳过 SHA-256 校验(仅在受信镜像 / 离线环境下使用)
56+
curl -fsSL https://mp2rss.com/install.sh | NO_VERIFY=1 sh
57+
58+
# 组合使用
59+
curl -fsSL https://mp2rss.com/install.sh \
60+
| INSTALL_DIR="$HOME/.local/bin" VERSION=v0.2.0 NO_VERIFY=1 sh
2461
```
2562

26-
`mp2rss` 放到 `PATH` 中任意目录(例如 `/usr/local/bin``~/bin`)后即可全局调用:
63+
### 卸载
2764

2865
```bash
29-
sudo mv mp2rss /usr/local/bin/
30-
mp2rss --version
66+
# 1. 删除二进制(脚本提示的 install_dir)
67+
rm "$HOME/.local/bin/mp2rss"
68+
69+
# 2. 清理本地配置(可选)
70+
rm -rf ~/.mp2rss
3171
```
3272

33-
::: tip 关于体积
34-
默认 `go build` 出来的二进制约 12–14 MB。仓库 `Makefile` 中提供了 `make build` 目标,会附加 `-trimpath -ldflags="-s -w"` 等参数进一步压缩到 10 MB 左右
73+
::: warning Windows 用户
74+
`install.sh` 仅覆盖 macOS / Linux。Windows 请使用 [方式二:npm 包装](#方式二-npm-包装)[方式三:直接下载](#方式三-直接下载-github-releases)
3575
:::
3676

37-
## 升级
77+
## 方式二:npm 包装
3878

39-
在仓库目录 `git pull` 后重新执行 `go build` 即可。`mp2rss update` 命令将在 v1.x 版本启用,届时支持一键自更新
79+
适合 Node 工具链已就绪、CI 中按 `package.json` 锁定版本的场景。Node ≥ 18
4080

41-
## 卸载
81+
```bash
82+
# pnpm
83+
pnpm add -g @mp2rss/cli
4284

43-
`mp2rss` 二进制从 `PATH` 中删除即可。配置目录在 `~/.mp2rss/`,如不再使用:
85+
# npm
86+
npm install -g @mp2rss/cli
87+
88+
# yarn
89+
yarn global add @mp2rss/cli
90+
```
91+
92+
`postinstall` 会按当前 OS / 架构从 GitHub Releases 拉对应二进制,并对照 `checksums.txt` 校验 SHA-256。可通过环境变量微调:
4493

4594
```bash
46-
rm -rf ~/.mp2rss
95+
# 指定版本(覆盖 package.json)
96+
MP2RSS_VERSION=0.2.0 pnpm add -g @mp2rss/cli
97+
98+
# 跳过 SHA-256 校验
99+
MP2RSS_NO_VERIFY=1 pnpm add -g @mp2rss/cli
47100
```
48101

49-
## v1.x 起将支持
102+
### 卸载
50103

51-
以下安装方式会在首个正式版本(v1.x)发布后启用,本页面届时一并补充具体命令与下载链接:
104+
```bash
105+
pnpm rm -g @mp2rss/cli # 或 npm uninstall -g @mp2rss/cli / yarn global remove @mp2rss/cli
106+
rm -rf ~/.mp2rss # 清理本地配置(可选)
107+
```
108+
109+
## 方式三:直接下载(GitHub Releases)
52110

53-
### Homebrew
111+
[最新 release 页面](https://github.com/areyoubugcoder/mp2rss-cli/releases/latest) 一律附带四个平台归档 + `checksums.txt`
112+
113+
### 自动选择最新版本(脚本片段)
54114

55115
```bash
56-
# 占位,上线后可用
57-
brew install areyoubugcoder/tap/mp2rss
116+
REPO=areyoubugcoder/mp2rss-cli
117+
TAG=$(curl -fsSL "https://api.github.com/repos/$REPO/releases/latest" \
118+
| sed -n 's/.*"tag_name":[[:space:]]*"\(v[^"]*\)".*/\1/p' | head -n1)
119+
SEMVER=${TAG#v}
120+
# 按本机平台替换 darwin/amd64 → 你的目标
121+
OS=darwin ARCH=arm64
122+
ASSET="mp2rss-cli_${SEMVER}_${OS}_${ARCH}.tar.gz"
123+
124+
curl -L -o "$ASSET" \
125+
"https://github.com/$REPO/releases/download/$TAG/$ASSET"
126+
curl -L -o checksums.txt \
127+
"https://github.com/$REPO/releases/download/$TAG/checksums.txt"
128+
129+
# 校验
130+
shasum -a 256 -c <(grep " $ASSET\$" checksums.txt)
131+
132+
# 解压并安装
133+
tar -xzf "$ASSET" mp2rss
134+
sudo install -m 0755 mp2rss /usr/local/bin/mp2rss
135+
mp2rss --version
58136
```
59137

60-
### npm 包装
138+
### 平台对应资产
139+
140+
| 平台 | 资产 |
141+
| ---- | ---- |
142+
| macOS Apple Silicon | `mp2rss-cli_<version>_darwin_arm64.tar.gz` |
143+
| macOS Intel | `mp2rss-cli_<version>_darwin_amd64.tar.gz` |
144+
| Linux x86_64 | `mp2rss-cli_<version>_linux_amd64.tar.gz` |
145+
| Linux arm64 | `mp2rss-cli_<version>_linux_arm64.tar.gz` |
146+
| Windows x86_64 | `mp2rss-cli_<version>_windows_amd64.zip` |
147+
| Windows arm64 | `mp2rss-cli_<version>_windows_arm64.zip` |
148+
149+
Windows 用 `tar -xf <asset>.zip mp2rss.exe`(Windows 10+ 内置 `tar` 支持 zip),或资源管理器解压。
150+
151+
### 卸载
61152

62153
```bash
63-
# 占位,上线后可用
64-
npm install -g @mp2rss/cli
154+
# unix
155+
sudo rm /usr/local/bin/mp2rss
156+
157+
# Windows(PowerShell)
158+
Remove-Item "$Env:USERPROFILE\bin\mp2rss.exe"
159+
160+
# 清理本地配置(可选)
161+
rm -rf ~/.mp2rss
65162
```
66163

67-
### 一键安装脚本
164+
## 方式四:源码构建
165+
166+
适合需要跟踪未发布 `main`、自行打包、或为新平台编译的场景。需要 Go ≥ 1.21。
68167

69168
```bash
70-
# 占位,上线后可用
71-
curl -fsSL https://mp2rss.com/install.sh | sh
169+
git clone https://github.com/areyoubugcoder/mp2rss-cli.git
170+
cd mp2rss-cli
171+
make build # 等价于 go build -trimpath -ldflags="-s -w" -o mp2rss .
172+
./mp2rss --version
173+
```
174+
175+
把产物放到 `PATH`
176+
177+
```bash
178+
sudo install -m 0755 mp2rss /usr/local/bin/mp2rss
179+
```
180+
181+
::: tip 关于体积
182+
默认 `go build` 出来约 12–14 MB;`make build` 会附加 `-trimpath -ldflags="-s -w"`,压缩到 ~10 MB。
183+
:::
184+
185+
### 卸载
186+
187+
```bash
188+
sudo rm /usr/local/bin/mp2rss
189+
rm -rf ~/.mp2rss # 清理本地配置(可选)
190+
# 仓库目录直接删除即可
72191
```
73192

74-
### GitHub Releases 直接下载
193+
## 升级
194+
195+
参见 [FAQ → 如何更新到最新版本](./faq#如何更新到最新版本)
75196

76-
发行版会按平台 / 架构提供独立的归档包与 `checksums.txt`,可在 [Releases](https://github.com/areyoubugcoder/mp2rss-cli/releases) 页面下载并校验。
197+
- `mp2rss update` 自更新(推荐,所有安装方式通用)
198+
- `pnpm up -g @mp2rss/cli`(npm 安装的场景)
199+
- 重跑 `install.sh`(脚本安装的场景)
77200

78201
## 下一步
79202

0 commit comments

Comments
 (0)