Scoop
Scoop 是一个用于 Windows 的命令行安装程序。
Scoop 是做什么的?
Scoop 以最小的摩擦从命令行安装程序。它:
- 消除弹出的权限窗口
- 隐藏 GUI 向导式的安装程序
- 防止安装大量程序造成的 PATH 污染
- 避免了安装和卸载程序的意外副作用
- 自动查找和安装依赖性
- 自己执行所有额外的安装步骤以获得一个工作程序
Scoop 有很强的脚本性,所以你可以重复设置,使你的环境符合你的要求,比如说:
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 是建立安装程序(如 MSI 或 InnoSetup)的替代方案--你只需要压缩你的程序并提供一个 JSON 清单,描述如何安装它。
要求
- Windows 7 SP1+ / Windows Server 2008+
- PowerShell 5 (或更高版本,包括 PowerShell Core) 和 .NET Framework 4.5 (或更高版本)
- 必须为你的用户账户启用 PowerShell,例如:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
安装
从你的 PowerShell 运行以下命令,将 scoop 安装到其默认位置(C:\Users\\scoop)。
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') # or shorter iwr -useb get.scoop.sh | iex
一旦安装完毕,请运行 Scoop help 以获得指导。
默认设置中,所有用户安装的程序和 Scoop 本身都在 C:\Users\\scoop 中。全局安装的程序(--global)在 C:\ProgramData\scoop。这些设置可以通过环境变量来改变。
通过改变 SCOOP 将 Scoop 安装到一个自定义目录中
$env:SCOOP='D:\Applications\Scoop' [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User') # run the installer
通过改变 SCOOP_GLOBAL 来配置 Scoop 将全局程序安装到自定义目录中
$env:SCOOP_GLOBAL='F:\GlobalScoopApps' [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine') # run the installer
通过改变 SCOOP_CACHE 来配置 Scoop 来存储下载到一个自定义目录中
$env:SCOOP_CACHE='F:\ScoopCache' [Environment]::SetEnvironmentVariable('SCOOP_CACHE', $env:SCOOP_CACHE, 'Machine') # run the installer
通过设置 SCOOP_CHECKVER_TOKEN,使 Scoop 在搜索和检查时使用 GitHub 的 API 令牌
$env:SCOOP_CHECKVER_TOKEN='' [Environment]::SetEnvironmentVariable('SCOOP_CHECKVER_TOKEN', $env:SCOOP_CHECKVER_TOKEN, 'Machine') # search for an app
文档
用 aria2 进行多连接下载
Scoop 可以利用 aria2
来使用多连接下载。只需通过 Scoop 安装 aria2,它就会被用于之后的所有下载。
scoop install aria2
在默认情况下,当运行 scoop install 或 scoop update 时,scoop 会显示一个警告,而此时 aria2 已经启用。这个警告可以通过运行 scoop config aria2-warning-enabled false 来压制。
你可以用 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: )
灵感来自于
Scoop 能安装什么样的应用程序?
最适合用 Scoop 安装的应用程序通常被称为 "可移植" 的应用程序:即压缩的程序文件,在解压后独立运行,没有改变注册表或将文件放在程序目录之外的副作用。
由于安装程序很常见,Scoop 也支持它们(以及它们的卸载程序)。
Scoop 在处理单文件程序和 Powershell 脚本方面也很出色。这些甚至不需要被压缩。请看 runat 软件包的例子:它实际上只是一个 GitHub 的 gist。
为这个项目做贡献
如果你想通过增加功能或修复错误来改进 Scoop,请阅读我们的 贡献指南。
支持本项目
如果你觉得 Scoop 很有用,并愿意支持持续的开发和维护,方法如下:
- PayPal (一次性捐款)
已知的应用程序桶
以下是 Scoop 已知的桶:
- main - 最常见的(主要是 CLI)应用程序的默认桶
- extras - Apps that 不符合主桶准则(criteria )的应用程序
- games - 开源/免费游戏和游戏相关工具
- nerd-fonts - Nerd 字体
- nirsoft - Almost all of the apps 几乎所有来自 Nirsoft 的 250 多个 应用程序
- java - Java 开发工具包(JDK)、Java 运行时引擎(JRE)、Java 的虚拟机调试工具和基于 Java 的运行时引擎的集合。
- nonportable - 不可移植的应用程序(可能需要 UAC)
- php - 大多数版本的 PHP 的安装程序
- versions - 在其他桶中发现的应用程序的替代版本
主桶是默认安装的。要添加任何其他桶,请键入:
scoop bucket add bucketname
例如,要添加 extra bucket,键入
scoop bucket add extras
其他应用程序桶
许多其他托管在 Github 上的应用程序桶可以在 Scoop 目录 或通过 其他搜索引擎 找到。