diff --git a/source/_posts/OpenCode.md b/source/_posts/OpenCode.md new file mode 100644 index 0000000..20bb494 --- /dev/null +++ b/source/_posts/OpenCode.md @@ -0,0 +1,203 @@ +--- +title: OpenCode +date: 2026-06-04 10:34:02 +tags: +--- + +# OpenCode 安装指南 + +## Windows 安装方式 + +### 方式一:使用 npm 安装(推荐) + +1. 确保已安装 Node.js(建议版本 16 或更高) +2. 打开 PowerShell 或命令提示符 +3. 运行以下命令进行全局安装: + ```bash + npm i -g opencode-ai + ``` +4. 安装完成后,可以通过以下命令验证安装: + ```bash + opencode --version + ``` + +### 方式二:使用 curl 安装(需要 WSL 或 Git Bash) + +如果您使用的是 Windows Subsystem for Linux (WSL) 或 Git Bash,可以使用以下命令: + +```bash +curl -fsSL https://opencode.ai/install | bash +``` + +**注意:** 此方式需要在 Unix-like 环境中运行,Windows 原生的命令提示符或 PowerShell 不支持此命令。 + +## 其他操作系统安装方式 + +### Linux/macOS + +```bash +curl -fsSL https://opencode.ai/install | bash +``` + +或使用 npm: + +```bash +npm i -g opencode-ai +``` + +## 常见问题 + +### PowerShell 中使用 curl 安装后命令不识别 + +**问题描述:** 在 PowerShell 中运行 `curl -fsSL https://opencode.ai/install | bash` 后,`opencode` 命令无法识别。 + +**原因分析:** +1. PowerShell 中的 `curl` 是 `Invoke-WebRequest` 的别名,不是真正的 curl +2. `bash` 命令在 PowerShell 中不可用(除非安装了 WSL 或 Git Bash) +3. 即使安装成功,安装路径可能不在 Windows PATH 中 + +**解决方案:** + +#### 方案一:使用 npm 安装(推荐) +```bash +npm i -g opencode-ai +``` + +#### 方案二:在 WSL 或 Git Bash 中安装 +1. 打开 WSL 或 Git Bash +2. 运行安装命令: + ```bash + curl -fsSL https://opencode.ai/install | bash + ``` +3. 如果仍然不识别,检查安装路径并添加到 PATH + +#### 方案三:手动添加 PATH +如果已安装但命令不识别: +1. 找到安装位置(通常在 `~/.local/bin` 或 `/usr/local/bin`) +2. 将路径添加到 Windows PATH: + ```powershell + [Environment]::SetEnvironmentVariable("PATH", $env:PATH + ";C:\path\to\opencode", "User") + ``` +3. 重启 PowerShell + +### nvm 用户切换 Node.js 版本后 opencode 不可用 + +**问题描述:** 使用 nvm(Node Version Manager)管理 Node.js 版本时,切换版本后之前全局安装的 opencode 命令无法识别。 + +**原因分析:** +nvm 为每个 Node.js 版本维护独立的全局包目录。当您切换 Node.js 版本时: +- 每个版本有自己独立的 `node_modules` 目录 +- 之前版本安装的全局包在新版本中不可用 +- 需要重新安装全局包 + +**解决方案:** + +#### 方案一:为当前版本重新安装(推荐) +```bash +# 切换到目标 Node.js 版本 +nvm use 18 + +# 重新安装 opencode +npm i -g opencode-ai +``` + +#### 方案二:使用 nvm 的默认包迁移功能 +```bash +# 设置默认 Node.js 版本 +nvm alias default 18 + +# 重新安装全局包 +npm i -g opencode-ai +``` + +#### 方案三:使用 nvm 的 --default-packages 参数 +在安装 Node.js 版本时指定默认包: +```bash +# 设置默认包列表 +echo "opencode-ai" > ~/.nvm/default-packages + +# 安装新版本时会自动安装默认包 +nvm install 18 +``` + +#### 方案四:检查当前 Node.js 版本 +```bash +# 查看当前使用的 Node.js 版本 +node --version + +# 查看 nvm 列表 +nvm list + +# 切回之前安装 opencode 的版本 +nvm use <之前版本号> +``` + +**最佳实践:** +1. 在切换版本后检查全局包:`npm list -g --depth=0` +2. 为常用版本安装 opencode:`nvm use <版本> && npm i -g opencode-ai` +3. 考虑使用 `nvm alias default <版本>` 设置默认版本 + +#### 方案五:配置独立的全局包目录(一劳永逸) + +将 npm 全局包目录设置到固定位置,不依赖于 nvm 管理的 Node.js 版本: + +```bash +# 1. 创建全局包目录 +mkdir -p ~/.npm-global + +# 2. 配置 npm 使用新目录 +npm config set prefix ~/.npm-global + +# 3. 添加到 PATH(添加到 ~/.bashrc 或 ~/.zshrc) +echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc +source ~/.bashrc + +# 4. 安装 opencode +npm i -g opencode-ai +``` + +**优点:** +- 所有 Node.js 版本共享同一套全局包 +- 切换版本后无需重新安装 +- 一次安装,永久可用 + +**注意:** 如果遇到包兼容性问题,可以删除 `~/.npm-global` 目录并重新配置。 + +#### 方案六:使用 nvm 的 reinstall-packages 迁移包 + +如果已经在某个版本下安装了 opencode,可以迁移到其他版本: + +```bash +# 查看当前版本 +nvm current + +# 切换到目标版本 +nvm use 18 + +# 将之前版本的全局包迁移到当前版本 +nvm reinstall-packages <源版本号> +``` + +例如:`nvm reinstall-packages 16.20.0` 将 16.20.0 版本的全局包迁移到当前版本。 + +### 权限问题 +如果在 Linux/macOS 上遇到权限错误,请使用 `sudo`: +```bash +sudo npm i -g opencode-ai +``` + +### 网络问题 +如果下载速度慢,可以尝试使用镜像源: +```bash +npm config set registry https://registry.npmmirror.com +npm i -g opencode-ai +``` + +## 验证安装 + +安装完成后,运行以下命令验证: +```bash +opencode --version +``` + +如果显示版本号,则表示安装成功。 diff --git a/source/_posts/Windows-Server.md b/source/_posts/Windows-Server.md index 0025976..7ab4edb 100644 --- a/source/_posts/Windows-Server.md +++ b/source/_posts/Windows-Server.md @@ -513,6 +513,42 @@ setx /M npm_config_cache D:\packages\npm robocopy %AppData%\npm-cache D:\packages\npm /E ``` +#### nvm 用户配置全局包安装位置 + +使用 nvm (Node Version Manager) 管理 Node.js 版本时,每个版本有独立的全局包目录。为避免切换版本后全局包不可用,可将全局包目录配置到固定位置: + +```powershell +# 1. 创建全局包目录 +mkdir D:\packages\npm-global + +# 2. 配置 npm 使用新目录作为 prefix +npm config set prefix D:\packages\npm-global + +# 3. 添加到 PATH 环境变量 +setx /M PATH "%PATH%;D:\packages\npm-global" + +# 4. 验证配置 +npm config get prefix +npm config get cache +``` + +**配置说明:** +- `prefix`:全局包安装目录,`npm install -g` 的包会安装到此目录下的 `node_modules` 子目录 +- `cache`:npm 缓存目录,存放下载的包压缩包 +- 配置后所有 Node.js 版本共享同一套全局包,切换版本无需重新安装 + +**验证全局包目录:** +```powershell +# 查看当前 prefix 配置 +npm config get prefix + +# 查看全局包列表 +npm list -g --depth=0 + +# 测试安装全局包 +npm install -g opencode-ai +``` + ### NuGet (.NET) ```powershell @@ -586,6 +622,9 @@ robocopy %USERPROFILE%\.gradle D:\packages\gradle /E # npm 缓存目录 npm config get cache +# npm 全局包安装目录(prefix) +npm config get prefix + # yarn 缓存目录 yarn cache dir @@ -735,6 +774,72 @@ cmd /c dir "C:\Users\你的用户名" /AL - **WSL 兼容性:** 可从 WSL 访问开发驱动器上的文件,但不会有性能提升。ReFS 不支持 WSL metadata 装载选项。 +## 扩容开发驱动器 + +当开发驱动器空间不足时,可以通过以下步骤扩容 VHD 类型的开发驱动器。 + +### 步骤一:扩展 VHD 文件大小 + +以管理员身份打开 PowerShell,使用 `Resize-VHD` 命令扩展 VHD 文件: + +```powershell +# 扩展 VHD 文件到 60GB(根据实际需求调整大小) +Resize-VHD -Path 'E:\DevDrives\SourceCode.vhdx' -SizeBytes 60GB +``` + +> **注意:** 将路径和大小替换为实际的 VHD 文件路径和目标大小。`SizeBytes` 参数指定的是最终大小,不是增加量。 + +### 步骤二:挂载 VHD 并扩展分区 + +以管理员身份打开命令提示符,使用 diskpart 工具: + +```cmd +# 启动 diskpart +diskpart + +# 选择 VHD 文件 +select vdisk file="E:\DevDrives\SourceCode.vhdx" + +# 挂载 VHD +attach vdisk + +# 查看磁盘列表,找到 VHD 对应的磁盘编号 +list disk + +# 选择 VHD 磁盘(替换 X 为实际磁盘编号) +select disk X + +# 查看分区列表 +list partition + +# 选择 Dev Drive 分区(替换 Y 为实际分区编号) +select partition Y + +# 扩展分区,使用所有未分配空间 +extend + +# 退出 diskpart +exit +``` + +![image-20260604112051119](https://rustfs.wenyongdalucky.club:443/hexo/image-20260604112051119.png) + +### 步骤三:验证扩容结果 + +```powershell +# 检查 VHD 信息 +Get-VHD -Path 'E:\DevDrives\SourceCode.vhdx' + +# 或在文件资源管理器中查看驱动器属性 +``` + +### 注意事项 + +- 扩容操作不会丢失数据,但建议提前备份重要文件 +- VHD 必须处于**分离(detach)状态**才能调整大小,如果已挂载需先分离 +- 扩展分区时,未分配空间必须紧邻目标分区(右侧) +- 如果未分配空间不在目标分区右侧,可能需要使用第三方分区工具调整 + ## 删除开发驱动器 1. **设置 > 系统 > 存储 > 磁盘和卷**