scoop 使用教程
Scoop 是一款适用于 Windows 系统的命令行包管理器,旨在简化软件的安装、更新、卸载及配置流程,尤其适合开发者和习惯使用命令行的用户。它能自动处理软件依赖、环境变量配置等繁琐操作,让软件管理更高效。本文将从 Scoop 安装开始,详细讲解其核心功能及对应的命令用法,并提供丰富实用的用例。
一、Scoop 安装前置条件
在安装 Scoop 前,需确保你的 Windows 系统满足以下条件:
-
系统版本:Windows 10 及以上(推荐),Windows 7/8 需额外配置 PowerShell 环境
-
PowerShell 版本:5.1 及以上(可通过在 PowerShell 中输入
$PSVersionTable.PSVersion查看版本) -
权限要求:无需管理员权限(默认安装在当前用户目录)
-
网络环境:需联网(用于下载 Scoop 本体及各类软件包)
二、Scoop 安装步骤
Scoop 的安装过程简单快捷,仅需通过 PowerShell 执行一行命令即可:
-
打开 PowerShell(按 Win+R,输入
powershell或pwsh回车,推荐使用 Windows Terminal 以获得更好体验) -
执行安装命令:
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') -
验证安装:安装完成后,输入
scoop --version,若输出类似以下内容,则说明安装成功:
Current Scoop version:
v0.3.1 - Released at 2024-05-20
'extras' bucket:
e2f1a11f (Updated 2 days ago)
提示:若安装时出现“无法加载文件,因为在此系统上禁止运行脚本”的错误,需先执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 并输入 Y 确认,开启当前用户的脚本执行权限。
三、Scoop 核心功能及详细用例
Scoop 的所有操作均通过 scoop <command> [<args>] 格式的命令完成,以下按“软件安装-更新-卸载-禁用更新-其他常用功能”的逻辑,讲解核心命令的用法。
3.1 软件安装(install 命令)
install 是 Scoop 最常用的命令,用于安装指定软件,支持自动下载、配置依赖和环境变量。
基础语法:
scoop install <app-name> [<app-name-2> ...]
实用用例:
-
安装单个软件(以安装 Notepad++ 为例):
scoop install notepadplusplus执行后,Scoop 会自动从官方 bucket 下载 Notepad++ 安装包,验证哈希值,然后安装到C:\Users\<你的用户名>\scoop\apps目录,并创建快捷方式(shim)。 -
安装多个软件(同时安装 Chrome、7-Zip 和 Git):
scoop install googlechrome 7zip git多个软件名之间用空格分隔,Scoop 会按顺序安装,并自动处理各软件的依赖关系。 -
从指定 bucket 安装软件(部分软件不在默认 bucket,需先添加对应 bucket):
# 先添加包含 VS Code 的 extras bucket
scoop bucket add extras
# 再安装 VS Code
scoop install extras/vscode
bucket 是 Scoop 的软件源,默认仅启用 main bucket,通过 scoop bucket add <bucket-name> 可添加社区维护的 bucket(如 extras、nonportable 等)。
3.2 软件更新(update 命令)
update 命令用于更新已安装的软件,或更新 Scoop 本体。
基础语法:
# 更新 Scoop 本体
scoop update
# 更新指定软件
scoop update <app-name>
# 更新所有已安装软件
scoop update *
实用用例:
-
更新 Scoop 本体:
scoop update执行后,Scoop 会检查自身是否有新版本,若有则自动下载并更新。 -
更新单个软件(以更新 Git 为例):
scoop update gitScoop 会检查 Git 的最新版本,若本地版本过时,会自动下载新版本并安装,同时保留旧版本(可通过 cleanup 命令清理)。 -
更新所有已安装软件:
scoop update *使用通配符*表示所有已安装软件,适合批量更新。若部分软件无需更新,会提示“Already up to date.”。
3.3 软件卸载(uninstall 命令)
uninstall 命令用于卸载已安装的软件,支持移除软件文件、快捷方式和环境变量配置。
基础语法:
scoop uninstall <app-name> [--purge]
参数说明:--purge:彻底删除软件,包括配置文件(默认仅删除安装文件,保留配置)。
实用用例:
-
常规卸载软件(以卸载 7-Zip 为例):
scoop uninstall 7zip执行后,Scoop 会删除 7-Zip 的安装文件和快捷方式,保留其配置文件(若有)。 -
彻底卸载软件(删除配置文件,以卸载 VS Code 为例):
scoop uninstall vscode --purge适合需要完全清理软件痕迹的场景,执行后会删除 VS Code 的安装文件和所有本地配置(如插件、用户设置等)。 -
卸载多个软件(同时卸载 Notepad++ 和 Chrome):
scoop uninstall notepadplusplus googlechrome多个软件名之间用空格分隔,批量卸载效率更高。
3.4 禁用/启用软件更新(hold/unhold 命令)
部分软件更新后可能出现兼容性问题,此时可通过 hold 命令禁用其更新;后续需要更新时,再用 unhold 命令启用。
基础语法:
# 禁用指定软件更新
scoop hold <app-name>
# 启用指定软件更新
scoop unhold <app-name>
# 查看已禁用更新的软件
scoop list --hold
实用用例:
-
禁用 Git 更新:
scoop hold git执行后,后续使用scoop update git或scoop update *时,Git 不会被更新,会提示“git is held and will not be updated”。 -
启用 Git 更新:
scoop unhold git解除禁用后,Git 可正常参与更新检查和更新操作。 -
查看所有被禁用更新的软件:
scoop list --hold若有软件被禁用更新,会列出软件名和版本;若无,则提示“No held apps.”。
3.5 其他常用核心功能
除了上述核心功能,以下命令也能大幅提升软件管理效率,建议熟练掌握。
3.5.1 查看已安装软件(list 命令)
# 查看所有已安装软件(含版本号)
scoop list
# 查看已安装软件的详细信息(含安装路径、bucket 等)
scoop list -v
用例:输入 scoop list,会输出类似以下内容,清晰展示已安装软件的名称和版本:
Installed apps:
7zip 24.01 [main]
git 2.45.1 [main]
notepadplusplus 8.6.5 [extras]
vscode 1.89.1 [extras]
3.5.2 搜索可用软件(search 命令)
# 搜索指定软件(支持模糊匹配)
scoop search <keyword>
# 搜索并显示软件所属 bucket
scoop search -b <keyword>
用例:搜索与“python”相关的软件:
scoop search python
输出结果会包含所有名称或描述中含“python”的软件,以及对应的版本和所属 bucket,方便确认是否可通过 Scoop 安装。
3.5.3 清理旧版本软件(cleanup 命令)
Scoop 更新软件时会保留旧版本,长期使用会占用磁盘空间,可通过 cleanup 命令清理。
# 清理指定软件的旧版本
scoop cleanup <app-name>
# 清理所有软件的旧版本
scoop cleanup *
# 强制清理(无需确认)
scoop cleanup * -y
用例:清理所有软件的旧版本(无需手动确认):
scoop cleanup * -y
3.5.4 查看软件信息(info 命令)
info 命令用于查看软件的详细信息,如版本、描述、依赖、安装路径、 homepage 等。
scoop info <app-name>
用例:查看 Git 的详细信息:
scoop info git
输出结果会包含 Git 的当前版本、最新版本、依赖软件、安装路径、官方主页等信息,便于了解软件详情。
3.5.5 依赖管理(depends 命令)
depends 命令用于列出指定软件的依赖项,以及依赖项的安装顺序,便于了解软件的依赖关系,排查因依赖缺失导致的运行问题。
# 列出指定软件的依赖项(按安装顺序)
scoop depends <app-name>
用例:查看 VS Code 的依赖项:
scoop depends vscode
输出结果会按依赖项的安装顺序列出,例如可能包含“git”“dotnet-runtime”等,帮助你明确安装 VS Code 前需要先安装哪些基础软件。
3.5.6 应用路径查询(prefix 命令)
prefix 命令用于快速获取指定软件的安装路径,无需手动导航文件夹,适合在脚本中引用或快速定位软件目录。
# 获取指定软件的安装路径
scoop prefix <app-name>
用例:获取 7-Zip 的安装路径:
scoop prefix 7zip
输出结果类似 C:\Users\YourName\scoop\apps\7zip\current,其中 current 是指向最新版本的符号链接,方便直接访问当前使用的软件版本目录。
3.5.7 应用重置(reset 命令)
reset 命令用于重置指定软件的配置,解决因环境变量冲突、快捷方式(shim)损坏或依赖关联异常导致的软件无法正常运行问题。
# 重置指定软件的配置和关联
scoop reset <app-name>
# 重置所有已安装软件的配置和关联
scoop reset *
用例:重置 Git 以解决环境变量冲突问题:
scoop reset git
执行后,Scoop 会重新配置 Git 的环境变量、修复或重建快捷方式,并重新关联依赖项,通常能解决“命令未找到”“无法启动”等因配置异常导致的问题。
3.5.8 快捷方式管理(shim 命令)
shim 命令用于手动管理 Scoop 创建的快捷方式(shim),支持添加、删除、修复等操作。Scoop 安装软件时会自动创建 shim 到 scoop\shims 目录,确保软件可直接通过命令行调用。
# 列出指定软件的所有 shim
scoop shim list <app-name>
# 删除指定软件的某个 shim
scoop shim remove <shim-name>
# 修复指定软件的所有 shim
scoop shim repair <app-name>
用例 1:查看 Notepad++ 的所有快捷方式:
scoop shim list notepadplusplus
输出结果会列出该软件对应的所有 shim 名称(如 notepad++.exe)及存储路径。
用例 2:修复 VS Code 的损坏 shim:
scoop shim repair vscode
若 VS Code 无法通过命令行启动(提示“无法找到命令”),大概率是 shim 损坏,执行此命令可重新生成正确的 shim。
3.5.9 配置导入(import 命令)
import 命令用于从 JSON 格式的 Scoopfile 中导入已备份的软件列表、bucket 配置和 Scoop 全局设置,适合在新设备上快速还原原有软件环境。
# 从指定 Scoopfile 导入配置和软件
scoop import <scoopfile-path>
# 导入时不安装软件,仅还原 bucket 和配置
scoop import --no-install <scoopfile-path>
前置说明:导入功能需配合 scoop export 命令使用(export 用于导出当前环境到 Scoopfile),例如先在旧设备执行 scoop export > scoopfile.json 生成备份文件。
用例:从 D 盘的备份文件还原软件环境:
scoop import D:\backup\scoopfile.json
执行后,Scoop 会自动添加备份文件中的 bucket、设置全局配置,并逐一安装备份的软件,实现环境的快速迁移。
3.5.10 使用已下载安装包缓存
Scoop 默认支持自动识别并使用本地已下载的安装包缓存,无需额外手动触发,核心逻辑及操作细节如下,方便离线安装或重复安装时节省下载时间。
scoop download 命令详解
scoop download 是 Scoop(Windows 下的命令行包管理器)的核心命令之一,作用是仅下载指定应用的安装包/资源文件,而不执行安装流程,适合需要手动处理安装包、备份资源或离线部署的场景。
核心功能
该命令会从 Scoop 官方/自定义 bucket(应用清单库)或指定的本地/远程清单文件中,拉取应用对应的安装包,并存放到 Scoop 的缓存目录(默认:~/.scoop/cache),全程不会修改系统环境、创建快捷方式或注册应用。
1. 基础用法:下载本地 bucket 中的最新版应用
scoop download <app>
- 示例:
scoop download git
从本地已同步的 bucket 中下载 Git 的最新版本安装包,自动校验哈希值、适配系统架构(默认当前系统)。
下载指定版本的应用
scoop download <app>@<version>
- 示例:
scoop download gh@2.7.0
下载 GitHub CLI(gh)的 2.7.0 版本;
⚠️ 注意:该方式会基于当前清单自动生成对应版本的下载配置,需确保该版本在清单的版本列表中存在。
从远程 URL 下载应用(基于在线清单)
scoop download <manifest-url>
- 示例:
scoop download https://raw.githubusercontent.com/ScoopInstaller/Main/master/bucket/runat.json
直接通过远程 JSON 清单文件下载runat应用,无需将清单加入本地 bucket。
4. 从本地清单文件下载应用
scoop download <本地清单路径>
- 示例:
scoop download path\to\app.json
基于本地自定义的 JSON 清单文件下载应用,适合调试自定义清单或下载非官方应用。
可选参数(Options)
| 参数 | 作用 | 注意事项 |
|---|---|---|
-f, --force |
强制重新下载,覆盖缓存中已存在的同名安装包 | 会清空原有缓存,重新拉取 |
-s, --skip-hash-check |
跳过哈希值校验(MD5/SHA256 等) | 谨慎使用!可能下载到篡改文件 |
-u, --no-update-scoop |
即使 Scoop 本身过期,也不自动更新 Scoop,直接下载应用 | 避免因 Scoop 更新打断流程 |
-a, --arch <架构> |
指定下载对应架构的安装包(支持 32bit/64bit/arm64) | 需应用清单支持该架构 |
典型使用场景
- 离线部署:下载应用包后拷贝到无网络的 Windows 机器,通过
scoop install <本地包路径>安装; - 清单调试:自定义应用清单后,先下载验证包是否能正常拉取,再执行安装;
- 版本备份:下载指定版本的安装包,备份到本地,避免后续 bucket 版本更新后无法获取旧版本。
补充说明
- 下载的文件默认存放在
~/.scoop/cache(~对应C:\Users\<用户名>),可通过scoop config cache <路径>修改缓存目录; - 若应用清单包含多个架构/版本,
scoop download会默认匹配当前系统架构和最新版本,需通过-a参数指定其他架构; - 跳过哈希校验(
-s)仅建议在测试/可信源场景下使用,否则可能下载到损坏或恶意文件。
一、默认缓存机制(自动生效)
Scoop 下载的所有安装包会默认存储在 C:\Users\<你的用户名>\scoop\cache 目录。当执行 scoop install <软件名> 时,Scoop 会先检查缓存目录:
-
若存在与当前需要安装版本匹配、哈希值验证通过的缓存包,直接使用缓存安装,无需重新下载;
-
若缓存不存在、版本不匹配或哈希值验证失败,才会从网络下载。
二、关键操作:确认/管理缓存(确保缓存可用)
- 查看缓存列表(确认目标软件缓存是否存在):
# 查看所有已缓存的安装包(含软件名、版本、缓存路径)
scoop cache list
# 过滤查看指定软件的缓存(如 7zip)
scoop cache list 7zip
- 手动指定自定义缓存路径(若缓存不在默认目录):若安装包缓存存放在自定义目录(如 D 盘),可先通过配置指定缓存路径,让 Scoop 识别:
# 设置自定义缓存目录(示例:D:\scoop-cache)
scoop config cache-path D:\scoop-cache
# 恢复默认缓存路径(可选)
scoop config rm cache-path
设置后,Scoop 会优先从自定义目录读取缓存,适合将缓存转移到大容量磁盘的场景。
- 修复缓存关联(若缓存无法被识别):若确认缓存存在但 Scoop 未使用,可能是缓存索引异常,可执行以下命令修复:
# 修复指定软件的缓存关联(如 git)
scoop cache repair git
# 修复所有软件的缓存关联
scoop cache repair *
三、特殊场景:离线环境使用缓存安装
若处于无网络环境,确保目标软件缓存已存在后,直接执行常规安装命令即可,Scoop 会自动调用缓存完成安装:
# 离线安装 7-Zip(自动使用缓存)
scoop install 7zip
四、注意事项
-
缓存包需与软件当前最新版本(或你要安装的版本)匹配,否则会触发重新下载;
-
避免手动修改缓存目录下的文件名称,否则会导致哈希值验证失败,无法使用缓存;
-
可通过
scoop cleanup <软件名> --cache清理指定软件的旧版本缓存,释放磁盘空间。
四、常见问题解决
-
安装软件时提示“Could not find app '
' in any bucket”:
原因:该软件不在已添加的 bucket 中。解决方案:通过scoop bucket add <bucket-name>添加包含该软件的 bucket(可通过搜索引擎查询软件所属 bucket),或使用scoop search <app-name>确认是否存在该软件。 -
更新软件时提示“Access denied”:
原因:软件正在运行,无法替换文件。解决方案:关闭正在运行的软件,重新执行更新命令。 -
执行 Scoop 命令时提示“scoop 不是内部或外部命令”:
原因:Scoop 的安装路径未添加到系统环境变量。解决方案:重启 PowerShell(Scoop 安装时会自动配置用户级环境变量,重启后生效),或手动将C:\Users\<你的用户名>\scoop\shims添加到用户环境变量的 Path 中。
五、总结
Scoop 作为 Windows 平台的优秀包管理器,通过简洁的命令行操作,实现了软件的高效管理。本文从安装前置条件、安装步骤开始,详细讲解了安装、更新、卸载、禁用更新等核心功能的命令用法及实用用例,同时补充了常用辅助命令和常见问题解决方案。掌握这些操作后,你可以告别手动下载安装包、配置环境变量的繁琐流程,大幅提升软件管理效率。
若需要了解更多命令细节,可通过 scoop help <command>查看对应命令的完整帮助文档(如 scoop help install 查看安装命令的所有参数)。
本文来自博客园,作者:ghimi,转载请注明原文链接:https://www.cnblogs.com/ghimi/p/19362691

浙公网安备 33010602011771号