scoop的安装及基本使用

本文最后更新于:1 年前

windows下的安装源搜索工具,有点类似centos下的yum和Ubuntu下的apt。用这个拉下来安装的软件没有广告。

scoop

安装条件

  • Windows 7 以上
  • 64位系统
  • powershell 3 以上

查看powershell版本

1
$PSVersionTable.PSVersion

更改脚本执行策略(必须)

1
set-executionpolicy remotesigned -s cu

安装

设置环境变量

1
2
3
$env:SCOOP='D:\Scoop'

[Environment]::SetEnvironmentVariable('SCOOP',$env:SCOOP,'User')

这里设置环境变量第三个参数User表示用户级别,Machine表示系统级别。Machine没权限的话,可以手动去环境变量设置。

安装命令

1
2
3
4
5
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

## 或者

iwr-useb get.scoop.sh|iex

事实上,上面两个目前都是不可用的。

这里需要点小技巧才能安装,你得有魔法,没有的话自己解决,改hosts没有生效

卸载命令

1
scoop uninstall scoop

注意:这个卸载,会删除你配置的scoop下面的所有软件,非常危险。

基本使用

这里以安装curl为例

换源

先换源,换个新的较多的源

1
scoop bucket add extras

运行成功以后会有下面的提示

1
2
Checking repo... ok
The extras bucket was added successfully.

安装curl

1
2
3
4
## 安装软件
scoop install -g [app的名称]
## 我这里-g 需要admin权限,取消-g可安装
scoop install curl

使用curl访问百度

检测潜在的隐患

1
scoop checkup

初次安装建议安装

1
2
3
4
5
# 但 scoop 进行全局安装时需要使用到 sudo 命令
scoop install sudo

# scoop下载程序时支持使用 aria2 来加速下载
scoop install aria2

常用命令

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

scoop install [appname] # 安装 APP
scoop uinstall [appname] # 卸载 APP

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

scoop update # 更新 Scoop 自身
scoop update appName1 appName2 # 更新某些app
scoop update * # 更新所有 app (前提是需要在apps目录下操作)

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

scoop cache rm [appname] # 移除某个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.23.0.windows.1

# 卸载 APP
scoop uninstall #卸载 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
19
20
21
# 可用操作
scoop alias add|list|rm [<args>]

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

# 示例:(注意:必须在 Powershell中运行)
scoop alias add st 'scoop status' '检查更新'
# 检查已添加的别名
scoop alias list -v

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

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


# 另一个示例:
scoop alias add rm 'scoop uninstall $args[0]' '卸载某 app'

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

使用命令:

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

添加软件源 Bucket

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

1
2
3
4
5
6
# bucket的用法
scoop bucket add|list|known|rm [<args>]
```powerShell
添加 extras :
```powershell
scoop bucket add extras

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

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

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

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

推荐的 Bucket(软件源):

  • extras:Scoop 官方维护的一个仓库,涵盖了大部分因为种种原因不能被收录进主仓库的常用软件(在我看来是必须要添加的)。地址:lukesampson/scoop-extras

  • nirsoft:是一个 NirSoft 开发的小工具的安装合集。NirSoft 制作了大量的小工具,包括系统工具、网络工具、密码恢复等等,孜孜不倦、持续更新。

  • dorado(添加了一些国内的app,比如 qqplayer ️)h404bi/dorado

  • ash258:Ash258/scoop-Ash258

  • java:添加后可以通过它安装各种 jdk 、 jre

  • nerd-fonts :包含各种字体

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 先添加bucket
    scoop bucket add extras
    scoop bucket add nirsoft
    scoop bucket add dorado https://github.com/h404bi/dorado
    scoop bucket add Ash258 'https://github.com/Ash258/Scoop-Ash258.git'
    scoop bucket add nerd-fonts
    # 对于开发人员,可添加下面的两个
    scoop bucket add java
    scoop bucket add versions

    官方给出的源

  • main - Default bucket for the most common (mostly CLI) apps

  • extras - Apps that don’t fit the main bucket’s criteria

  • games - Open source/freeware games and game-related tools

  • nerd-fonts - Nerd Fonts

  • nirsoft - Almost all of the 250+ apps from Nirsoft

  • java - A collection of Java development kits (JDKs), Java runtime engines (JREs), Java’s virtual machine debugging tools and Java based runtime engines.

  • nonportable - Non-portable apps (may require UAC)

  • php - Installers for most versions of PHP

  • versions - Alternative versions of apps found in other buckets

    bucket 更新时遇到问题

    情况是这样:当我运行 scoop update 进行更新时提示: extras bucket 更新失败。于是我将其删除后再添加,提示成功,但是它却把 main
    bucket (默认的 bucket) 给删除了。通过”scoop status”检查状态时出现 “These app
    manifests have been removed”并且下面列出了已被移除的软件名单。 那么如何解决此问题?

我们需要重新添加 main bucket :

1
scoop bucket add main #添加 main bucket