重装电脑用 Scoop 管理软件,清爽多了!

142 天前
 JustW

这篇文章写给谁看? ✍️

  • 所有 Windows 用户,特别是:
    • 经常需要安装、配置开发工具的开发者、程序员 🧑‍💻。
    • 厌倦了每次重装系统都要手动下载、安装、点“下一步”的每一个人 😩。
    • 希望电脑保持干净整洁,告别混乱的安装目录和注册表残留的效率追求者 ✨。
    • 无论是电脑小白还是老司机,都能轻松上手!

预计阅读+实践时间: ⏱️ 30-60 分钟 (取决于你的网络速度和想安装的软件数量)

😫 前言:你是否也曾被 Windows 软件安装折磨?

  还记得吗?每次重装 Windows 系统后,那令人头秃的软件安装环节:打开浏览器,搜索、下载 JDK 、Node.js 、Python 、Git 、VS Code 、MySQL 、Redis... 每个软件都要经历“寻找官网 -> 下载 -> 双击安装包 -> 无脑点下一步(还得小心捆绑软件!) -> 配置环境变量”的漫长旅程。一套操作下来,半天时间就没了,耐心也耗尽了。更别提各种依赖冲突、环境变量配置错误、软件卸载不干净留下的系统“垃圾”... 简直是噩梦!😱

  如果你对上述场景感同身受,那么恭喜你,找到了解放自己的钥匙!🔑 今天,我要向你隆重介绍一款 Windows 下的命令行包管理神器 —— Scoop。它就像一个专门为开发者和效率爱好者准备的“应用商店”,能让你用几行简单的命令,就闪电般地安装、更新、管理你需要的各种(尤其是命令行)工具和软件。从此,环境搭建不再是痛苦,而是几分钟就能搞定的轻松事!

  看看我用 Scoop 配置好环境后的样子,是不是清爽又高效?👇

🛠️ 准备工作:磨刀不误砍柴工

  在开始之前,请确保你满足以下条件:

🚀 核心步骤:开始你的 Scoop 之旅!

步骤一:安装 Scoop 本体 - 神器的第一步

  Scoop 本身就是一个需要被“安装”的工具。

  1. 打开 PowerShell:

    • 按下 Win + X 快捷键,在菜单中选择 “Windows PowerShell (管理员)” 或 “终端 (管理员)”。建议首次使用管理员权限,以确保后续步骤顺利。
  2. 设置执行策略:

    • 为了允许 PowerShell 运行像 Scoop 安装脚本这样的本地或远程签名的脚本,需要调整执行策略。输入以下命令:

      Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
      
    • 按下回车。如果系统询问是否更改执行策略,输入 Y 并回车确认。

    • 💡 小科普:

      • Set-ExecutionPolicy: 这是设置 PowerShell 执行策略的命令。
      • RemoteSigned: 这是一种安全策略,允许运行本地创建的脚本,对于从网络下载的脚本,则要求它们具有可信发布者的数字签名。这比 Unrestricted(允许所有脚本)更安全。
      • -Scope CurrentUser: 表示这个设置仅对当前登录的用户生效,通常不需要管理员权限(但首次设置可能需要确认),也更安全。
  3. 执行安装命令:

    • 接下来,粘贴并运行以下命令来下载并执行 Scoop 的官方安装脚本:

      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. (可选) 修改默认安装路径:

    • 如果你不想把 Scoop 安装在 C 盘,或者想统一管理软件,可以在执行安装命令之前,先运行以下两条命令来指定路径(例如,安装到 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 步安装命令

步骤二:验证安装与添加软件仓库 (Bucket)

  Scoop 使用 "Bucket"(桶)来管理软件包列表,每个 Bucket 就是一个 Git 仓库,里面包含了软件的安装信息(称为 Manifest ,清单文件)。默认只有 main Bucket ,主要包含常用的命令行工具。我们需要添加更多 Buckets 来发现和安装更多软件。

  1. 验证 Scoop:

    • 在 PowerShell 中输入 scoop help 并回车。如果看到 Scoop 的帮助信息和可用命令列表,说明 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 ?
  4. 注意事项:

    • 添加 Bucket 时需要良好的网络连接。
    • 如果命令出错,请检查 Bucket 名称是否拼写正确。
    • 有时网络波动会导致添加失败,重试一次可能就好了。

步骤三:用 Scoop 安装你的常用软件

  激动人心的时刻到了!现在你可以像逛超市一样,用简单的命令安装软件了。

  1. 搜索软件:

    • 不确定软件是否在已添加的 Buckets 里?用 search 命令!

      scoop search <你想搜索的软件名或关键词>
      # 例如: 搜索 python 相关
      scoop search python
      
    • Scoop 会列出匹配的软件包及其所在的 Bucket 。

    • 更方便的搜索: 你也可以直接访问 Scoop 的官方网站 https://scoop.sh/,它提供了一个图形化的搜索界面。注意取消勾选页面上的 "main" 筛选器可以搜索到 extras 等其他 Bucket 中的包。

  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. 回退到旧版本:

    • 更新后发现新版本有 Bug ?可以尝试回退。

      # 先查看可用版本
      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)。

