feat(onboard): 新增 01-nvm-node,编号顺延,更新交叉引用和自检脚本
- 新增 01-nvm-node.md: nvm 安装、Node.js LTS 管理、全局包安装 - 原 01-09 顺延为 02-10 - 更新 SKILL.md checklist 表格 - 更新各子文档标题编号和前置引用 - self-check.sh: 加入 nvm/node 检查项,补充邮箱检查 [小糯]
This commit is contained in:
parent
1049f98f09
commit
b00731efe2
@ -22,7 +22,7 @@ metadata:
|
||||
skill_view("shazhou-family-onboard")
|
||||
|
||||
# 查看某一项的详细步骤
|
||||
skill_view("shazhou-family-onboard", "references/01-ssh-keypair.md")
|
||||
skill_view("shazhou-family-onboard", "references/01-nvm-node.md")
|
||||
```
|
||||
|
||||
## Checklist 总览
|
||||
@ -32,15 +32,16 @@ skill_view("shazhou-family-onboard", "references/01-ssh-keypair.md")
|
||||
| # | 检查项 | 文档 | 说明 |
|
||||
|---|--------|------|------|
|
||||
| 00 | ⚡ 自主权解绑 | `references/00-self-unbind.md` | **最先执行!** approvals/redact/tirith/allowlist/guard |
|
||||
| 01 | SSH 密钥对 | `references/01-ssh-keypair.md` | 生成 ed25519 密钥,注册到 Gitea |
|
||||
| 02 | cfg CLI (配置管理) | `references/02-cfg-cli.md` | 安装 cfg,获取公共配置 |
|
||||
| 03 | shazhou.work 邮箱 | `references/03-email-account.md` | 用 mcmail 创建邮箱(如果没有) |
|
||||
| 04 | Git 身份配置 | `references/04-git-identity.md` | user.name / user.email |
|
||||
| 05 | Gitea 账号 & tea CLI | `references/05-gitea-tea.md` | tea 登录、注册 SSH 公钥 |
|
||||
| 06 | Tailscale 组网 | `references/06-tailscale.md` | 加入 tailnet,验证互通 |
|
||||
| 07 | 家族成员互相认识 | `references/07-family-members.md` | 了解各设备和伙伴的联系方式 |
|
||||
| 08 | Hermes 基础配置 | `references/08-hermes-config.md` | config.yaml 必要字段检查 |
|
||||
| 09 | Skills 同步 | `references/09-skills-sync.md` | 克隆 skills repo,运行 sync.sh |
|
||||
| 01 | Node.js & nvm | `references/01-nvm-node.md` | 安装 nvm,用 nvm 管理 Node.js 版本 |
|
||||
| 02 | SSH 密钥对 | `references/02-ssh-keypair.md` | 生成 ed25519 密钥,注册到 Gitea |
|
||||
| 03 | cfg CLI (配置管理) | `references/03-cfg-cli.md` | 安装 cfg,获取公共配置 |
|
||||
| 04 | shazhou.work 邮箱 | `references/04-email-account.md` | 用 mcmail 创建邮箱(如果没有) |
|
||||
| 05 | Git 身份配置 | `references/05-git-identity.md` | user.name / user.email |
|
||||
| 06 | Gitea 账号 & tea CLI | `references/06-gitea-tea.md` | tea 登录、注册 SSH 公钥 |
|
||||
| 07 | Tailscale 组网 | `references/07-tailscale.md` | 加入 tailnet,验证互通 |
|
||||
| 08 | 家族成员互相认识 | `references/08-family-members.md` | 了解各设备和伙伴的联系方式 |
|
||||
| 09 | Hermes 基础配置 | `references/09-hermes-config.md` | config.yaml 必要字段检查 |
|
||||
| 10 | Skills 同步 | `references/10-skills-sync.md` | 克隆 skills repo,运行 sync.sh |
|
||||
|
||||
## 自检模式
|
||||
|
||||
|
||||
96
hermes/shazhou-family-onboard/references/01-nvm-node.md
Normal file
96
hermes/shazhou-family-onboard/references/01-nvm-node.md
Normal file
@ -0,0 +1,96 @@
|
||||
# 01. Node.js & nvm
|
||||
|
||||
## 检查
|
||||
|
||||
```bash
|
||||
command -v nvm || (export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && nvm --version)
|
||||
node --version
|
||||
which node # 应该在 ~/.nvm/ 下,不是 /usr/bin/node
|
||||
```
|
||||
|
||||
✅ 达标:nvm 已安装,node 版本 >= v24 (LTS),由 nvm 管理(路径在 `~/.nvm/versions/` 下)
|
||||
|
||||
## 安装
|
||||
|
||||
### 1. 安装 nvm
|
||||
|
||||
```bash
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
||||
```
|
||||
|
||||
安装完毕后加载 nvm:
|
||||
|
||||
```bash
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||
```
|
||||
|
||||
### 2. 写入 .profile
|
||||
|
||||
确保每次登录自动加载 nvm:
|
||||
|
||||
```bash
|
||||
cat >> ~/.profile << 'EOF'
|
||||
|
||||
# nvm
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||
EOF
|
||||
```
|
||||
|
||||
### 3. 安装 Node.js LTS
|
||||
|
||||
```bash
|
||||
nvm install --lts
|
||||
nvm alias default lts/*
|
||||
```
|
||||
|
||||
### 4. 清理旧的系统 Node(如果有)
|
||||
|
||||
如果之前通过 apt/nodesource 装过系统级 Node,建议卸载避免冲突:
|
||||
|
||||
```bash
|
||||
# 检查是否有系统 Node
|
||||
dpkg -l | grep nodejs
|
||||
|
||||
# 如果有,卸载
|
||||
sudo apt remove -y nodejs
|
||||
sudo rm -f /etc/apt/sources.list.d/nodesource.list /etc/apt/keyrings/nodesource.gpg
|
||||
```
|
||||
|
||||
### 5. 处理 .npmrc 冲突
|
||||
|
||||
如果旧的 .npmrc 里有 `prefix=` 设置,会和 nvm 冲突,需要移除:
|
||||
|
||||
```bash
|
||||
grep prefix ~/.npmrc 2>/dev/null && mv ~/.npmrc ~/.npmrc.bak
|
||||
```
|
||||
|
||||
### 6. 创建系统级符号链接(可选)
|
||||
|
||||
某些非 shell 工具(如 Hermes 浏览器引擎)可能找不到 nvm 管理的 node,创建符号链接解决:
|
||||
|
||||
```bash
|
||||
sudo ln -sf $(which node) /usr/local/bin/node
|
||||
```
|
||||
|
||||
⚠️ 注意:切换 node 版本后需要重新执行此命令更新符号链接。
|
||||
|
||||
### 7. 安装全局 npm 包
|
||||
|
||||
切换 node 版本后全局包需要重装:
|
||||
|
||||
```bash
|
||||
npm i -g @shazhou/cfg @shazhou/hermes-harness @nocoo/pew @oc-forge/secret
|
||||
```
|
||||
|
||||
## 验证
|
||||
|
||||
```bash
|
||||
nvm --version # 应显示 0.40.x
|
||||
node --version # 应显示 v24.x.x
|
||||
which node # 应在 ~/.nvm/versions/ 下
|
||||
npm --version # 应显示 11.x
|
||||
cfg env > /dev/null && echo "cfg ✓"
|
||||
pew --version && echo "pew ✓"
|
||||
```
|
||||
@ -1,4 +1,4 @@
|
||||
# 01. SSH 密钥对
|
||||
# 02. SSH 密钥对
|
||||
|
||||
## 检查
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# 02. cfg CLI (配置管理)
|
||||
# 03. cfg CLI (配置管理)
|
||||
|
||||
## 检查
|
||||
|
||||
@ -12,7 +12,7 @@ cfg get GITEA_TOKEN
|
||||
|
||||
## 前置
|
||||
|
||||
- 已完成 01 (SSH 密钥对)
|
||||
- 已完成 02 (SSH 密钥对)
|
||||
|
||||
## 安装
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# 03. shazhou.work 邮箱
|
||||
# 04. shazhou.work 邮箱
|
||||
|
||||
## 检查
|
||||
|
||||
@ -10,8 +10,8 @@ cfg get MY_EMAIL
|
||||
|
||||
## 前置
|
||||
|
||||
- 已完成 01 (SSH 密钥对)
|
||||
- 已完成 02 (cfg CLI)
|
||||
- 已完成 02 (SSH 密钥对)
|
||||
- 已完成 03 (cfg CLI)
|
||||
|
||||
## 安装
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
# 04. Git 身份配置
|
||||
# 05. Git 身份配置
|
||||
|
||||
## 前置
|
||||
|
||||
- 已完成 03 (shazhou.work 邮箱) — 需要邮箱地址配 user.email
|
||||
- 已完成 04 (shazhou.work 邮箱) — 需要邮箱地址配 user.email
|
||||
|
||||
## 检查
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
# 05. Gitea 账号 & tea CLI
|
||||
# 06. Gitea 账号 & tea CLI
|
||||
|
||||
## 前置
|
||||
|
||||
- 已完成 02 (cfg CLI) — 需要 `GITEA_ADMIN_TOKEN`(shared)
|
||||
- 已完成 03 (邮箱) — 创建 Gitea 用户需要邮箱
|
||||
- 已完成 03 (cfg CLI) — 需要 `GITEA_ADMIN_TOKEN`(shared)
|
||||
- 已完成 04 (邮箱) — 创建 Gitea 用户需要邮箱
|
||||
|
||||
## 检查
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# 06. Tailscale 组网
|
||||
# 07. Tailscale 组网
|
||||
|
||||
## 检查
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# 07. 家族成员互相认识
|
||||
# 08. 家族成员互相认识
|
||||
|
||||
## 检查
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# 08. Hermes 基础配置
|
||||
# 09. Hermes 基础配置
|
||||
|
||||
## 检查
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# 09. Skills 同步
|
||||
# 10. Skills 同步
|
||||
|
||||
## 检查
|
||||
|
||||
@ -4,6 +4,10 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Load nvm if available
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||
|
||||
pass=0
|
||||
fail=0
|
||||
|
||||
@ -29,29 +33,40 @@ check "redact_secrets off" "grep -q 'redact_secrets: false' ~/.hermes/config.yam
|
||||
check "tirith off" "grep -q 'tirith_enabled: false' ~/.hermes/config.yaml 2>/dev/null"
|
||||
check "command_allowlist 存在" "grep -q 'command_allowlist' ~/.hermes/config.yaml 2>/dev/null"
|
||||
|
||||
echo "01. SSH 密钥对"
|
||||
check "id_ed25519 存在" "test -f ~/.ssh/id_ed25519.pub"
|
||||
echo "01. Node.js & nvm"
|
||||
check "nvm 已安装" "test -d \$HOME/.nvm"
|
||||
check "node 可用" "command -v node"
|
||||
check "node 由 nvm 管理" "which node | grep -q .nvm"
|
||||
|
||||
echo "02. Git 身份"
|
||||
check "user.name 已设置" "git config --global user.name"
|
||||
check "user.email 已设置" "git config --global user.email"
|
||||
echo "02. SSH 密钥对"
|
||||
check "id_ed25519 存在" "test -f ~/.ssh/id_ed25519.pub"
|
||||
|
||||
echo "03. cfg CLI"
|
||||
check "cfg 已安装" "command -v cfg"
|
||||
check "GITEA_TOKEN 可用" "cfg get GITEA_TOKEN 2>/dev/null | grep -qv '^$'"
|
||||
|
||||
echo "04. Gitea & tea CLI"
|
||||
echo "04. 邮箱"
|
||||
check "MY_EMAIL 已配置" "cfg get MY_EMAIL 2>/dev/null | grep -qv '^$'"
|
||||
|
||||
echo "05. Git 身份"
|
||||
check "user.name 已设置" "git config --global user.name"
|
||||
check "user.email 已设置" "git config --global user.email"
|
||||
|
||||
echo "06. Gitea & tea CLI"
|
||||
check "tea 已安装" "command -v tea"
|
||||
check "tea 已登录" "tea login list 2>&1 | grep -qE '(xingyue|xiaoju|xiaomo|xiaonuo|tuanzi|luming|aobing|scottwei)'"
|
||||
|
||||
echo "05. Tailscale"
|
||||
echo "07. Tailscale"
|
||||
check "tailscale 已安装" "command -v tailscale"
|
||||
check "tailscale 在线" "tailscale status"
|
||||
|
||||
echo "07. Hermes 配置"
|
||||
echo "08. 家族成员"
|
||||
echo " ℹ️ 请自行确认已了解家族设备和联系方式"
|
||||
|
||||
echo "09. Hermes 配置"
|
||||
check "config.yaml 存在" "test -f ~/.hermes/config.yaml"
|
||||
|
||||
echo "08. Skills"
|
||||
echo "10. Skills"
|
||||
check "skills repo 已克隆" "test -d ~/skills/.git"
|
||||
check "skills 已同步" "test -d ~/.hermes/skills/openclaw-imports"
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user