Scoop
Windows Scoop 的安装、应用与 bucket 管理、已保留版本切换,以及 JSON 清单备份恢复。
Scoop
Scoop 是 Windows 命令行应用安装器。本篇负责安装、更新、切换已保留版本与恢复应用清单;安装路径迁移单独见 更改 Scoop 默认安装位置。
[!info] related notes
- 更改 Scoop 默认安装位置
- 7-Zip:安装后按 manifest 指引注册右键菜单。
- 使用 Scoop 安装 Node
- 使用 Scoop 安装 Java
- 使用 Scoop 安装 Go
基本模型
- Bucket:保存应用 JSON manifest 的仓库。
- Manifest:定义下载来源、哈希、安装步骤、依赖与持久化目录。
- Shim:在 PATH 中提供命令入口,指向实际程序。
- Persist:应用更新或普通卸载时保留的数据;并不涵盖程序在其他位置写入的所有配置。
默认安装到用户目录,一般不需要管理员权限;全局安装或个别安装器可能需要。Scoop 能处理便携软件,也支持部分传统安装器,不能把所有应用都当作完全免安装的软件。
安装
使用普通 Windows PowerShell 终端,按官方安装入口执行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
scoop --version
scoop help
默认根目录为 C:\Users\user\scoop。自定义安装应在安装前配置,具体参数见 ScoopInstaller/Install;不要把克隆 Scoop 主仓库后执行不存在的根目录 install.ps1 当成安装方法。
常用操作
scoop search git
scoop info git
scoop bucket add extras
scoop install git 7zip
scoop install extras/vscode
scoop list
scoop prefix 7zip
scoop update # 更新 Scoop 与 bucket
scoop status # 查看可更新应用
scoop update git
scoop update * # 更新全部应用
scoop uninstall git # 普通卸载
卸载选项 -p/--purge 会移除持久化数据;-g/--global 表示全局安装,不是“所有版本”。scoop uninstall -a 不是卸载所有应用的命令。
Bucket
scoop bucket list # 已添加的 bucket
scoop bucket known # 已知 bucket 名称与来源
scoop bucket add versions
scoop bucket add java
scoop bucket add nerd-fonts
scoop bucket rm extras
包名与 bucket 会调整,应先 scoop search 再安装。旧文中的固定字体包名、镜像地址与应用数量不作为当前目录的保证。
版本与命令冲突
scoop list 显示已安装应用及当前版本,不是远端所有可用版本列表。scoop reset app 重建当前版本链接和命令入口,用于解决冲突;它不会等同于清空应用配置。
scoop reset git
# 仅当该版本已经安装且尚未被 cleanup 删除时才可切换:
scoop reset git@2.40.0
安装旧版本取决于可用 manifest、下载地址和兼容性,不能用重复 scoop install app@版本 保证任意版本同时可用。频繁切换 Node.js 版本时,可评估 Node 安装笔记中的版本管理方案。
缓存与旧版本
scoop cache show
scoop cache rm git # 删除 git 下载缓存
scoop cache rm * # 删除全部下载缓存
scoop cleanup git # 删除 git 的旧安装版本
scoop cleanup * # 清理全部应用的旧安装版本
scoop checkup
cleanup 清的是旧安装版本,不只是已卸载应用;清理后不能再直接 reset 到那些版本。cleanup -g 针对全局安装,不是预览或只读模式。
配置与下载
当前默认配置文件为 ~\.config\scoop\config.json;优先使用 scoop config 查询和修改,而不是复制旧笔记中的整份示例配置。
scoop config
scoop config proxy 127.0.x.x:1080 # 示例地址,按实际代理配置
scoop config rm proxy
scoop config cache_path D:\scoop-cache
scoop install aria2
scoop config aria2-enabled true
aria2 可用于多连接下载,效果取决于下载源与网络。配置键是 cache_path,删除配置使用 scoop config rm <name>。
备份与恢复
scoop export > scoopfile.json
# 可选:一并导出 Scoop 配置
scoop export --config > scoopfile-with-config.json
# 在已安装 Scoop 的目标机器恢复
scoop import scoopfile.json
导出的是包含应用、bucket 及可选配置的 JSON 清单,不是安装文件、依赖二进制或完整用户数据备份。导入通常仍需下载,不能据此承诺离线恢复;应用数据与其他位置的配置应另行备份。导出配置前检查是否包含不应共享的代理等信息。
排障与快捷函数
找不到 scoop 时先检查实际安装根目录、shims 的 PATH 和当前终端会话。找不到应用命令时用 scoop list、scoop prefix app、scoop checkup 定位,再按需 scoop reset app。旧文的 scoop diagnose 不属于这里核对过的命令集。
PowerShell 的 Set-Alias 不能把 scoop install 这样的“命令加参数”整体变成别名;需要转发参数的快捷入口应写成函数:
# 放入 $PROFILE
function ss { scoop search @args }
function si { scoop install @args }
function sl { scoop list @args }
function sup { scoop update @args }
自定义 shim 的语法是 scoop shim add <名称> <程序路径>,它不是桌面快捷方式命令。多数应用的 shim 由 manifest 安装过程管理。
核对依据
2026-10-06 对照了 官方 README 与 libexec 命令源码中的 uninstall、list、reset、config、cache、cleanup、export、import、bucket、shim、checkup、prefix。当前执行环境是 Linux,未实际运行 Windows 安装、卸载或注册表操作。
学习检查:
export/import恢复的是哪些内容,哪些内容不在清单中?reset、cleanup、uninstall --purge对版本与数据的影响分别是什么?- 为什么给带参数的 Scoop 命令建立快捷入口时需要 PowerShell 函数?