Scoop

Scoop是Windows的命令行安装程序,是一个强大的包管理工具。可以在github上找到其项目的相关信息,➡️Scoop

Scoop可以很方便的管理开发软件,配置开发环境,只需要在命令行输入简单的一串命令即可安装你想要的软件,不需要手动配置相关参数,scoop会把软件下载、安装、配置等步骤全部帮你做完。

Scoop安装

环境需求

  • Windows 7 SP1+ / Windows Server 2008+
  • PowerShell 5(或更高版本,包括PowerShell Core)和.NET Framework 4.5(或更高版本)
  • 必须为您的用户帐户启用 PowerShell,例如Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

安装

这里直接自定义安装,方便后续使用,打开终端开始。

⚠️️ 注意:请在 Powershell 中运行下面的命令。

用户安装的程序和scoop本身安装到自定义目录Scoop

1
2
$env:SCOOP='D:\Programs\Scoop\ScoopApps'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

全局安装的程序(–global)安装到自定义目录SCOOP_GLOBAL

1
2
$env:SCOOP_GLOBAL='D:\Programs\Scoop\GlobalScoopApps'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

下载内容存储到自定义目录SCOOP_CACHE

1
2
$env:SCOOP_CACHE='D:\Programs\Scoop\ScoopCache'
[Environment]::SetEnvironmentVariable('SCOOP_CACHE', $env:SCOOP_CACHE, 'Machine')

搜索和检查期间使用 GitHub API 令牌SCOOP_CHECKVER_TOKEN

1
2
3
$env:SCOOP_CHECKVER_TOKEN='<paste-token-here>'
[Environment]::SetEnvironmentVariable('SCOOP_CHECKVER_TOKEN', $env:SCOOP_CHECKVER_TOKEN, 'Machine')
# search for an app

上面运行的结果为添加环境变量,如果不想运行命令行,直接添加环境变量也可。

从 PowerShell 运行以下命令进行安装

如果没有进行以上配置,scoop 将安装到其默认位置 ( C:\Users\<user>\scoop)。

1
2
3
4
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

# or shorter
iwr -useb get.scoop.sh | iex

查看是否安装成功。

1
scoop help

Scoop简单使用

添加软件源 Bucket

Scoop 可安装的软件信息存储在 Bucket中,也可以称其为软件源。Scoop 默认的 Bucket 为 main ;官方维护的另一个 Bucket 为 extras,我们需要手动添加。

1
2
3
4
5
6
7
8
9
10
11
12
# bucket的用法
scoop bucket add|list|known|rm [<args>]

scoop bucket add main # 默认安装的软件源
scoop bucket add extras
scoop bucket add games
scoop bucket add nerd-fonts
scoop bucket add nirsoft
scoop bucket add java
scoop bucket add nonportable
scoop bucket add php
scoop bucket add versions

我们也可以添加第三方 bucket ,示例:

1
scoop bucket add dorado https://github.com/h404bi/dorado 

并且明确指定安装此 bucket(软件源)中的的程序:

1
2
3
scoop install dorado/<app_name>
# 下面是dorado中特有的软件,测试其是否添加成功
scoop search trash

安装aria2以加快scoop下载软件的速度

Scoop可以利用aria2来使用多连接下载。通过Scoop 安装后,可用于以后的所有下载。

1
scoop install aria2

如果你在使用aria2下载的时候遇到了问题,可以关闭aria2下载功能。

1
scoop config aria2-enabled false

如果下载速度比较慢,而且你有代理的话,也可以让scoop通过代理来下载软件。

1
scoop config proxy localhost:10800

Scoop 常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
scoop help #查看帮助
scoop help <某个命令> # 具体查看某个命令的帮助

scoop install <app> # 安装 APP
scoop uinstall <app> # 卸载 APP

scoop list # 列出已安装的 APP
scoop search # 搜索 APP
scoop status # 检查哪些软件有更新

scoop update # 更新 Scoop 自身
scoop update appName1 appName2 # 更新某些app
scoop update * # 更新所有app

scoop bucket known #通过此命令列出已知所有 bucket(软件源)
scoop bucket add bucketName #添加某个 bucket

scoop cache rm <app> # 移除某个app的缓存

安装卸载软件

1
2
3
4
5
6
7
8
9
10
11
# 安装之前,通过 search 搜索 APP, 确定软件名称
scoop search xxx

# 安装 APP
scoop install AppName

# 安装特定版本的 APP;语法 AppName@[version],示例
scoop install git@2.36.0.windows.1

# 卸载 APP
scoop uninstall AppName #卸载 APP

更新软件

1
2
3
4
5
6
7
8
9
10
11
scoop update # 更新 Scoop 自身

scoop update appName1 appName2 # 更新某些app

# 更新所有 app (可能需要在apps目录下操作)
scoop update *

# 禁止某程序更新
scoop hold <app>
# 允许某程序更新
scoop unhold <app>

清除缓存与旧版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看所有已下载的缓存信息
scoop cache show

# 清除指定程序的下载缓存
scoop cache rm <app>

# 清除所有缓存
scoop cache rm *

# 删除某软件的旧版本
scoop cleanup <app>

# 删除全局安装的某软件的旧版本
scoop cleanup <app> -g

# 删除过期的下载缓存
scoop cleanup <app> -k

别名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 可用操作
scoop alias add|list|rm [<args>]

# 添加别名,格式:
scoop alias add <name> <command> <description>

# 示例:
scoop alias add st 'scoop status' '检查更新'

# 检查已添加的别名
scoop alias list -v

Name Command Summary
---- ------- -------
st scoop status 检查更新

# 测试已添加的别名 st
scoop st

在同一程序的不同版本之间切换

使用命令:

1
scoop reset [app]@[version]

示例:

1
2
3
4
5
6
scoop reset idea-ultimate-eap@201.6668.13

scoop reset idea-ultimate-eap@201.6073.9

# 切换到最新版本
scoop reset idea-ultimate-eap

对应版本的程序需要已经安装于本地系统中;所以在你清除某个软件的旧版本时考虑一下自己是否还会再次使用到此旧版本。

另外 idea-ultimate-eap 切换过程可能需要更长时间。

其它命令

1
2
3
4
5
6
7
8
# 显示某个app的信息
scoop info <app>

# 在浏览器中打开某app的主页
scoop home <app>

# 比如
scoop home git

安装和切换Python,java的版本

这里需要使用 scoop reset 它的作用是:重置一个应用程序来解决冲突。

命令格式为:

1
scoop reset <Python>[@<version>]

安装和切换不同的 Python 版本:

1
2
3
4
5
6
7
8
9
10
11
12
$ scoop bucket add versions # add the 'versions' bucket if you haven't already

$ scoop install python27 python
python --version # -> Python 3.6.2

# switch to python 2.7.x
$ scoop reset python27
python --version # -> Python 2.7.13

# switch back (to 3.x)
$ scoop reset python
python --version # -> Python 3.6.2