Scoop: Windows下的包管理器
作为程序员,换电脑的时候重新配置环境应该是很痛苦的,尤其是在 Windows 上,需要访问一堆网站,下载安装程序,然后点击GUI向导的安装程序安装。
尤其是用过 homebrew 或者 apt-get 之后,希望有一种更简单的方法来告诉开发人员如何安装程序。
Scoop 是个不错的选择。
Scoop 是一个 Windows 下的命令行下载工具。
Scoop 能做什么?
Scoop 能以最小的代价从命令行安装程序。它能
-
消除权限弹出窗口
-
隐藏 GUI 向导样式的安装程序
-
防止 PATH 污染安装大量程序
-
避免安装和卸载程序的意外副作用
-
自动查找并安装依赖项
-
自行执行所有额外的设置步骤以获得工作程序
Scoop 能让程序员留在命令行上,提高效率,而且扩展了 PowerShell,可以使用能够很好处理文本的程序。
安装 Scoop
从非管理员 PowerShell 运行以下命令,将 scoop 安装到其默认位置。
C:\Users\<YOUR USERNAME>\scoop
iwr -useb get.scoop.sh | iex
先决条件
启用 PowerShell 的执行策略
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
高级安装
如果要进行高级安装,可以下载安装程序并使用参数手动执行它。
irm get.scoop.sh -outfile 'install.ps1'
这里可以查看安装程序的所有可配置参数。
.\install.ps1 -?
例如,将 scoop 安装到自定义目录,将 scoop 配置为将全局程序安装到自定义目录,并在安装时绕过系统代理。
.\install.ps1 -ScoopDir 'D:\Scoop' -ScoopGlobalDir 'F:\GlobalScoopApps' -NoProxy
认识 Scoop
Scoop 安装完成后,可以使用 scoop help
获取帮助信息,可以发现 Scoop 有很多命令选项。
简洁易懂,例如,下载一个应用程序 7zip
scoop install 7zip
只需要静静等待安装完成即可,完成安装可能需要重启终端,Scoop 会自动完成环境变量的配置,即可使用。
那 Scoop 是怎么完成环境变量的配置的呢,我们打开系统环境变量 PATH ,可以发现 Scoop 添加了一个
<-ScoopDir>/shims
变量,打开 Scoop 安装路径下的shims
可以发现目录下有安装软件的可执行文件和同名的.shim
文件,.shim
里的内容指向实际程序路径。
卸载程序也很简单
scoop uninstall 7zip
如果需要升级应用程序或者 Scoop 本身,只需要使用 scoop update
命令,详细信息可以加上参数 --help
获取。
安装应用
大概了解了 Scoop 的使用,就可以安装应用了。但是在这之前,我们还需要了解一下 Scoop 的存储桶机制,Scoop 使用存储桶来存储应用。
存储桶
以下是 Scoop 已知的存储桶:
-
main - 最常见(主要是CLI)应用的默认存储桶
-
games - 开源/免费软件游戏和游戏相关工具
-
nerd-fonts - 字体
-
java - Java 开发工具包 (JDK)、Java 运行时引擎 (JRE)、Java 的虚拟机调试工具和基于 Java 的运行时引擎的集合。
-
nonportable - 非便携式应用(可能需要 UAC)
-
php - 大多数版本的 PHP 的安装程序
-
versions - 在其他存储桶中找到的应用程序的替代版本
默认情况下会安装主存储桶。要添加任何其他存储桶,可以自行添加
scoop bucket add bucketname
例如,要添加附加存储桶,请键入:
scoop bucket add extras
Github上托管的许多其他应用程序存储桶可以在Scoop 目录或其他搜索引擎中找到。
必备应用
这里是个人建议,非常好用的应用
-
main/sudo: 模拟 UNIX 环境下
sudo
命令,在命令前使用sudo
命令会弹出提升至管理员权限的窗口。 -
main/touch: 同样是模拟 UNIX 环境下的
touch
命令 -
main/aria2: 使用多连接下载
默认情况下,在运行时或启用时显示警告。可以通过运行命令来抑制此警告。
scoop config aria2-warning-enabled false
常用软件
像是 git, vscode 这样的软件都可以通过 Scoop 安装,推荐使用这个网站:Scoop,可以找到大部分开发软件所在的存储桶,安装命令可以直接复制到命令行。
Scoop 可以安装什么样的应用程序?
使用 Scoop 安装最好的应用程序通常被称为“便携式”应用程序:即压缩的程序文件,它们在提取时独立运行,并且没有副作用,例如更改注册表或将文件放在程序目录之外。
由于安装程序很常见,因此 Scoop 也支持它们(及其卸载程序)。
但是对于 TIM,腾讯会议之类的应用,可能 Scoop 支持的不多,就得去官网下载了。
社区存储桶的 star 数或许能做个参考,数量太少很容易失效,毕竟是个人维护,建议使用尽量使用官方的存储桶。
导出安装的应用
换电脑怎么办?总不能再一个个命令敲进去安装应用吧?别急,Scoop 提供了导出选项,将安装的存储桶和应用全部导出为配置文件,下次安装的时候直接导入即可。
导出:
scoop export > scoopfile.json
导出的 JSON 文件:
{
"buckets": [
{
"Name": "main",
"Source": "https://github.com/ScoopInstaller/Main",
"Updated": {
"value": "\/Date(1661805004000)\/",
"DisplayHint": 2,
"DateTime": "2022年8月30日 4:30:04"
},
"Manifests": 1072
},
{
"Name": "versions",
"Source": "https://github.com/ScoopInstaller/Versions",
"Updated": {
"value": "\/Date(1662064635000)\/",
"DisplayHint": 2,
"DateTime": "2022年9月2日 4:37:15"
},
"Manifests": 354
},
...
],
"apps": [
{
"Info": "",
"Source": "main",
"Name": "7zip",
"Version": "22.01",
"Updated": "\/Date(1659095893850)\/"
},
{
"Info": "",
"Source": "main",
"Name": "aria2",
"Version": "1.36.0-1",
"Updated": "\/Date(1657286226200)\/"
},
...
]
}
导入同样简单
scoop import <path/url to scoopfile.json>
转载自:https://juejin.cn/post/7155708362829594632