🤔 常见问题解决 (FAQ)

问题 1:Scoop 安装或添加 Bucket 时提示网络错误/超时?

问题 2:安装软件后,在命令行中输入命令提示“不是内部或外部命令”?

问题 3:执行 Set-ExecutionPolicy 时出错或无效?

问题 4:杀毒软件报警或阻止 Scoop/软件安装?

💡 进阶技巧:让 Scoop 更得心应手

  1. 创建自己的 Bucket:

    • 如果你有一些内部工具或者 Scoop 官方/社区没有收录的软件,可以创建自己的 Git 仓库作为 Bucket ,编写 JSON 格式的 Manifest 文件来描述如何安装它们。这对于团队共享工具配置非常有用。学习如何编写 Manifest: Scoop Wiki
  2. 一键重装脚本:

    • 将你所有需要安装的常用软件整理到一个 PowerShell 脚本文件中(例如 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 ,告别繁琐!

  恭喜你!通过这篇(希望是)生动有趣的教程,你已经掌握了使用 Scoop 在 Windows 上高效、整洁地管理软件的秘诀。Scoop 以其简洁的命令行操作、出色的便携性、对系统环境的“零污染”以及强大的脚本能力,正成为越来越多 Windows 用户(尤其是开发者)的装机必备神器。

  从现在开始,忘掉那些繁琐的手动下载、安装、配置吧!让 Scoop 成为你得力的助手,把宝贵的时间投入到真正重要的事情上——无论是编码、创作,还是享受生活。


💬 交流时间!

  你觉得 Scoop 怎么样?在你的使用过程中,遇到了哪些有趣的问题或独到的技巧?你最喜欢用 Scoop 安装哪些软件?欢迎在评论区分享你的经验和看法,或者提出你的疑问。让我们一起交流,让 Windows 环境配置变得前所未有的简单和愉快!

  如果觉得这篇文章对你有帮助,别忘了点赞、收藏,并分享给你身边还在被软件安装折磨的朋友们! 😉

16041 次点击
所在节点    Windows
101 条回复
ronen
142 天前
用 linux 啦。 apt yum 十几年前就有了。
JustW
142 天前
@ronen 哈哈,那也太难为我了.linux 只适合我平时折腾用.
xtreme1
142 天前
wingetui
caokeck
142 天前
我用 chocolatey
wuhann
142 天前
win 上太多软件自带更新机制了,这种还是喜欢自己管理,只有 git python ffmpeg yt-dlp 这类高度 linux 风格的软件用 scoop 更舒服
Siriusie
142 天前
我现在用 uniget https://github.com/marticliment/UniGetUI 也不错
vkillwucy
142 天前
好帖
kokutou
142 天前
自己用吧 自己又基本不重装
别人用吧,不翻墙慢的要死。。
SakuraYuki
142 天前
现在没怎么用过 windows ,好像之前流行的包管理器是 winget
shiloh595
142 天前
scoop 挺不错的
chuunshii
142 天前
推荐这两个库
C02TobNClov1Dz56
142 天前
早就用上啦
jamstack
142 天前
现在这种 Emoji 多的文章总感觉有股 AI 味
shinession
142 天前
第一次听说, 有空尝试一下
sola97
142 天前
用了,后续更新又自己装了一遍,然后电脑上就有两个软件装在不同的位置
DreamBuddy1990
142 天前
mac 上有什么推荐吗?
villivateur
142 天前
各种嵌入式工具链、CAD 、EDA 之类的软件都没有,不符合我这种人的需求
JustW
142 天前
@sola97 是的,我也发现这个问题了,我一般会禁用软件自己的更新,然后用 scoop 进行更新
JustW
142 天前
@DreamBuddy1990 mac 好像有一个自带的.homebrew
liuzimin
142 天前
个人比较习惯把安装包保存备份,所以不存在找官网下载的过程,而且需要装一些绝版老软件。。。不过对“跳过不停的下一步”这个比较刚需,在有安装包的情况下一次性部署所有软件有办法实现吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1126032

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX