Scoop 是一个很优秀的软件包管理工具,官方的安装说明也简单易懂,但是在中国访问却可能在每个环节都会遇到无法下载的问题。依次会遇到的是:
- 首先从 GitHub Raw 下载 Scoop 安装脚本,此时下载会失败。
- 如果第一步成功后,会下载 Scoop 仓库存档 和 Main 应用仓库存档,此时下载又会失败。
- 如果第二步成功后,会先下载 7-Zip 和 Git 来做后面的事,因为 7-Zip 的官网 也是会偶尔无法访问,Git 下载地址在 GitHub Releases,此时下载又会失败。
- 如果第三步成功后,会从官方 Main 应用仓库检出代码,地址在 GitHub 仓库,此时下载又会失败。
- 如果第四步成功后,更新 Scoop 时会从官方 Scoop 仓库检出代码,地址在 GitHub 仓库,此时下载又会失败。
- 后续添加、检出 extras 等应用库都会失败。
如果你使用 Scoop 没有遇到这些问题,恭喜你,后面的内容不用看了。
本应用库为了解决上述问题,把各个环节的下载地址替换成了国内可加速访问的地址。本应用库使用的是 GitHub Proxy 和 GitHub Actions 。
特性有:
- 本应用库包含 Scoop 的安装脚本,用于国内用户初次下载安装 Scoop。
- 本应用库同时包含了 Scoop 官方的十个应用库:main、extras、versions、nirsoft、sysinternals、php、nerd-fonts、nonportable、java、games(可使用命令
scoop bucket known
查看),用一个库包含了各家的库,用户不用在多个地方搜索应用。 - 本应用库把应用的下载地址替换成了国内可加速访问的地址,真正做到能更快更方便地下载和安装应用。
- 本应用库每天自动更新一次
PowerShell 版本在 5.1 或以上,如果没有 PowerShell 大于 5.1 版本,可以下载安装 PowerShell Core。运行以下命令查看:
$PSVersionTable.PSVersion.Major # should be >= 5.1
其次,允许本地运行 PowerShell 脚本,以管理员打开 PowerShell,运行以下命令,回答 Y:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
此方法会把安装 Scoop 过程中的地址都换成中国可快速访问的地址,并设置好 Scoop,添加本仓库。打开 PowerShell,输入以下命令下载安装 Scoop:
irm https://ghp.ci/https://raw.githubusercontent.com/duzyn/scoop-cn/master/install.ps1 | iex
或使用 jsDelivr 的地址:
irm https://cdn.jsdelivr.net/gh/duzyn/scoop-cn/install.ps1 | iex
安装成功后,会提示“Scoop and scoop-cn was installed successfully!”
如果已经安装了 Scoop,不想重新安装可以按以下步骤进行:
-
运行以下命令添加本仓库
scoop bucket add scoop-cn https://ghp.ci/https://github.com/duzyn/scoop-cn
-
把已经安装的 app 改为使用 scoop-cn 来更新。每个 app 安装后在 app 的 current 路径下有个 install.json,里面的 bucket 项的值改为 scoop-cn,这样就把已安装的 app 换到 scoop-cn 了。可以运行以下命令来批量替换:
Get-ChildItem -Path "$env:USERPROFILE\scoop\apps" -Recurse -Filter "install.json" | ForEach-Object { (Get-Content -Path $_.FullName -Raw) -replace '"bucket": "(main|extras|versions|nirsoft|sysinternals|php|nerd-fonts|nonportable|java|games)"', '"bucket": "scoop-cn"' | Set-Content -Path $_.FullName }
命令中的
$env:USERPROFILE\scoop\apps
需根据你实际的 Scoop 安装路径来修改,如果你安装 Scoop 时没有改过安装路径,默认应该是这个。 -
可以运行
scoop list
来检查替换是否成功。比如未修改前是这样的:Installed apps: Name Version Source Updated Info ---- ------- ------ ------- ---- 7zip 24.08 main 2024-11-06 17:52:51 git 2.47.0.2 main 2024-11-06 17:53:04
运行命令替换之后变为:
Installed apps: Name Version Source Updated Info ---- ------- ------ ------- ---- 7zip 24.08 scoop-cn 2024-11-06 17:52:51 git 2.47.0.2 scoop-cn 2024-11-06 17:53:04
搜索应用:
scoop search APPNAME
安装应用:
scoop install scoop-cn/APPNAME
要了解 Scoop 的更多用法,请查看 Scoop 官网。或运行命令查看简要的帮助:
scoop help