每一次换工作、每一次换电脑,把自己常用的软件都安装一遍就要浪费很久。有时是半天,有时是几天,总之很费时间,对此深感无奈。既没钱购置Mac,也不想完全使用Linux,于是满世界找解决方案,终于找到了一些线索,密码就在“SCOOP”上。
拿到一台新电脑后,如果你会使用SCOOP,那么你初始化你的工作环境仅仅只需要两步,第一步是安装Scoop,第二步是安装其他软件(支持一键安装)。
一、Scoop是什么?

Scoop是windows平台上最流行的包管理工具。
- 官网:https://scoop.sh
- 仓库:https://github.com/ScoopInstaller/Scoop
- 官方文档:https://github.com/ScoopInstaller/Scoop/wiki
- 命令行帮助文档
scoop help
1.1 概念
- APP scoop把可以被scoop安装的软件、程序统称做app,app有它自己的组织结构。如使用zip封装,包含一个清单文件。
- Buckets 桶就是一些类应用的集合,实际上桶是一个包含特定JSON清单文件的git仓库。
1.2 可以干什么
它可以用最简单的方式协助你快速的安装你需要和喜欢的程序,避免烦人的安装引导、让人不知所措的选项。例如:
# 安装nodejs
scoop install nodejs
# 安装vscode
# 添加扩展库(vscode的包在extras库里)
scoop bucket add extras
# 开始安装vscode
scoop install vscode
# 批量安装应用,这是最惊喜的部分,通过这种方式可以快速批量的安装应用
scoop install sudo
sudo scoop install 7zip git openssh --global
scoop install aria2 curl grep sed less touch
scoop install python ruby go perl
二、Scoop的安装与使用
2.1 scoop的安装
打开PowerShell(要求版本>=5.0),执行以下命令:
# 方法一
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
# 方法二
iwr -useb get.scoop.sh | iex
scoop默认会被安装到$Env:UserProfile\scoop目录(eg. C:\Users<username>\scoop),如果想要安装到其他目录,则需要再执行以上安装命令之前在powershell中设置环境变量。
# 在当前环境设置变量SCOOP
$env:SCOOP='D:\app\Scoop'
# 将SCOOP添加到用户环境变量中,执行完这个之后在用户的环境变量中可以看到一条记录,如下图
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

使用scoop install来安装软件。
# 安装某个软件至最新版
scoop install <app>
# 安装某个软件至某个版本
scoop install <app>@[version]
使用scoop update来升级scoop和软件。
# 升级scoop,并且更新本地的软件清单
scoop update
# 升级指定的软件至最新版本
scoop udpate <app>
# 升级指定软件至某个版本
scoop update <app>@[version]
# 升级所有已安装的软件到最新版
scoop udpate *
使用scoop reset切换软件版本。
# 将软件切换到0.11.14版本
scoop reset app@0.11.14
# 将软件切换到最新版本
scoop reset app
使用scoop uninstall卸载软件
#卸载软件
scoop uninstall app
#卸载软件的某个版本
scoop uninstall app@version
2.2 使用aria2加速软件下载
scoop可以通过aria2工具同时下载多个软件,无需做额外的配置,只需要先使用scoop安装aria2即可。
# 先使用scoop安装aria2
scoop install aria2
# aria2安装完成后,scoop就可以自动利用aria2进行多连接(并行)下载
scoop install 7zip git curl
当然,使用aria2进行下载的时候,scoop会给出一个警告,可以通过scoop config aria2-warning-enabled false关闭警告。
关于aria2的其他配置项也可以通过scoop config命令进行配置,aria2配置项:
- aria2-enabled (default: true)
- aria2-warning-enabled (default: true)
- aria2-retry-wait (default: 2)
- aria2-split (default: 5)
- aria2-max-connection-per-server (default: 5)
- aria2-min-split-size (default: 5M)
- aria2-options (default: )
2.3 默认安装目录
Scoop默认把软件安装在~\scoop目录,目录结构如下:

对于命令行的应用,scoop会在shims目录创建快捷方式,这个快捷方式将会被添加到PATH路径中。对于图形界面应用,scoop将会在开始菜单的Scoop Apps创建快捷方式。
如果在安装时候通过环境变量的方式修改了安装目录,那scoop的安装目录也随之被改变成指定的目录了。
如果我们不想安装在~/scoop这个目录(或自定义安装目录),还可以通过以下方式修改目录。
# 设置scoop的主目录即安装目录,默认在$Env:UserProfile\scoop目录
scoop config root_path <path>
# 设置scoop 全局安装app的目录,默认在$Env:ProgramData\scoop目录
scoop config global_path <path>
# 设置缓存目录,默认在scoop根目录的cache
scoop config cache_path <path>
2.5 如何搜索软件
在scoop中搜索软件很简单,只需要使用scoop search <software name>进行搜索即可。
如果在已经添加的桶中无法找到对应的软件,还是可以尝试通过Scoop官方 或 其他搜索引擎去搜索。

