基于 Scoop 定制属于你自己的 Windows 应用源仓库

6,847 阅读7分钟

1 什么是 Scoop

Scoop 是一个 windows 命令行应用包安装管理工具。

Scoop is a command-line installer for Windows.

当你拿到了一台新电脑或者重装了 Windows 系统,在安装各种必备应用时,从各种源查找、下载和安装是十分费时费力的。此时你非常需要一款可一键安装所需应用的辅助工具。通过 360 软件管家这类的工具软件可以解决大部分需求,但有些如科学研究类的工具只能在 github 这类的开源仓库获取到。如果能够在命令行一键安装所需应用就好了,此时scoop 可能就是你想要的。

# 使用 scoop 批量安装常用应用示例:

scoop install `
  7zip `
  act `
  ADrive `
  BaiduNetDisk `
  chrome `
  DingTalk `
  feishu `
  finalshell `
  git `
  qq `
  Tencent-Meeting `
  wechat `
  WeChatWork `
  WPSOffice-cn

2 安装 Scoop

2.1 安装 Scoop 的基本要求

  • 用户名不含中文字符
  • PowerShell 7+
  • Windows 10 1607+ / Windows Server 2012+ / macOS 10.13+
  • .NET Framework 4.5+

2.2 适合中国大陆用户的 Scoop 安装与配置参考

打开 PowerShell 并执行如下命令进行安装:

# install
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# irm -useb get.scoop.sh | iex
irm https://mirror.ghproxy.com/raw.githubusercontent.com/lzwme/scoop-proxy-cn/master/install.ps1 | iex

# config
scoop config SCOOP_REPO https://mirror.ghproxy.com/github.com/ScoopInstaller/Scoop
scoop bucket rm main
# scoop bucket add main https://mirror.ghproxy.com/github.com/ScoopInstaller/Main
scoop bucket add spc https://mirror.ghproxy.com/https://github.com/lzwme/scoop-proxy-cn

# show help
scoop help

# 安装必备应用: scoop-search、aria2...
scoop install spc/scoop-search spc/aria2

安装成功后,可以在当前用户目录下找到 scoop 目录。如:

目录说明:

  • apps 存放已安装的工具。
  • buckets 存放添加的源仓库。其中 buckets/main 为官方源。
  • cache 下载的安装包缓存。若长久使用后占用空间太大了可以清理掉。
  • shims 已安装工具的入口文件。

其他说明:

  • 如果安装时指定了 --global 参数,则安装的位置为:C:\ProgramData\scoop
  • 可设置环境变量 SCOOP 指定当前用户默认安装的位置。
  • 可设置环境变量 SCOOP_GLOBAL 指定全局默认安装的位置。

