尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

OmniRoute 完整卸载指南:保留数据与彻底清除的实操方案

OmniRoute 完整卸载指南:保留数据与彻底清除的实操方案 OmniRoute 完整卸载指南保留数据与彻底清除的实操方案【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 352 providers (150 free), 1200 models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline Copilot. Quota-aware auto-fallback, RTKCaveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550 contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute本文是一份面向 OmniRoute 用户的完整卸载与数据清理指南覆盖内置卸载脚本、NPM/pnpm 全局安装、Docker 与 Docker Compose、Electron 桌面应用以及源码安装等全部部署形态的移除方法。读完本文你将掌握npm run uninstall与npm run uninstall:full两种内置卸载方式的本质区别、OmniRoute 在各平台的数据目录与文件清单、卸载后残留验证与进程清理技巧并能根据是否保留配置决定最安全的卸载路径。一、卸载前的决策保留数据还是彻底清除OmniRoute 的卸载方案围绕一个核心问题展开是否需要保留~/.omniroute/中的数据。该目录存放着主数据库、提供商配置、API Key、Combo 组合、调用日志与备份文件是判断轻量卸载与彻底清除的分水岭。卸载目标推荐命令数据去向暂时卸载、日后重装并恢复原配置npm run uninstall完整保留在~/.omniroute/彻底移除应用与全部数据不可逆npm run uninstall:full永久删除如果你只是排障或升级失败需要重装选择前者如果确定不再使用、或需要移交机器时清除敏感凭据务必选择后者。二、快速卸载v3.6.2 内置脚本自 v3.6.2 起OmniRoute 在 package.json 中内置了两个卸载脚本二者都由同一份实现驱动见下节源码分析# 保留数据仅移除应用 npm run uninstall该命令会移除 OmniRoute 应用本体但保留数据库、配置、API Key 与提供商设置在~/.omniroute/中——适合计划稍后重装并希望保留现有设置的用户。# 完整移除永久擦除所有数据 npm run uninstall:full该命令在移除应用的同时会永久擦除以下全部内容主数据库storage.sqlite提供商配置与 API Key备份文件日志文件~/.omniroute/目录下的所有文件⚠️警告npm run uninstall:full不可逆。所有提供商连接、Combo 组合、API Key 与用量历史将被永久删除请在执行前确认已无保留价值。2.1 内置卸载脚本的源码原理两条命令最终都调用 scripts/build/uninstall.mjs通过--full参数区分模式uninstall:full: node scripts/build/uninstall.mjs --full。从源码看脚本的执行流程分三步停止后台进程优先执行pm2 delete omniroute清理可能以 PM2 常驻的后台守护进程即使 PM2 未安装或进程不存在也会静默跳过execSync的异常被捕获忽略。数据目录处理数据目录通过process.env.DATA_DIR || path.join(os.homedir(), .omniroute)解析。仅在--full模式下用fs.rmSync(dataDir, { recursive: true, force: true })递归删除整个数据目录非 full 模式则打印保留数据提示后跳过删除。全局包移除以OMNIROUTE_SKIP_UNINSTALL_HOOK1环境变量调用npm uninstall -g omniroute防止卸载钩子递归触发。失败时会提示可能需要sudo权限重试。值得注意的细节是脚本开头的防重入保护当环境变量OMNIROUTE_SKIP_UNINSTALL_HOOK1或npm_lifecycle_event uninstall时会跳过嵌套的npm uninstall命令避免卸载过程自循环。三、手动卸载各部署形态当内置脚本不可用如版本低于 v3.6.2、或安装方式特殊时可按部署形态手动卸载。3.1 NPM 全局安装# 移除全局包 npm uninstall -g omniroute # 可选删除数据目录 rm -rf ~/.omniroute3.2 pnpm 全局安装pnpm uninstall -g omniroute rm -rf ~/.omniroute3.3 Docker# 停止并删除容器 docker stop omniroute docker rm omniroute # 删除数据卷会删除全部数据 docker volume rm omniroute-data # 可选删除镜像 docker rmi diegosouzapw/omniroute:latest3.4 Docker Compose# 停止并删除容器 docker compose down # 同时删除数据卷会删除全部数据 docker compose down -v关于 Docker 数据路径仓库 docker-compose.yml 中同时存在两种卷挂载形态一种是./data:/app/data的本机目录挂载另一种是命名卷挂载。无论哪种方式容器内都通过DATA_DIR/app/data环境变量指向数据目录因此删除卷是清除 Docker 部署数据的唯一可靠途径。3.5 Electron 桌面应用Windows打开设置 → 应用 → OmniRoute → 卸载或从安装目录运行 NSIS 卸载程序macOS将OmniRoute.app从/Applications拖入废纸篓删除数据rm -rf ~/Library/Application Support/omnirouteLinux删除 AppImage 文件删除数据rm -rf ~/.omniroute3.6 源码安装git clone# 删除克隆的目录 rm -rf /path/to/omniroute # 可选删除数据目录 rm -rf ~/.omniroute四、数据目录位置与内容清单OmniRoute 各平台默认数据目录如下平台默认路径覆盖方式Linux~/.omniroute/DATA_DIR环境变量macOS~/.omniroute/DATA_DIR环境变量Windows%APPDATA%/omniroute/DATA_DIR环境变量Docker/app/data/挂载卷DATA_DIR环境变量XDG 兼容$XDG_CONFIG_HOME/omniroute/XDG_CONFIG_HOME环境变量4.1 数据目录解析的源码实现数据目录的解析逻辑集中在 src/lib/dataPaths.ts卸载时删除哪个目录、运行时应防误删都源于这段实现解析优先级resolveDataDir()首先检查DATA_DIR环境变量未设置时回退到getDefaultDataDir()Windows 特判在 Windows 上优先返回%APPDATA%/omniroute即AppData\Roaming若旧路径~/.omniroute已存在则保留旧路径以避免升级导致数据丢失XDG 支持Linux/macOS 下当显式配置XDG_CONFIG_HOME时数据目录变为$XDG_CONFIG_HOME/omniroute可写性兜底resolveWritableDataDir()会在配置的DATA_DIR不可写EACCES/EPERM时回退到默认用户目录保证应用不因错误路径崩溃——这也意味着手工删除数据目录后重新安装应用会自动重建。主数据库路径则在 src/lib/db/core.ts 中由DATA_DIR派生path.join(DATA_DIR, storage.sqlite)同目录还包含db.json与db_backups目录。备份逻辑位于 src/lib/db/backup.ts其备份目录解析为DB_BACKUPS_DIR || path.join(DATA_DIR, db_backups)写入前会mkdirSync(..., { recursive: true })自动创建。4.2 数据目录中的文件文件/目录说明storage.sqlite主数据库提供商、Combo、设置、Keystorage.sqlite-walSQLite 预写日志临时文件storage.sqlite-shmSQLite 共享内存临时文件call_logs/请求负载存档backups/自动数据库备份log.txt旧版请求日志可选源码中call_logs同时以 SQLite 表见 src/lib/db/cleanup/usagePurge.ts 的DELETE FROM call_logs清理逻辑与请求负载存档目录两种形态存在卸载时都应一并清除。五、卸载后验证与残留清理完成卸载后建议按以下步骤确认系统已清理干净# 检查全局 npm 包是否仍存在 npm list -g omniroute 2/dev/null # 检查数据目录 ls -la ~/.omniroute/ 2/dev/null # 检查是否有残留进程 pgrep -f omniroute如果仍有进程在运行强制停止pkill -f omniroute六、卸载前的重要提示备份优先如果只是临时卸载但尚未决定是否彻底清除建议先执行npm run uninstall保留数据模式必要时手动将~/.omniroute/整体拷贝到外部介质再决定是否执行uninstall:full凭据敏感storage.sqlite中保存着 API Key 等明文凭据转让或丢弃机器前应执行完整卸载并额外检查%APPDATA%/omniroute/Windows与~/Library/Application Support/omniroutemacOS等所有数据落盘位置日志与缓存若追求彻底清理还应检查call_logs/请求存档与backups/自动备份是否已随数据目录一并移除从源码看backups/db_backups会在每次写入前自动创建目录因此删除后不会残留空壳目录。【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 352 providers (150 free), 1200 models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline Copilot. Quota-aware auto-fallback, RTKCaveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550 contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表