如果你厌倦了每次重装系统后一个个手动下载软件,或者苦于 C 盘被各种开发工具塞满,Scoop 可能就是你在找的解决方案。
为什么选择 Scoop
在 Windows 平台上,包管理器主要有三个选择:Chocolatey、Winget 和 Scoop。它们各有侧重,而 Scoop 的独特之处在于它遵循 用户级、便携式 的安装哲学。
与 Chocolatey 和 Winget 不同,Scoop 默认将软件安装在用户目录下,不需要管理员权限,也不会频繁弹出 UAC 提示。安装后的软件以“便携模式”运行,不深度写入注册表,卸载时也更干净。对于开发者来说,Scoop 尤其适合管理 Git、Python、Node.js、ffmpeg 这类命令行工具链。
代价是 Scoop 的软件包数量相对较少,且主要面向开发工具和绿色软件。但如果你日常使用的工具以 CLI 和开发环境为主,Scoop 的体验会非常顺手。
安装 Scoop 到 D 盘
默认情况下,Scoop 会安装到 C:\Users\<用户名>\scoop。如果你希望把 Scoop 以及它管理的所有软件都放在 D 盘,有两种方式。
方式一:通过环境变量指定(传统方式)
在 PowerShell 中先设置环境变量,再执行安装脚本:
# 设置 Scoop 主目录(应用默认装这里)
$env:SCOOP='D:\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
# 执行安装
irm get.scoop.sh | iex
这种方式不需要下载脚本文件,直接在线执行即可。如果你还想把全局应用(scoop install -g)也放到 D 盘,可以额外设置 SCOOP_GLOBAL,但注意全局路径需要管理员权限。
方式二:通过安装脚本参数指定(推荐)
官方安装脚本支持 -ScoopDir 参数,更直观:
# 1. 下载安装脚本到当前目录
irm get.scoop.sh -outfile 'install.ps1'
# 2. 执行脚本,并指定安装目录
.\install.ps1 -ScoopDir 'D:\Scoop' -ScoopGlobalDir 'D:\ScoopGlobal'
注意事项:Scoop 必须在 非管理员权限 的 PowerShell 中安装。如果遇到脚本无法运行的报错,先执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 放开当前用户的脚本执行限制。
重装系统后恢复 D:\Scoop
这是 Scoop 最让人安心的特性之一:只要 D 盘的 Scoop 文件夹还在,重装系统后只需几条命令就能把整个开发环境“接回来”。
Scoop 的软件本体和配置都存储在 D:\Scoop 目录内,不依赖系统注册表。重装系统后,新系统暂时不知道这些软件的存在,需要手动“激活”。
恢复步骤
在 PowerShell 中依次执行:
# 1. 设置 SCOOP 环境变量,指向 D 盘
[Environment]::SetEnvironmentVariable('SCOOP', 'D:\Scoop', 'User')
# 2. 把 Scoop 的 shims 目录加入 PATH
$oldPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
$newPath = $oldPath + ';D:\Scoop\shims'
[Environment]::SetEnvironmentVariable('PATH', $newPath, 'User')
# 3. 重启 PowerShell,让环境变量生效
# 然后在新的 PowerShell 窗口中执行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
scoop config ROOT_PATH 'D:\Scoop'
scoop reset *
scoop reset * 是核心命令,它会重建所有应用的 shim(命令入口)、快捷方式和环境变量。执行完毕后关闭并重新打开 PowerShell,你的 Git、Node、Python 等命令应该都能正常使用了。
可能遇到的情况:如果个别应用报 isn't installed,说明该应用在 D 盘已无有效安装记录,重新 scoop install 即可。scoop reset * 也会重新设置 JAVA_HOME、GIT_INSTALL_ROOT 等环境变量,如果你装了多个 JDK,最后被 reset 的那个会成为默认版本。
优化:Scoop 特供优化版
原版 Scoop 在国内使用时,GitHub 下载慢是常见问题。xrgzs 的 Scoop 特供优化版 针对这一点做了专门优化。
项目地址:https://github.com/xrgzs/scoop
主要改进包括:自动判断并替换下载链接为国内源(基于 ISP 检测)、scoop search 时优先调用 scoop-search 提速、scoop update 不使用 git pull 避免冲突,以及安装脚本自动配置好 7zip、git、aria2 等环境。
安装后建议配置两项:
# 关闭 URL 替换(如果遇到下载校验错误时启用)
scoop config URL_REPLACE false
# 配置 GitHub 代理,加速国内下载
scoop config GH_PROXY ghfast.top
如果你想直接使用优化版安装,可以执行:
iex "& { $(irm c.xrgzs.top/c/scoop) } -ScoopDir 'D:\Scoop' -ScoopGlobalDir 'D:\ScoopGlobal'"
日常使用:常用命令速查
Scoop 的命令风格接近 Linux 包管理器,上手很快。以下按场景整理最常用的命令。
搜索与安装
scoop search <appname> # 搜索应用
scoop install <appname> # 安装应用
scoop install -g <appname> # 全局安装(需管理员权限)
scoop install <appname>@<version> # 安装指定版本(需 versions bucket)
scoop info <appname> # 查看应用信息
更新与维护
scoop update * # 更新 Scoop 自身 + 所有 bucket + 所有应用
scoop update <appname> # 更新指定应用
scoop cleanup * # 清理旧版本,释放磁盘空间
scoop cleanup --cache --all # 同时清理旧版本和下载缓存
scoop cache rm * # 清理下载缓存
scoop reset * # 重置所有应用(修复快捷方式/环境变量)
查看与管理
scoop list # 列出已安装应用
scoop bucket list # 查看 bucket 列表
scoop bucket add <bucketname> # 添加 bucket(extras / versions / java / nerd-fonts)
scoop status # 查看哪些应用有可用更新
备份与恢复
scoop export > scoop-backup.json # 导出所有应用、bucket 和配置
scoop import scoop-backup.json # 从 JSON 文件恢复全部环境
scop export 生成的 JSON 文件建议纳入云盘同步,换机时 scoop import 即可一键还原。
配置
scoop config proxy http://proxy.example.com:8080 # 设置下载代理
scoop config aria2-enabled true # 启用 aria2 加速下载
scoop config cache_path 'D:\Scoop\cache' # 设置下载缓存目录
值得关注的 Bucket
Bucket 是 Scoop 的软件仓库。除了默认的 main,以下几个值得添加:
- extras:包含不符合 main 标准的应用,覆盖范围最广
- versions:用于安装不同版本的软件,支持版本切换
- java:JDK 和 JRE
- nerd-fonts:开发常用字体
- sdoog(xrgzs 优化版自带):针对国内环境优化的软件集合
scoop bucket add extras
scoop bucket add versions
scoop bucket add java
scoop bucket add nerd-fonts
总结
Scoop 的核心价值在于 用户级、便携式、可恢复。它把软件管理从“系统级安装”变成了“文件级管理”,让你对开发环境有完全的控制权。配合 D 盘安装策略和 scoop export 备份,你几乎可以在任何一台新电脑上,几分钟内还原出一模一样的开发环境。
对于追求环境整洁、经常折腾系统的开发者来说,Scoop 值得花一点时间上手。
原文 https://blog.csdn.net/2301_79518550/article/details/166647283