toolsetup: 跨平台开发环境配置
toolsetup 是安装 pywayne 后提供的环境配置工具。它使用统一的
--task 和 --platform 参数管理 shell 快捷命令、Node.js/npm、
Tailscale、MongoDB 和 PyMongo 环境。
工具会在执行安装前显示命令。安装类任务默认要求确认,自动化场景可使用
--yes;建议第一次运行时先加 --dry-run 检查计划。
支持范围
任务 |
macOS |
Linux |
Windows |
|---|---|---|---|
|
zsh / bash |
bash / zsh,包含 |
PowerShell |
|
支持 |
支持 |
不支持 |
|
不支持 |
支持 |
不支持 |
|
支持 |
支持 |
不支持 |
Windows 当前只配置 PowerShell 快捷命令,可通过随包安装的
toolsetup.cmd 或 toolsetup.py 运行。按设计,gpu 命令只会在
Linux 加载后可用;macOS 和 Windows 不会提供该命令。
快速开始
# 自动识别当前平台,预览全部适用任务
toolsetup --task all --platform auto --dry-run
# 配置当前平台的 shell 快捷命令
toolsetup --task shortcuts --platform auto
# Linux 安装全部支持的任务,不再询问确认
toolsetup --task all --platform linux --yes
# 在 macOS 安装 Node.js/npm
toolsetup --task npm --platform macos --yes
共同参数
--task {shortcuts,npm,tailscale,mongodb,all}:选择任务,必填。--platform {auto,macos,linux,windows}:目标平台,默认自动识别。--shell {auto,bash,zsh,powershell}:指定要配置的 shell。--dry-run:只显示配置文件和命令计划,不修改系统。--yes:跳过 npm、Tailscale、MongoDB 等安装任务的确认提示。--force:替换已有的受管配置块,或重新运行已经安装过的 nvm 安装器。
显式指定的目标平台与当前主机不一致时,只允许 --dry-run,防止在
错误系统上执行 apt、brew 或 PowerShell 配置。
Shell 快捷命令
toolsetup --task shortcuts --platform linux --shell bash
toolsetup --task shortcuts --platform macos --shell zsh
toolsetup --task shortcuts --platform windows
Unix 默认写入 ~/.bashrc 或 ~/.zshrc;Windows 写入当前用户的
PowerShell Profile。也可以用 --rc-file 指定其他文件:
toolsetup --task shortcuts --platform linux --rc-file /tmp/test.bashrc
配置以如下标记包围:
# >>> pywayne toolsetup shortcuts >>>
...
# <<< pywayne toolsetup shortcuts <<<
如果标记已经存在,默认跳过,不会产生重复函数。使用 --force 时替换
受管块,并先生成形如 .zshrc.bak.20260720123000123456 的备份。
代理命令
proxy_on 设置大小写两套 HTTP、HTTPS、SOCKS 和 NO_PROXY 环境变量,
同时写入 Git 全局代理;proxy_off 清理这些变量和 Git 配置。
toolsetup --task shortcuts --platform auto \
--http-proxy http://127.0.0.1:7890 \
--socks-proxy socks5://127.0.0.1:7890 \
--no-proxy 'localhost,127.0.0.1,.example.com'
修改 rc 文件后,需要重新打开终端,或按工具输出执行 source。代理环境
变量只影响加载配置后的 shell;Git 代理使用 git config --global,会影响
当前用户的所有 Git 仓库。
goto 路径跳转
goto 将快捷名持久化到 Unix 的 ~/.goto_paths 或 Windows 的
~/.goto_paths.json:
goto add code ~/Documents/work/code
goto add project "/path/with spaces/project"
goto list
goto code
goto remove project
goto clear
安装快捷命令时可以同时初始化路径;--goto 可重复:
toolsetup --task shortcuts --platform auto \
--goto code="$HOME/Documents/work/code" \
--goto tools="$HOME/Documents/tools"
快捷名仅允许字母、数字、点、下划线和连字符,初始化时目标目录必须已经存在。
Linux GPU 概览
gpu 使用 nvidia-smi 显示以下内容:
GPU 型号、温度、风扇、功率、显存和利用率;
每张 GPU 的 compute 进程、PID、用户、显存、运行时长和命令;
按用户汇总的 compute 进程显存占用。
它依赖 NVIDIA 驱动与 nvidia-smi。图形进程或驱动保留显存可能不会出现
在 compute 进程列表中。
Node.js 与 npm
# 默认安装 nvm v0.40.6、Node.js 20,并设置 npmmirror
toolsetup --task npm --platform linux --yes
# macOS
toolsetup --task npm --platform macos --yes
# 改用其他 Node 版本或 npm registry
toolsetup --task npm --platform auto --node-version 24 \
--npm-registry https://registry.npmjs.org --yes
Linux 会根据系统选择 apt、dnf、yum、zypper 或 apk 安装 curl、Git 和编译 工具。macOS 需要预先安装 Xcode Command Line Tools;nvm 官方不支持通过 Homebrew 安装,因此 macOS 和 Linux 都使用 nvm 官方安装脚本。
随后工具会列出远端 LTS 版本,安装 --node-version,设置为默认版本,
并通过 npm config set registry 保存 registry。默认值保持为需求中的
Node.js 20;可以显式改为 22、24 或 lts/*。
Linux Tailscale
toolsetup --task tailscale --platform linux --dry-run
toolsetup --task tailscale --platform linux --yes
该任务下载并执行 Tailscale 官方 Linux 安装脚本,启用 tailscaled 服务,
然后运行 sudo tailscale up。首次连接通常会在终端打印认证 URL,需要在
浏览器完成登录。
MongoDB 与 PyMongo
# macOS:Homebrew 安装并启动 MongoDB 服务
toolsetup --task mongodb --platform macos --yes
# Linux:官方仓库安装,systemd 设置开机启动
toolsetup --task mongodb --platform linux --yes
# 自定义 PyMongo 虚拟环境
toolsetup --task mongodb --platform auto \
--pymongo-venv ~/.venvs/my-mongodb --yes
# 只安装 MongoDB 服务
toolsetup --task mongodb --platform auto --skip-pymongo --yes
当前经过验证的服务器版本是 MongoDB 8.0:
macOS 通过
mongodb/brew安装mongodb-community@8.0,并执行brew services start,服务会随用户登录启动;Ubuntu 20.04、22.04、24.04 和 Debian 12 使用 MongoDB 官方 apt 仓库;
RHEL、Rocky Linux、AlmaLinux、CentOS Stream 和 Oracle Linux 8/9 使用 MongoDB 官方 yum/dnf 仓库;
Linux 使用
systemctl enable --now mongod启动并设置开机自启。
PyMongo 默认安装到独立的 ~/.venvs/pywayne-mongodb,避免修改系统
Python。激活方式:
source ~/.venvs/pywayne-mongodb/bin/activate
python -c "import pymongo; print(pymongo.version)"
验证与排错
# 检查生成计划
toolsetup --task all --platform auto --dry-run
# MongoDB 服务状态
systemctl status mongod # Linux
brew services list # macOS
# npm 配置
node -v
npm -v
npm config get registry
# Tailscale 状态
tailscale status
Ubuntu/Debian 自带的旧 mongodb 包会与官方 mongodb-org 冲突。
toolsetup 检测到该包时会停止,不会自动删除软件或数据;请先自行审查现有
数据库与备份,再决定是否卸载。
安全说明
npm/nvm 和 Tailscale 任务会从官方站点下载脚本并执行;先用
--dry-run核对 URL 和命令。Linux 安装会使用
sudo;工具不会自动删除冲突包或数据库文件。proxy_on会修改 Git 全局配置,使用proxy_off可恢复。MongoDB 默认配置适合本机开发。对外开放端口前,应单独配置认证、TLS、 防火墙和备份策略。