环境搭建第一课:用 Scoop 统一管理你的开发工具

系列说明:这是「新生开发环境搭建」系列的第 1 篇。整个系列一共 4 篇:Scoop 包管理器 → Python 与 uv → Git 与 Gitee → VS Code 配置。这一篇是地基,后面的所有工具都从它装出来。

一、先聊聊你以前是怎么装软件的

开学到现在,你大概已经装过不少软件了。回想一下流程,多半是这样:打开浏览器,搜索软件名字,在一堆下载站里辨认哪个才是真官网,点「立即下载」,运行安装程序,然后开始一路「下一步」——途中还要火眼金睛地取消勾选两三个捆绑软件。

装一个软件是这样,装十个呢?我们这门课要用 Git、Python、VS Code,以后还会有更多。每个软件官网不同、更新方式不同、卸载方式也不同。用了一个学期,你的「开始菜单」会变成杂货铺,C 盘会被各种安装残留占满,想彻底卸载某个软件还得去翻注册表。

传统方式的问题不是「不能装」,而是每个软件都要单独伺候。下载找一处、更新找一处、卸载再找一处——事情一多就乱。

🎓 讲师提示:开场可以先现场问一圈「谁装 Python 的时候下到过捆绑软件」,几乎必有共鸣。痛点铺垫得越实,后面 Scoop 的价值就越顺理成章。

二、Scoop:给 Windows 装一个「应用商店」

手机上你怎么装 App?打开应用商店,搜名字,点安装,完事。更新统一在商店里点一下,卸载也是长按图标的事。没人会去每个 App 的官网下载安装包。

Scoop 就是给 Windows 做的「命令行应用商店」。它是一个包管理器(package manager):把几百个常用软件集中到一个「仓库」里,你想装什么,在终端里敲一条命令:

scoop install git

回车,Git 就装好了——不用找官网,不用点下一步,不会中捆绑软件的招。更新、卸载也全都是一条命令的事。

Linux 和 macOS 的用户早就离不开这套东西(他们用的叫 aptbrew),Windows 上可选的包管理器有好几个,Scoop 是其中对开发者最友好的一款。它有三个特点,正好戳中学生的痛点:

  • 不用管理员权限:软件全部装在你的用户目录下(默认 C:\Users\你的用户名\scoop),不弹 UAC 弹窗,不污染系统目录,机房电脑也能装
  • 绿色干净:卸载就是删目录,不留注册表垃圾
  • 统一入口:装、查、更、卸,全在终端里完成,命令格式统一

🎓 讲师提示:演示时可以现场 scoop install 一个小工具让大家看下载进度条,眼见为实比讲十条原理有效。

三、动手之前:把「执行策略」这道坎先迈过去

Windows 默认不允许 PowerShell 运行来路不明的脚本——这是安全机制,但对我们要装的东西来说就太严格了。几乎所有人在装 Scoop 的第一步都会撞上同一个报错:

...因为在此系统上禁止运行脚本...

解法很简单,打开 PowerShell(按 Win 键,输入 powershell,回车),执行:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

出现确认提示时输入 Y 回车。这行命令的意思是:允许运行本地脚本和有签名的远程脚本,只对你当前用户生效,不改系统全局设置。

🎓 讲师提示:这一步是整节课最大的坑,建议直接投影出来带着全班一起敲。报错截图提前准备好,学生举手时你能一眼对上号。

四、安装 Scoop:一条命令,源在 国内

Scoop 官方的安装命令只有一行,但它要从 GitHub 下载文件——在校园网和宿舍网环境下,GitHub 时快时慢,装到一半超时是常有的事。所以我们直接用国内镜像版的安装脚本,功能一模一样,只是把下载源全部换成了国内:

irm https://gitee.com/scoop-installer/Install/raw/master/install.ps1 | iex

这行命令拆开看是两个动作:irmInvoke-RestMethod 的缩写)把安装脚本下载下来,iexInvoke-Expression)执行它。整个过程一两分钟,装完你会看到一行绿色的 Scoop was installed successfully!

重要:装完之后,把当前 PowerShell 窗口关掉,重新开一个。因为安装程序修改了环境变量(PATH),旧窗口感知不到,新窗口才会加载。

验证安装是否成功:

scoop --version

能输出版本号就说明装好了。顺手看一下它把东西装哪了:

scoop config

默认的根目录是 C:\Users\你的用户名\scoop,以后所有 Scoop 装的软件都在这里的 apps 子目录下,命令入口统一放在 shims 子目录——这个 shims 已经被自动加进了 PATH,所以你敲 scoop 系统才能找到它。

🎓 讲师提示:如果学生想用官方源(irm get.scoop.sh | iex),网络好也完全可以,装完后的换源操作见下一节。两条路殊途同归。

五、给 Scoop 换上国内源:一次配置,长期受益

安装只是第一步。Scoop 装好软件后,还要定期「更新软件目录」才知道最新版本有哪些——这个更新动作默认也是访问 GitHub。既然网络对 GitHub 不友好,我们把它的几个源全部换成国内镜像。

