一、Scoop
Scoop 是一个面向 Windows 平台的命令行包管理工具,它以简洁和高效著称。Scoop 的目标是通过命令行方便地安装、更新和管理软件包,同时简化配置和依赖管理。
(一)安装教程
由于Scoop的默认安装方式不支持以管理员身份运行,因此我们需要以非管理员身份来安装。以下是非管理员身份安装Scoop的步骤:
1. 打开PowerShell(非管理员模式): 按 Win + X,选择 Windows PowerShell(确保不是管理员模式)。
2. 设置执行策略: 在PowerShell中输入以下命令并按回车:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
3. 创建Scoop目录: 确保 D:\Learning Software Installation Catalog\Scoop 目录存在。如果不存在,先创建该目录。
4. 设置Scoop环境变量: 在PowerShell中输入以下命令并按回车:
$env:SCOOP='D:\Learning Software Installation Catalog\Scoop' [environment]::setEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
5. 下载并安装Scoop: 在PowerShell中输入以下命令并按回车:
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
6. 添加Scoop路径到系统环境变量: 为了方便在任何地方使用Scoop命令,添加Scoop的路径到系统环境变量:
$env:Path += ";$env:SCOOP\shims" [environment]::setEnvironmentVariable('Path', $env:Path, 'User')
7. 验证安装: 关闭并重新打开PowerShell,输入以下命令验证安装是否成功:
scoop help
如果你能看到Scoop的帮助信息,说明安装已经成功。
8. 可能会遇到的问题
a. 7-zip没有正确安装
手动下载所需文件并安装
①手动下载7-Zip安装文件:
下载 7-Zip 64-bit MSI安装包。
②将文件放入Scoop缓存目录:
将下载的文件 7z2409-x64.msi 移动到 Scoop 缓存目录中:D:\Learning Software Installation Catalog\Scoop\cache 并命名为 7zip#24.09#https_www.7-zip.org_a_7z2409-x64.msi。
③重新运行安装命令:
scoop install 7zip or scoop install git
b. git没有正确安装
①手动下载Git安装包:
访问 Git的官方网站 并下载适合你操作系统的安装包。假设你下载的是 PortableGit-2.47.1-64-bit.7z.exe。
②将下载的安装包放入Scoop缓存目录:
找到Scoop缓存目录,你可以在命令行中查看环境变量以找到缓存目录的位置。通常,缓存目录在以下路径下:
D:\Learning Software Installation Catalog\Scoop\cache
将下载的 PortableGit-2.47.1-64-bit.7z.exe 文件放入这个缓存目录,并重命名为:
git#2.47.1#https_github.com_git-for-windows_git_releases_download_v2.47.1.windows.1_PortableGit-2.47.1-64-bit.7z.exe
在Scoop中安装Git:
打开PowerShell,输入以下命令来安装Git:
scoop install git
这样,Scoop将会使用你放置在缓存目录中的Git安装包进行安装,而不需要再从网络上下载。
(二)使用教程
Git 是每个使用 Scoop 的人必须装的 app,有了 Git,咱们才能添加 bucket。所以安装完 Scoop 的第一件事就是安装 Git。
scoop install git
1.Bucket
bucket 是一个 app 元数据的集合,一个 bucket 存放在 Git 仓库里。安装完 Scoop 后默认只有 main Bucket。
下面是 Scoop 社区维护的 bucket。
你可以通过 scoop bucket known 查看这个列表。
通过 scoop bucket list 查看已添加的 bucket。
通过 scoop bucket add <bucket> 添加 bucket。
通过 scoop bucket rm <bucket> 移除 bucket。
Scoop 社区就规定 main bucket 存放着开发者会用到的 app,比如某种语言的开发环境。还有一些知名的 CLI 程序。它的最大特点就是没有 GUI。(当然 7zip 是个例外。)
Extras bucket 存放着不符合 main bucket 规定但又知名的程序。比如浏览器这种 GUI 程序,你都可以在 extras bucket 里找到。
Versions bucket 存放着一些知名的 app 的旧版本。
Php bucket 存放着从远古版本到最新版本的 PHP。
Nerd-fonts bucket 存放着 Nerd 字体和其他字体。
Nonportable 存放着非便携软件。也就是重装系统后虽然文件还在硬盘上,但已经不能正常运行的软件。比如通常的第三方输入法就是非便携软件。不建议大家通过 Scoop 安装非便携软件。如果你的 Scoop 是安装在非 C 盘上的,重装系统后通过 Scoop 安装的非便携软件的文件虽然还残留在硬盘上,但已经不能正常使用了,这时你需要先通过 Scoop 卸载再安装才能使用。对于非便携软件,建议通过 winget 安装。
Java bucket 存放着不同版本的 JRE 和 JDK。
Games bucket 存放着开源游戏和免费游戏。
一般来说 main 仓库和 extras 仓库是每个人必备的仓库。
注意事项
如果你在没装 Git 的情况下通过 scoop bucket rm main 把 main bucket 移除了。这时候你就会发现你因为没有 Git,无法通过 scoop bucket add main 添加 main bucket,而且因为没有 main bucket,无法通过 scoop install git 安装 Git。这时候貌似陷入了一个死循环。不过好在 Scoop 可以通过 scoop install <mainfest_url> 的方式安装一个 app 。所以咱们只需通过 scoop install https://raw.githubusercontent.com/ScoopInstaller/Main/master/bucket/git.json 就可以安装 Git 啦。
2.安装 app
添加完 bucket 后就可以安装 app 了,咱们可以通过 scoop install 命令来安装 app,命令格式如下。
scoop install
例如,安装 Chrome。
scoop bucket add extras
scoop install googlechrome
但是假如有两个 bucket 都有 googlechrome 这个 app。那通过 scoop install googlechrome 安装的是哪个 bucket 的 googlechrome 呢?
咱们可以通过 scoop search 命令来搜索 app,遇到不同 bucket 里有同名的 app 时一般会安装搜索结果里最靠前的那个 bucket 的 app。
如果要指定安装某个 bucket 的 app 就需要这样子写。
scoop install extras/googlechrome
如果要安装指定版本的 app 就需要这样子写。
scoop install extras/googlechrome@107.0.5304.107
建议大家平常安装 app 时,先搜索一下 app 的名字,如果有两个或以上的 bucket 都有同名的 app 时,通过上面的方法精确定位你要安装的 app。
如果想为所有用户安装,就要使用 -g 参数来进行全局安装,卸载时也是如此。
3.搜索 app
scoop search <app_name>
不过 Scoop 自带的搜索命令在 bucket 数量多时会比较慢,建议大家安装 scoop-search 这个包。
scoop install main/scoop-search
通过 scoop-search 命令来搜索会比 scoop search 快很多。
scoop-search <app_name>
4.卸载 app
scoop uninstall <app_name>
一些 app 会产生能被 Scoop 管理的数据,如果你想在卸载 app 时同时删除这些数据,请加入 -p 参数。
5.查看已安装的 APP
scoop list
6.更新 Scoop
scoop update
这个命令可以更新 Scoop 和 bucket 的元数据。
6.更新 app
scoop update <app_name>
如果要更新所有 app,可以使用 scoop update * 或 scoop update -a。
7.禁止更新 app
如果你希望一直使用某个 app 的旧版本,不希望在使用 scoop update -a 时将它升级到最新版,可以使用这个命令禁止更新这个 app。
scoop hold <app_name>
解除禁止更新可以用这个命令。
scoop unhold <app_name>
8.清理旧版本
scoop cleanup <app_name>
Scoop 在安装 app 的新版本时,不会删除旧版本。所以咱们需要用这个命令来清理旧版本。
9.清理安装文件
Scoop 在安装 app 时,会保留安装文件。
你可以通过 scoop cache 查看所有安装文件。
通过 scoop cache rm <app_name> 删除指定 app 的安装文件。
通过 scoop cache rm * 或 scoop cache rm -a 或 scoop cache rm --all 删除所有安装文件。
10.设置 Scoop
你可以通过 scoop help config 来查看 Scoop 都有哪些设置。
通过 scoop config 查看所有已修改的设置。
通过 scoop config <config_name> 查看设置的值。
通过 scoop config <config_name> <value> 更新设置。
通过 scoop config rm <config_name> 删除设置。
给 Scoop 设置代理
如果在使用 Scoop 时遇到下载慢的问题,可以给 Scoop 设置一个代理。这个代理得是 HTTP 代理,SOCKS 代理是不行的。
使用 Aria2 多线程下载
你可以使用 Aria2 多线程下载。不过并不是什么 app 都支持多线程下载的。有时候会有下载失败的情况。建议是开启代理就行了,如果代理的速度够快,就没有必要使用多线程下载。
安装 Aria2。
scoop install main/aria2
让 Scoop 使用 aria2
scoop config aria2-enabled true
让 Scoop 不使用 aria2
scoop config aria2-enabled false
11.重装系统后恢复 Scoop
重装系统后,只需重新设置一下环境变量,不需要重新下载 Scoop。注意下面的路径要设置成你原来的路径。
$env:SCOOP='D:\Learning Software Installation Catalog\Scoop'
[environment]::setEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
$env:Path += ";$env:SCOOP\shims"
[environment]::setEnvironmentVariable('Path', $env:Path, 'User')
在某些情况下,Scoop 的核心文件可能需要重新安装。可以使用以下命令修复:
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
恢复所有 Scoop 安装的软件。
scoop reset *
然后你就会发现,原来使用 Scoop 安装的所有软件都恢复了。