2.6 配置的查看与设置
scoop配置存储在~/.config/scoop/config.json文件中,可以使用scoop config命令进行查看与操作。
# 查看所有配置项,即列出config.json文件的内容
scoop config
# 查看指定配置项
scoop config <config name>
# 设置指定配置项
scoop config <config name> <value>
# 删除指定配置项
scoop config rm <config name>
2.7 命令列表
scoop的命令虽然不多,但也有几十个。可以使用scoop help查看命令列表,使用scoop help <command>查看具体命令的帮助文档。
alias对命令别名进行处理,能为scoop命令创建别名,简化操作bucket对桶进行管理cache显示或者清楚缓存cat显示JSON清单文件的内容,如果允许查看,使用bat的能用更友好的格式查看checkup检查是否存在潜在的问题cleanup清理不再需要的旧版本应用config获取或设置配置值create创建自定义应用清单depends列出应用的依赖项,按安装顺序列出download下载应用并验证哈希值export将已安装的应用、桶(以及可选的配置)导出为JSON格式help显示命令的帮助信息hold暂停应用以禁用更新home打开应用主页import从JSON格式的Scoopfile中导入应用、桶和配置info显示应用详情install安装应用list列出已安装的应用prefix返回指定应用的路径reset重置应用以解决冲突search搜索可用的应用shim操作Scoop的shimsstatus显示状态并检查新应用版本unhold取消暂停应用以启用更新uninstall卸载应用update更新应用或Scoop本身virustotal在virustotal.com上查找应用的哈希或URLwhich定位shim/可执行文件(类似于Linux上的’which’命令)
三、如何构建自己的软件包
如果你想构建一个适用于scoop管理软件包,也很简单。只需要把软件包压缩成一个zip文件,在zip文件中提供一个JSON格式的清单文件去告诉scoop如何安装即可。
清单文件参考:
{
"version": "1.6.4",
"description": "GIF encoder based on libimagequant (pngquant).",
"homepage": "https://gif.ski",
"license": "AGPL-3.0-or-later",
"url": "https://gif.ski/gifski-1.6.4.zip",
"hash": "dc97c92c9685742c4cf3de59ae12bcfcfa6ee08d97dfea26ea88728a388440cb",
"pre_install": "if (!(Test-Path '$dir\config')) { New-Item '$dir\config' }",
"bin": "gifski.exe",
"checkver": "For Windows.*?gifski-([\d.]+)\.zip",
"autoupdate": {
"url": "https://gif.ski/gifski-$version.zip"
}
}
其实很简单,就是按指定的规则写一个json文件,一个json文件对应一个app。我们可以看到这个json文件中包括版本、说明、主页、下载地址、哈希、安装脚本、主文件、版本校验规则、升级地址。
json文件中指定的软件包或升级包可以放到本仓库也可以放到其他仓库,这个可以根据实际情况确定,只需要提供一个可下载的地址即可。
四、如何打造自己的桶
不是提桶跑路,而是提桶入职! Not running, but hardworking!
桶(buckets)的一些主要操作
# 添加某个桶,如果在已知桶列表则不需要指定repo url,如果不在则需要指定。
scoop bucket add <bucket name> [<repo url>]
# 查看已知的桶,记录了桶名和仓库地址,即https://github.com/ScoopInstaller/Scoop/blob/master/buckets.json中的桶
scoop bucket known
# 查看已安装的桶,不包括主桶
scoop bucket list
# 移除某个桶
scoop bucket rm <bucket name>
4.1 定制一个属于自己的桶
- 克隆BucketTemplate仓库。
- 在bin/auto-pr.ps1文件中修改桶的名字


- 按需配置应用清单json


Easy-Bucket是我自己做的一个桶,大家如果有兴趣的话,我们可以一起交流。
使用方法:
# 添加桶
scoop add easy https://gitee.com/fatex_top/easy-bucket-4scoop
# 安装软件
scoop install oepnjdk8
这个桶的软件下载路径我现在都是放的官网的,有些国外的软件可能就不是很合适了,后续应该是会考虑迁移一下。除了放到gitee之外,没有想到其他既省钱,又安全的方案。大家有好的方案也可以评论区告诉一下我。
五、常用的一些应用桶(buckets)
5.1 已知的一些桶
这些桶是被官方认可,并且已经收录到桶列表中的桶。一般而言都是经过审核,比较稳定、安全的桶。
- main - 主桶,包含一些无UI的应用。
- extras - 扩展桶,不适合放在主桶中的应用程序,参考标准。
- games - 游戏桶,一些开源、免费游戏和视频相关工具。
- nerd-fonts - Nerd 字体桶。
- nirsoft - Nirsoft公司桶,来自Nirsoft公司开发的软件,有超过250+的应用。
- sysinternals - 微软内置套件桶, 参考。
- java - Java桶,包含JRE、JDK等开发组件。
- nonportable - 非免便携安装的应用桶。
- php - PHP桶。
- versions - 替代桶,找寻替代工具的桶。
在以上桶中找不到想用的软件,也可以尝试一下从Scoop官方搜索 或通过 其他搜索引擎。
5117

被折叠的 条评论
为什么被折叠?