第一步:让 Scoop 自己的更新走国内(用 gitee 镜像版安装的话也建议执行,确保后续更新不回落到官方源):

scoop config scoop_repo https://gitee.com/scoop-installer/scoop.git

第二步:确认 main 软件仓库的地址scoop bucket list 会列出当前配置的软件仓库,如果显示的地址是 gitee 或国内镜像的就不用动;如果还是 GitHub,换成南大镜像:

scoop bucket rm main
scoop bucket add main https://mirror.nju.edu.cn/git/scoop-main.git

第三步:刷新一次目录,验证链路通畅:

scoop update

没有红色报错就说明配置成功。这里出现了本文的第一个新概念——bucket(软件仓库),下一节细说。

六、五个命令吃掉 Scoop 80% 的日常

Scoop 的命令设计得很规整,日常使用就是下面这五个,背下来就够用:

命令作用例子
scoop search 关键词搜仓库里有没有某个软件scoop search vscode
scoop install 包名安装scoop install git
scoop list列出已装的所有软件
scoop update *更新全部已装软件
scoop uninstall 包名卸载scoop uninstall git

另外两个查询命令也很有用:scoop info 包名 查看软件的详细信息(版本、官网、说明),scoop which 命令名 查某个命令实际指向哪个文件——当你怀疑「装是装了怎么用不了」的时候,scoop which 一查便知。

有一个细节要注意:scoop search 只认包名,不认别名。比如 Windows 上著名的进程管理器 Process Explorer,在 Scoop 里的包名是 process-explorer,你搜 procexp 会一无所获。搜不到不等于没有,换个关键词,或者直接去 scoop.sh 网页版搜。

🎓 讲师提示:让每个学生现场把「search → info → install → list」四个命令串起来走一遍,装个轻量的(比如 bat,一个带高亮的 cat 替代品)练手,失败率最低。

七、bucket:软件的「货架分区」

用手机商店类比的话,bucket 就是商店里的货架分区。Scoop 官方维护着好几个仓库,各有分工:

bucket内容举例
main命令行开发工具git、python、uv、nodejs
extras图形界面软件VS Code、微信、Typora
versions同一软件的多个版本旧版 JDK
java各种 JDK 发行版OpenJDK、Temurin

装 Scoop 时默认只有 main。我们要装 VS Code,它在 extras 货架上,所以得先把这层货架加上(同样走 gitee 镜像):

scoop bucket add extras https://gitee.com/scoop-installer/Extras.git

之后 scoop install vscode 就能找到了。以后想装什么,先 scoop search 一下,搜不到时想一想「是不是没加对应的货架」。

八、实战:把这门课要用的三件套装上

环境就绪,现在一口气把后面课程的主角装齐。打开 PowerShell,依次执行:

# Git:版本控制工具(下一系列课的主角)
scoop install git

# uv:Python 包管理器(第 2 篇的主角)
scoop install uv

# VS Code:代码编辑器(第 4 篇的主角)
scoop install vscode

每条命令会自动下载、解压、配置 PATH,几十秒到几分钟不等(取决于网速)。全部装完后跑一遍验证:

git --version
uv --version
code --version

三个命令都有正常输出,环境搭建就宣告完成。想看看自己都装了什么,scoop list 一目了然。

以后有新版本发布,你不再需要去官网下载安装包——一个命令搞定全部更新:

scoop update *

这就是包管理器的意义:把「伺候软件」的杂活,变成一条命令。

🎓 讲师提示:装 VS Code 时提醒学生,装完它就出现在开始菜单里了,Scoop 装的 GUI 软件和普通安装的软件用法完全一样,只是来源更干净。code --version 报「无法识别」时,先重开终端再试。

九、常见翻车现场与自救

把培训班里最容易出现的几个报错提前列出,遇到时对号入座:

「禁止运行脚本」:第三节讲过的执行策略问题,执行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 后重试。

装完命令敲不出来(scoopgit 等提示无法识别):环境变量没刷新。关掉当前 PowerShell,重新开一个窗口再试,九成的情况这就解决了。

下载中途失败、进度条卡死:多数是网络波动。先重试一次;如果反复失败,执行 scoop config aria2-enabled false 关掉多线程下载器再试(aria2 在部分校园网环境下会握手失败)。

scoop update 报错连不上:检查第五节的换源是否做完,scoop bucket list 里不应残留 GitHub 地址。

想换安装位置(比如 C 盘紧张):安装 Scoop 之前设置环境变量 SCOOP 指向目标目录即可,装完就不建议再挪了。

十、写在最后

这一篇我们把地基打好了:一个不会弹捆绑弹窗、不用点「下一步」、能一条命令更新所有工具的开发环境。

回头看,你今天实际上学了三层东西:最表面是几个 scoop 命令;中间是「包管理器」这个概念——它会贯穿你整个职业生涯,以后你还会在 Linux、Docker、各种语言里反复遇到它的变体;最底下是「镜像源」的意识——在国内做开发,知道哪里慢、怎么换源,是一项会持续救命的技能。

环境有了,下一篇我们把 Python 请进来,用 uv 把虚拟环境、依赖管理这些让无数人头疼的问题一次理顺。