3 使用 Scoop 安装应用

  • 查找:scoop-search rust 从本地 buckets 中查找包(rust)
  • 查看:scoop info rust 查看一个包的基本信息(rust
  • 安装:scoop install rust 安装一个包(rust)
  • 卸载:scoop uninstall rust 卸载一个包(rust)
  • 更新:scoop update [rust] 更新一个或全部包(rust)

安装应用示例:

# 使用 sudo 全局安装需要系统管理员权限的应用
scoop install sudo
sudo scoop install 7zip git openssh --global

# 批量安装常见应用
scoop install aria2 curl grep sed less touch

# 安装常见编程开发语言支持
scoop install python ruby go perl rust php

# 安装 Linux 命令行 gow
scoop install gow

# 安装 cmder
scoop install cmder

备份与恢复:

# 【备份】导出的 scoop 的 bucket、已安装 apps 和自定义配置信息到文件 `scoopfile.json`
scoop export > scoopfile.json
# 【恢复】从 scoopfile.json 文件中恢复信息
scoop import scoopfile.json

其他命令参考:

# 查看已安装程序
scoop list

# 查看更新
scoop status

# 自身诊断
scoop checkup

# 软件暂停更新
scoop hold <softname>

# 切换到指定版本
scoop reset <softname@版本号>

# 重置所有软件链接及图标
scoop reset *

# 删除缓存软件包
scoop cache rm *

# 删除旧版本
scoop cleanup rm *

# 打开应用主页(homepage)
scoop home <app_name>

4 添加更多的 buckets 软件库

  • scoop bucket known 列出已安装的 bucket
  • scoop bucket add <bucketname> 添加一个 bucket
  • scoop bucket rm <bucketname> 删除一个 bucket

Scoop 对官方源中的应用申请要求条件非常严格,其自带的 buckets 在 buckets/main 目录,仓库为 github.com/ScoopInstal…。其包含了约 1000 个官方收录应用,应用具体信息可在 buckets\main\bucket 目录中查看。

我们也可以添加第三方维护的 buckets 库,以支持安装更多的应用,从而实现支持科学研究类等软件安装与更新管理的便利性。示例:

# 查看官方推荐库
scoop bucket known

# 安装第三方库
scoop bucket add extras
scoop bucket add games
scoop bucket add nirsoft

# 示例:从 github 仓库直接添加(scoopcn 中大多是国内应用程序)
scoop bucket add scoopcn https://mirror.ghproxy.com/https://github.com/scoopcn/scoopcn.git

4.1 第三方 bucket 仓库参考

4.2 定制个性化的 bucket 源仓库

我们可以参考第三方 buckets 仓库的形式,定制维护个人使用的 buckets 仓库并添加,基本上只需要如下几步:

  1. 参考以上第三方源仓库,选取其中之一并 fork 一个仓库。
  2. bucketsscripts 目录中维护自己定制的软件配置信息。
  3. 确认在 github workflows 中,可以定时的基于 buckets 中的包配置的检测版本更新规则并更新。
  4. 使用 scoop bucket add <repo> 命令添加到本地。

然后就可以从你定制的仓库中安装和更新应用了。

4.3 定制适合大陆用户使用的镜像仓库

官方自带和第三方提供的 buckets 中,许多应用是从 github 上下载的,这在国内可能会因为 网速过慢、GFW、DNS 污染等原因而下载失败。

我们可以将第三方 buckets 仓库的包内容修改为国内可高速下载的镜像地址,在自己的仓库中维护。比如可以编写一个脚本,将所有从 github releases 下载的地址,修改为从 ghproxy.com 代理下载。

scoop-proxy-cn 是作者本人尝试性创建和维护的一个镜像仓库,从 4.1 节列举的所有源中每日定时同步,当前包含了 1.4w+ 应用。你可以直接使用它,或参考它的源码仓库定制自己的软件仓库。

添加 scoop-proxy-cn 源示例:

scoop bucket add spc https://mirror.ghproxy.com/https://github.com/lzwme/scoop-proxy-cn

# 指定从个人定制的仓库安装应用
scoop install spc/7zip

5 Scoop 可安装应用推荐

如果你添加了 scoop-proxy-cn 源,则可以有 1.4w+ 个应用可选择安装(注意:仅从第三方仓库同步,未逐一作可用性、安全性验证)。

以下为常用应用参考,可以通过 scoop install 命令一键安装。

  • scoop-searchbuckets 应用较多时scoop search命令慢到无法忍受。scoop-search 基于 go 语言开发,性能非常高。
  • aria2scoop 在批量安装多个应用时,以多进程模式并发下载和安装
  • 7zip 压缩与解压工具
  • ADrive 阿里云盘
  • BaiduNetDisk 百度网盘
  • DingTalk 钉钉
  • DownKyi 哔哩下载姬
  • ffmpeg 音视频处理
  • fscapture 轻量好用的截图工具
  • git-cn git 代码管理
  • NetEaseMusic 网易云音乐
  • utools 新一代效率工具平台,插件即应用。
  • wechat 微信
  • WeChatWork 企业微信
  • WPSOffice-cn WPS
  • Tencent-Meeting 腾讯会议
  • VLC-cn VLC 播放器,cn 镜像下载安装
  • you-get 基于 python3 的各视频网站视频下载神器
  • Yuque 语雀
  • more...

6 扩展参考