这篇文章写给谁看? ✍️
• 所有 Windows 用户,特别是:
• 经常需要安装、配置开发工具的开发者、程序员 。
• 厌倦了每次重装系统都要手动下载、安装、点“下一步”的每一个人 。
• 希望电脑保持干净整洁,告别混乱的安装目录和注册表残留的效率追求者 ✨。
• 无论是电脑小白还是老司机,都能轻松上手!
• 为了方便复制代码,可以前往 https://www.wangwangit.com
预计阅读+实践时间: ⏱️ 30-60 分钟 (取决于你的网络速度和想安装的软件数量)
还记得吗?每次重装 Windows 系统后,那令人头秃的软件安装环节:打开浏览器,搜索、下载 JDK、Node.js、Python、Git、VS Code、MySQL、Redis... 每个软件都要经历“寻找官网 -> 下载 -> 双击安装包 -> 无脑点下一步(还得小心捆绑软件!) -> 配置环境变量”的漫长旅程。一套操作下来,半天时间就没了,耐心也耗尽了。更别提各种依赖冲突、环境变量配置错误、软件卸载不干净留下的系统“垃圾”... 简直是噩梦!
如果你对上述场景感同身受,那么恭喜你,找到了解放自己的钥匙! 今天,我要向你隆重介绍一款 Windows 下的命令行包管理神器 —— Scoop。它就像一个专门为开发者和效率爱好者准备的“应用商店”,能让你用几行简单的命令,就闪电般地安装、更新、管理你需要的各种(尤其是命令行)工具和软件。从此,环境搭建不再是痛苦,而是几分钟就能搞定的轻松事!
看看我用 Scoop 配置好环境后的样子,是不是清爽又高效?
️ 准备工作:磨刀不误砍柴工
在开始之前,请确保你满足以下条件:
• 操作系统: Windows 10 或 Windows 11(Windows 7 SP1+ 理论上也支持,但更推荐新版本)。
• PowerShell: 版本 5.1 或更高版本。Windows 10/11 通常自带。
• .NET Framework: 4.5 或更高版本 (通常新版 Windows 已满足)。
• 网络连接: 稳定且能访问 GitHub (Scoop 的核心依赖)。
• 管理员权限: 虽然 Scoop 的核心理念是非管理员权限安装,但在首次设置 PowerShell 执行策略或进行全局安装时可能需要。建议首次操作时,以管理员身份运行 PowerShell。
• 基本命令行知识: 别担心!如果你是新手,只需跟着步骤复制粘贴命令即可。我会解释每一步的作用。
• 网络环境: 全程代理网络。如果你在国内网络环境下遇到困难(如下载慢、连接失败),可能需要配置代理或使用其他网络优化方法。文末会提供一些解决方案思路。
Scoop 本身就是一个需要被“安装”的工具。
1. 打开 PowerShell:
• 按下 Win + X
快捷键,在菜单中选择 “Windows PowerShell (管理员)” 或 “终端 (管理员)”。建议首次使用管理员权限,以确保后续步骤顺利。
2. 设置执行策略:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
• 按下回车。如果系统询问是否更改执行策略,输入 Y
并回车确认。
• 小科普:
• Set-ExecutionPolicy
: 这是设置 PowerShell 执行策略的命令。
• RemoteSigned
: 这是一种安全策略,允许运行本地创建的脚本,对于从网络下载的脚本,则要求它们具有可信发布者的数字签名。这比 Unrestricted
(允许所有脚本)更安全。
• -Scope CurrentUser
: 表示这个设置仅对当前登录的用户生效,通常不需要管理员权限(但首次设置可能需要确认),也更安全。
3. 执行安装命令:
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
# 或者使用别名更简洁的版本 (iwr = Invoke-RestMethod, iex = Invoke-Expression)
# iwr -useb get.scoop.sh | iex
• 小科普:
• Invoke-RestMethod
(或 iwr
): 从指定的 URL (https://get.scoop.sh
) 下载内容(这里是安装脚本)。
• |
(管道符): 将前一个命令的输出(下载的脚本内容)传递给后一个命令。
• Invoke-Expression
(或 iex
): 执行接收到的字符串内容(也就是运行安装脚本)。
• 网络问题提示: 如果这条命令因为网络问题(如无法连接 GitHub)失败,请参考文末的“常见问题解决”。
4. 预期结果:
• 等待脚本执行完毕。如果一切顺利,你会在 PowerShell 窗口看到类似 "Scoop was installed successfully!" 的成功信息。
• 默认情况下,Scoop 会安装在你的用户目录下:C:\Users\你的用户名\scoop
。
5. (可选) 修改默认安装路径:
D:\Apps\Scoop
): # 1. 设置 Scoop 的安装目录环境变量
$env:SCOOP='D:\Apps\Scoop'
# 2. 将这个环境变量永久写入用户配置 (下次打开 PowerShell 依然有效)
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
# 3. (可选) 设置全局安装路径 (如果需要全局安装软件)
# $env:SCOOP_GLOBAL='D:\GlobalApps'
# [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine') # Machine 级别需要管理员权限
• 设置完路径后,再执行上面的第 3 步安装命令。
Scoop 使用 "Bucket"(桶)来管理软件包列表,每个 Bucket 就是一个 Git 仓库,里面包含了软件的安装信息(称为 Manifest,清单文件)。默认只有 main
Bucket,主要包含常用的命令行工具。我们需要添加更多 Buckets 来发现和安装更多软件。
1. 验证 Scoop:
2. 添加常用 Bucket:
extras
Bucket 包含了大量流行的 GUI 软件和非 main
Bucket 的常用工具。强烈建议添加: scoop bucket add extras
• 提示: 添加 Bucket 需要从 GitHub 克隆仓库,如果网络慢请耐心等待。如果失败,检查网络或代理设置。
• 重要: Scoop 依赖 git
来管理 Buckets。如果你的系统没有安装 git
,Scoop 在添加第一个 Bucket 时通常会提示并自动尝试安装。你也可以手动安装:scoop install git
。
3. 添加其他常用 Buckets (可选):
• 根据你的需要,可以添加更多社区维护的 Buckets。例如:
• 安装各种 Java 版本:scoop bucket add java
• 安装 Nerd Fonts (美化终端字体):scoop bucket add nerd-fonts
• 安装特定旧版本的软件:scoop bucket add versions
• 安装非便携应用 (需要特殊处理):scoop bucket add nonportable
(安装里面的软件可能需要管理员权限)
• 去哪里找更多 Buckets?
• 官方维护的 Bucket 列表:https://github.com/ScoopInstaller
• 社区维护的已知 Buckets 列表:可以在网上搜索 "known scoop buckets" 或 查看 这个非官方索引 (但请注意,首选官方或广泛使用的 Bucket)。
4. 注意事项:
• 添加 Bucket 时需要良好的网络连接。
• 如果命令出错,请检查 Bucket 名称是否拼写正确。
• 有时网络波动会导致添加失败,重试一次可能就好了。
激动人心的时刻到了!现在你可以像逛超市一样,用简单的命令安装软件了。
1. 搜索软件:
2. 安装单个软件:
install
命令安装。 # 安装 OpenJDK (来自 java bucket)
scoop install openjdk
# 安装 Git (来自 main bucket)
scoop install git
# 安装 7zip (来自 main bucket)
scoop install 7zip
# 安装 VS Code (来自 extras bucket)
scoop install vscode
3. 一次安装多个软件:
scoop install nodejs python mysql nginx putty everything powertoys
4. (可选) 全局安装:
• 默认情况下,Scoop 安装的软件只对当前用户可用,并且安装在用户目录下的 scoop
文件夹中(如 C:\Users\你的用户名\scoop\apps
)。这通常不需要管理员权限,也更干净、便携。
-g
或 --global
参数。这需要管理员权限运行 PowerShell,并且软件会被安装到全局路径(默认为 C:\ProgramData\scoop
,或你通过 $env:SCOOP_GLOBAL
指定的路径)。 # 全局安装 OpenJDK (需要管理员权限运行 PowerShell)
scoop install openjdk --global
• 建议: 除非你明确知道需要全局安装,否则优先使用默认的用户模式安装,这更能体现 Scoop 的优势。
5. 预期结果:
• Scoop 会自动下载软件包、解压、处理依赖,并将可执行文件通过 "shim" 机制添加到你的 PATH
中。安装完成后,你通常可以直接在新的 PowerShell 或 CMD 窗口中使用该软件的命令。
• 例如,安装 openjdk
后,打开一个新的 PowerShell 窗口,输入 java -version
,应该能看到 Java 的版本信息。
6. Scoop 的魔法:Shim 是什么?
• Scoop 的一个核心优势是不污染系统的 PATH
环境变量。它怎么做到的?答案是 "Shim" (垫片)。
• 当你安装一个软件(比如 git
)后,Scoop 不会把 git.exe
所在的整个目录加到系统 PATH
。它只做一件事:在 ~/scoop/shims
目录下(这个目录在安装 Scoop 时会被自动添加到用户 PATH
中)创建一个名为 git.exe
的极小的可执行文件 (shim)。
• 当你运行 git
命令时,系统在 PATH
里找到了 ~/scoop/shims/git.exe
。这个 shim 文件知道真正 git.exe
的位置(比如在 ~/scoop/apps/git/current/bin/git.exe
),然后它会启动真正的 git.exe
。
• 这样做的好处是:你的 PATH
变量非常干净,只增加了一个 shims
目录。卸载软件时,只需删除对应的 shim 和软件目录,对系统几乎没有影响。对于 GUI 程序,Scoop 会在开始菜单创建一个 "Scoop Apps" 文件夹存放快捷方式。
安装只是开始,Scoop 还能帮你轻松管理已安装的软件。
1. 检查更新:
# 检查 Scoop 自身和所有 Buckets 的更新,并列出可更新的软件
scoop status
# 或者直接更新 Scoop 自身和 Buckets 的信息
scoop update
• scoop update
首先会更新 Scoop 自身和所有已添加的 Bucket(相当于对每个 Bucket 的 Git 仓库执行 git pull
),获取最新的软件包清单。
2. 更新所有软件:
scoop update *
3. 更新指定软件:
scoop update <软件名>
# 例如: 更新 nodejs
scoop update nodejs
4. 查看已安装列表:
scoop list
5. 卸载软件:
scoop uninstall <软件名>
# 例如: 卸载 mysql
scoop uninstall mysql
• Scoop 会删除软件文件和对应的 shim/快捷方式,非常彻底。
6. 查看软件信息:
scoop info <软件名>
# 例如: 查看 git 的信息
scoop info git
7. 回退到旧版本:
# 先查看可用版本
scoop info <软件名>
# 回退到指定版本 (例如回退 git 到 2.30.0.windows.1)
scoop reset <软件名>@<版本号>
scoop reset git@2.30.0.windows.1
8. 其他常用命令:
• scoop cleanup *
: 清理所有软件的旧版本,释放磁盘空间。
• scoop cache rm *
: 清除下载缓存。
• scoop home <软件名>
: 在浏览器中打开软件的官方主页。
• scoop which <命令名>
: 显示某个命令对应的可执行文件的实际路径 (类似 Linux 的 which
)。
• 原因分析:
• 国内访问 GitHub 网络不稳定。
• 公司或学校网络限制。
• 系统代理设置未被 PowerShell 正确识别。
• 解决方案:
1. 检查网络: 确保你的基本网络连接是通的。
# 设置代理 (将 'http://代理服务器地址:端口' 替换为你的实际代理)
scoop config proxy http://代理服务器地址:端口
# 查看当前代理设置
scoop config proxy
# 取消代理
scoop config proxy none
注意:这只为 Scoop 设置代理,不影响系统其他应用。3. 使用网络加速工具: 尝试使用 Watt Toolkit (原 Steam++) 或其他类似工具进行 GitHub 加速。
4. 手动下载安装脚本:
• 在浏览器中访问 https://get.scoop.sh
。
• 将页面内容完整复制并保存为一个名为 install.ps1
的文件(例如保存在桌面)。
• 在 PowerShell 中,切换到该文件所在的目录(例如 cd ~/Desktop
),然后运行:.\install.ps1
(注意前面的 .\
)。如果之前修改了安装路径的环境变量,这里也需要先设置好。
5. 更换 DNS: 尝试将系统的 DNS 服务器更换为更可靠的公共 DNS,如 1.1.1.1
(Cloudflare) 或 8.8.8.8
(Google)。
• 原因分析:
• ~/scoop/shims
目录没有被正确添加到系统的 PATH 环境变量中。
• 你没有重新打开一个新的 PowerShell 或 CMD 窗口(环境变量更改通常需要新会话才能生效)。
• 安装的是 GUI 程序,它可能没有提供命令行接口。
• 极少数情况下,shim 创建失败。
• 解决方案:
1. 重启终端: 最常见的原因! 关闭当前的 PowerShell/CMD 窗口,然后重新打开一个新的窗口再试。
2. 检查 PATH 环境变量:
• 在 PowerShell 中输入 $env:Path
查看当前 PATH。确认其中是否包含类似 C:\Users\你的用户名\scoop\shims
的路径。
• 如果没有,尝试运行 scoop fix path
看是否能自动修复。
• 如果还不行,可能需要手动添加:右键“此电脑” -> 属性 -> 高级系统设置 -> 环境变量 -> 在“用户变量”或“系统变量”中找到 Path
-> 编辑 -> 新建 -> 添加 C:\Users\你的用户名\scoop\shims
(请替换为你的实际路径) -> 一路确定。然后重启终端。
3. 确认安装: 使用 scoop list
确认软件是否真的安装成功了。
4. 检查软件类型: 确认你安装的是命令行工具还是纯 GUI 应用。GUI 应用通常通过开始菜单的 "Scoop Apps" 文件夹启动。
5. 检查 Shim: 使用 scoop which <命令名>
看看是否能找到对应的 shim 文件。
Set-ExecutionPolicy
时出错或无效?• 原因分析:
• 权限不足 (尤其是在尝试更改 LocalMachine
范围时)。
• 组策略限制 (在企业环境中常见)。
• 解决方案:
1. 使用管理员权限: 确保你是以管理员身份运行 PowerShell。
2. 检查作用域: 确认你使用的是 -Scope CurrentUser
。更改 LocalMachine
作用域通常需要更高的权限,并且会影响所有用户。
3. 检查组策略: 如果你在公司电脑上,可能需要联系 IT 管理员,确认是否有组策略限制了执行策略的更改。
4. 了解策略级别: PowerShell 执行策略有多个作用域(MachinePolicy, UserPolicy, Process, CurrentUser, LocalMachine),它们有优先级。可以使用 Get-ExecutionPolicy -List
查看各作用域的设置。CurrentUser
通常能覆盖 LocalMachine
(除非有策略限制)。
• 原因分析: Scoop 的工作方式(下载、解压、创建 shim)有时会被某些敏感的杀毒软件误判为可疑行为。
• 解决方案:
1. 添加排除项: 在你的杀毒软件设置中,将 Scoop 的安装目录 (C:\Users\你的用户名\scoop
或你自定义的路径) 添加到信任区域或排除列表。
2. 临时禁用: 在安装特定软件时,可以考虑临时禁用杀毒软件的实时防护,安装完成后再开启(请确保你信任要安装的软件来源!)。
1. 创建自己的 Bucket:
• 如果你有一些内部工具或者 Scoop 官方/社区没有收录的软件,可以创建自己的 Git 仓库作为 Bucket,编写 JSON 格式的 Manifest 文件来描述如何安装它们。这对于团队共享工具配置非常有用。学习如何编写 Manifest: Scoop Wiki。
2. 一键重装脚本:
setup-my-env.ps1
): # setup-my-env.ps1
# 添加需要的 Buckets
scoop bucket add extras
scoop bucket add java
scoop bucket add nerd-fonts
# 安装常用工具
scoop install git python nodejs openjdk maven gradle vscode 7zip everything powertoys curl wget grep sed bandizip # ... 添加你需要的其他软件
# 清理旧版本
scoop cleanup *
Write-Host "环境配置完成!"
• 每次重装系统后,只需运行 Scoop 安装命令,然后执行这个脚本 .\setup-my-env.ps1
,即可快速恢复你的开发环境!
3. 极致便携性:
• Scoop 的一大魅力在于其便携性。默认情况下,所有软件都安装在 ~/scoop
目录下。这意味着,理论上你可以将整个 scoop
文件夹复制到另一台电脑的相同用户目录下(或者通过环境变量指定路径),然后简单运行一些 Scoop 命令(如 scoop reset *
或 scoop fix path
)来修复路径和 shim,就能在新电脑上获得几乎一致的环境!
4. 与其他包管理器的比较 (简单):
• Scoop: 默认用户级安装、无需管理员权限、干净不污染 PATH、主要面向开发者和命令行工具、便携性好、仓库相对 Chocolatey 较小。
• Chocolatey (Choco): 历史悠久、软件包仓库非常庞大 (覆盖面广)、通常需要管理员权限、安装方式更接近传统 Windows 安装(可能安装到 Program Files)、有付费版提供高级功能。
• Winget: 微软官方出品、内置于新版 Windows、可以管理来自 Microsoft Store 和其社区仓库的应用、更新机制有时能同步非 Winget 安装的应用、更偏向通用软件管理。
• 可以共存吗? 可以!很多人会同时使用它们,根据软件可用性和个人偏好选择。例如,用 Scoop 管理开发工具,用 Winget 或 Chocolatey 管理大型 GUI 应用。
恭喜你!通过这篇(希望是)生动有趣的教程,你已经掌握了使用 Scoop 在 Windows 上高效、整洁地管理软件的秘诀。Scoop 以其简洁的命令行操作、出色的便携性、对系统环境的“零污染”以及强大的脚本能力,正成为越来越多 Windows 用户(尤其是开发者)的装机必备神器。
从现在开始,忘掉那些繁琐的手动下载、安装、配置吧!让 Scoop 成为你得力的助手,把宝贵的时间投入到真正重要的事情上——无论是编码、创作,还是享受生活。
交流时间!
你觉得 Scoop 怎么样?在你的使用过程中,遇到了哪些有趣的问题或独到的技巧?你最喜欢用 Scoop 安装哪些软件?欢迎在评论区分享你的经验和看法,或者提出你的疑问。让我们一起交流,让 Windows 环境配置变得前所未有的简单和愉快!
如果觉得这篇文章对你有帮助,别忘了点赞、收藏,并分享给你身边还在被软件安装折磨的朋友们!