介绍h1
Scoop 是一个面向 Windows 的命令行包管理器,目标是让软件安装、更新与管理变得简单、可重复且无需管理员权限。它将应用安装在用户目录(默认 ~\\scoop),通过“bucket”(软件仓库)提供大量常用 CLI 与 GUI 软件,支持版本锁定、缓存与一键更新。
- 核心特点:
- 无需管理员权限,默认安装到当前用户目录。
- 安装透明、可移植,配置与应用彼此隔离,便于清理。
- 通过“bucket”扩展软件源,覆盖常见开发与日常应用。
- 快速更新与回收清理,保持系统整洁。
安装 Scooph2
在 PowerShell(非管理员)中执行以下步骤:
-
允许当前用户执行脚本(一次性设置):
Terminal window Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -
安装 Scoop:
Terminal window iwr -useb get.scoop.sh | iex -
验证安装:
Terminal window scoop --version
提示:
- 如果遇到网络/TLS 问题,可在新会话重试或切换网络环境。
- 默认会将
~\\scoop\\shims加入 PATH,确保在新会话中可用。
快速上手:常用命令h2
核心用法:搜索、安装、更新、卸载
-
搜索软件:
Terminal window scoop search 7zip -
安装软件:
Terminal window scoop install 7zipscoop install gitscoop install nodejs-lts -
查看已安装与详情:
Terminal window scoop listscoop info 7zip -
更新(Scoop 本体与应用):
Terminal window scoop update # 更新 Scoopscoop update * # 更新全部应用scoop update 7zip # 更新指定应用 -
卸载与清理:
Terminal window scoop uninstall 7zipscoop cleanup * # 清理旧版本scoop cache rm * # 清空下载缓存
进阶:Buckets(软件源)h2
Scoop 通过“bucket”扩展软件范围。默认启用 main,可按需添加:
-
查看可用与已添加的 bucket:
Terminal window scoop bucket knownscoop bucket list -
添加常用 bucket(包含大量 GUI/常用软件):
Terminal window scoop bucket add extras -
示例:安装 VLC(添加
extras后可直接安装):Terminal window scoop install vlc
常见 buckets:
main:默认常用 CLI/工具extras:GUI 与更多应用versions:多版本/旧版本nerd-fonts:开发者字体等
全局安装(可选)h2
需要对所有用户可见或放到系统目录时使用全局安装(需管理员权限):
scoop install -g 7zip实用小技巧h2
-
体检环境与依赖:
Terminal window scoop checkup -
固定/解锁应用版本(避免被更新):
Terminal window scoop hold nodejs-ltsscoop unhold nodejs-lts -
查可执行文件路径:
Terminal window scoop which git
总结h2
- Scoop 让 Windows 下的软件管理更简单、可重复、可维护。
- 记住这几步就够用:
install → search → install → update → uninstall。 - 按需添加
extras等 buckets,即可覆盖大多数日常与开发场景。
多版本运行时与切换(Python / PHP / JDK / Rust / Ruby)h1
Scoop 的多版本机制基于“并行安装 + shim 指向当前版本”的设计:
- 每个应用以版本号安装在
~\\scoop\\apps\\<app>\\<version>。 scoop reset <app>会切换current指向,从而让 PATH 中的 shim 指向目标版本。- 某些生态(如 Rust)更推荐使用官方版本管理器(例如
rustup)在同一安装下切换工具链。
为便于获取不同版本,常用到如下 buckets:
- Main(默认):ScoopInstaller/Main
- Versions(多版本/旧版本):ScoopInstaller/Versions
- Java(各类 JDK 发行版与 LTS 系列):ScoopInstaller/Java
下面分别给出各语言的典型做法与示例。
Pythonh3
-
建议 buckets:
- Main:ScoopInstaller/Main
- Versions:ScoopInstaller/Versions
-
示例(安装多个大版本并切换):
Terminal window scoop bucket add versionsscoop install main/python # 最新版 Pythonscoop install versions/python311 # 指定大版本scoop install versions/python312# 让 python 命令指向 3.11 对应安装scoop reset python311python --version -
提示:
- 多版本共存时,
scoop reset <app>决定 PATH 中命令落到哪一套。 - 项目隔离仍建议使用
venv/virtualenv。
- 多版本共存时,
PHPh3
-
建议 buckets:
- Main:ScoopInstaller/Main
- Versions:ScoopInstaller/Versions
-
示例(并行安装 8.2 与 8.3,按需切换):
Terminal window scoop bucket add versionsscoop install versions/php82scoop install versions/php83# 切到 8.3scoop reset php83php -v -
提示:
- 不同项目可通过不同 PHP 目录或容器/服务层面区分;命令行默认走当前激活版本。
JDK(Java)h3
-
建议 bucket:
- Java:ScoopInstaller/Java
-
常见包名(示例):
temurin8-jdk、temurin11-jdk、temurin17-jdk、temurin21-jdk -
示例(安装多套 JDK 并切换激活集):
Terminal window scoop bucket add javascoop install temurin17-jdkscoop install temurin21-jdk# 设定当前激活 JDK(JAVA_HOME/Path 由 Scoop 对应到该版本)scoop reset temurin17-jdkjava -version -
提示:
- 也可并行安装不同发行版(Temurin/Zulu/GraalVM 等),用
scoop reset <包名>选择当前生效的一套。
- 也可并行安装不同发行版(Temurin/Zulu/GraalVM 等),用
Rusth3
-
建议做法:通过 rustup 管理多版本工具链(Scoop 负责安装 rustup)。
-
建议 bucket:
- Main:ScoopInstaller/Main
-
示例(安装 rustup,并用其切换 toolchain):
Terminal window scoop install rustup# 安装并切换工具链rustup toolchain install stablerustup toolchain install 1.77.0rustup default 1.77.0rustc --versioncargo --version -
提示:
rustup支持stable/beta/nightly以及精确版本,按项目需要快速切换。
Rubyh3
-
建议 buckets:
- Main:ScoopInstaller/Main
- Versions:ScoopInstaller/Versions
-
示例(并行安装多版本 Ruby 并切换):
Terminal window scoop bucket add versionsscoop install main/rubyscoop install versions/ruby31scoop install versions/ruby33# 切到 Ruby 3.1scoop reset ruby31ruby -v -
提示:
- 每个 Ruby 安装自带独立 gem 目录;项目层面建议配合 Bundler/Gemfile 管理依赖。