Scoop 相关汇总

◇ Scoop 介绍

* 软件包管理工具

  • 软件包管理工具集搜索、下载、安装、更新软件于一体,可以帮用户一行命令安装 git 工具、java 环境等等,统一目录管理,而且自动配置环境变量,极大地降低了安装维护成本,简化操作,更加便于管理软件。
  • 软件包管理工具可以将软件干干净净地安装到电脑的用户文件夹下,这样既不会污染路径也不会请求不必要的权限。
  • 在卸载软件的时候,能够尽量清空软件在电脑上存储的任何数据和痕迹。

软件包管理工具有很多,相比于 Chocolatey,Scoop 更专注于开源的命令行工具,使用 Scoop 安装的应用程序通常称为"便携式"应用程序,需要的权限更少,对系统产生的副作用也更少,所以这里选择了使用 Scoop。

⚠️️ 注意:对于像 VirtualBox、Docker for Windows ,输入法等这些需要高权限的软件还是通过在官网下载安装包进行安装。

* Scoop 的设计与实现理念

  • 分离用户数据:默认将程序的用户数据存储到 persist 目录中,这样当用户日后升级该程序后之前的用户配置依然可用。(但是对于部分程序支持的不是很完善)
  • shim软链接:scoop 会自动在 scoop 应用安装路径下的 shims 文件夹下为新安装的程序添加对应的 .exe 文件,而 shims 文件夹提前就已被添加到 PATH 环境变量中,所以程序一旦安装就可以直接在命令行中运行。
  • 对于 GUI 程序 ,scoop 还会自动为其在开始菜单中添加快捷方式 ,路径为: C:\Users\<user>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Scoop Apps

◇ Scoop 安装

1. 允许PowerShell执行本地脚本

⚠️️ 请确保PowerShell >= 5.0,(如果是 Window10 则默认满足此条件)

1
2
3
4
set-executionpolicy remotesigned -scope currentuser

# 或者 (但是它没有上面的命令安全)
set-executionpolicy Unrestricted -scope currentuser

2. 将 Scoop 安装到自定义目录

⚠️️ 用户级别安装的程序和 Scoop 本身默认安装于C:\Users\<user>\scoop
全局安装的程序(所有用户可用,使用--global-g选项)位于C:\ProgramData\scoop路径中。
可以通过更改对应的环境变量更改这些路径。

  • 使用 PowerShell 先配置环境变量 SCOOP ,再运行 iex

    1
    2
    3
    4
    5
    6
    7
    8
    # 先添加用户级别的环境变量 SCOOP
    $env:SCOOP='D:\Scoop' #自定义路径
    [environment]::setEnvironmentVariable('SCOOP',$env:SCOOP,'User')

    # 然后下载安装 Scoop (如果使用默认安装路径则直接运行下面的命令)
    iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
    # 或者使用下面的命令安装:
    iwr -useb get.scoop.sh | iex
  • 配置全局安装路径(可选,建议不改)

    1
    2
    $env:SCOOP_GLOBAL='D:\GlobalScoopApps'  #自定义路径
    [environment]::setEnvironmentVariable('SCOOP_GLOBAL',$env:SCOOP_GLOBAL,'Machine')

    关于全局安装:
    当你使用Scoop安装一个应用程序时,它默认会将应用程序安装在你的用户目录下的scoop\apps目录中。而使用-g选项安装应用程序时,它将会被安装在全局范围内,而不是仅限于当前用户。

    具体来说,使用-g选项安装应用程序时,它将被安装在你计算机上的一个特定目录下,而不是被安装到你当前用户目录下的scoop\apps目录中。这意味着你可以在任何用户下使用全局安装的应用程序,而不仅仅是在当前用户下。

    通常情况下,你可以在命令行中使用全局安装的应用程序的命令。例如,如果你全局安装了git应用程序,你可以在命令行中运行git命令,而不需要在每个用户下都安装git应用程序。

    需要注意的是,全局安装应用程序可能会导致一些问题。例如,不同的用户可能需要不同的应用程序版本,而全局安装的应用程序只有一个版本。另外,全局安装的应用程序可能会与你当前用户的应用程序发生冲突。因此,建议只在确实需要全局安装的情况下使用-g选项安装应用程序。

    ⚠️️ 为什么需要全局安装?
    对于那些需要管理员权限的程序需要进行全局安装。或者例如安装字体时如果需要给所有用户使用,则使用全局安装。

到此,Scoop 便安装完成。

◇ 软件源相关

Scoop 可安装的软件信息存储在 Bucket 中,也可以称其为软件源。Scoop 默认的 Bucket 为 main , 由于 Scoop 的设计初衷是为了方便 Windows 开发者安装和配置开发工具,其默认软件仓库的收录条件也就很苛刻:

  • 必须是主流的开发者工具
  • 必须是维护中的最新版本的软件
  • 必须是完整版本(非 Trial 版本)的软件
  • 不可以有复杂的安装前与安装后处理步骤
  • 不可以有 GUI

这也就使得默认仓库的软件数量比较有限的。不过,除了 main 外,官方还维护了几个其他源,同时也有很多第三方源。我们可以通过手动添加 bucket 来添加其他软件仓库,从而下载我们想要的软件的安装配置文件,来安装不在默认仓库中的软件。这里是一个按照 Github score(由 Star 数量、Fork 数量和 App 数量综合决定的 Github score)排列的 bucket 列表:https://rasa.github.io/scoop-directory/by-score

下面简单介绍几个源:

◇ 常用的 Scoop 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
scoop help						# 帮助
scoop help cache # 查看某一命令的具体用法,如查看cache命令的具体用法
scoop checkup # 检测当前潜在的问题
scoop status # 检查有哪些软件更新

scoop bucket list # 列出已安装的软件源
scoop bucket known # 列出所有官方已知 bucket(软件源)
scoop bucket add extras # 添加某个官方 bucket,如 extras
scoop bucket add xxx https://xxx.com/xxx/xxx.git # 添加自定义源
scoop bucket rm <bucket_name> # 移除某个源

scoop search android # 搜索安卓相关软件
scoop info android-studio # 查看 Android Studio 的软件信息
scoop home git # 在浏览器中打开 git的主页

scoop install git # 安装 git
sudo scoop install git --global # 给所有用户安装 git,需要先安装 sudo
scoop install git@2.23.0.windows.1 # 安装特定版本的 APP;语法 AppName@[version]
scoop install <bucket_name>/<app_name> # 指定添加某个源中的某一程序
scoop install https://raw.githubusercontent.com/ScoopInstaller/Main/master/bucket/runat.json # 直接通过仓库的链接安装程式
scoop uninstall git # 卸载 git
scoop uninstall git -p # 卸载 git 同时移除配置文件

scoop update # 更新 Scoop 本身
scoop update 7zip git # 更新 7zip 和 git
scoop update * # 更新所有软件
scoop hold 7zip # 禁止 7zip 程序更新
scoop unhold 7zip # 允许 7zip 程序更新

scoop list # 列出所有已安装软件
scoop list adopt # 列出已安装的名字中带有 adopt 的软件
scoop export > scoop.txt # 导出 Scoop 软件列表

scoop cache show # 查看已下载的安装包缓存
scoop cache rm 7zip # 删除 7zip 的安装包缓存
scoop cache rm * # 删除所有的安装包缓存

scoop reset python27 # 切换python版本
scoop reset idea-ultimate-eap@201.6073.9 # 切换idea-ultimate-eap到201.6073.9版本
scoop reset idea-ultimate-eap # 切换到最新版本

scoop cleanup * # 删除所有软件的旧版本
scoop cleanup <app> # 删除某软件的旧版本
scoop cleanup <app> -g # 删除全局安装的某软件的旧版本
scoop cleanup <app> -k # 删除过期的软件安装包缓存

scoop config # 列出当前配置
scoop config proxy 127.0.0.1:xxxx # 设置代理
scoop config rm proxy # 关闭代理

scoop config aria2-enabled false # 关闭 aria2 加速
scoop config aria2-retry-wait 4 # 重试等待秒数,默认2
scoop config aria2-split 16 # 单任务最大连接数,默认5
scoop config aria2-max-connection-per-server 16 # 单服务器最大连接数,默认5,最大16
scoop config aria2-min-split-size 4M # 最小文件分片大小,默认5M

◇ 一些软件介绍

* 建议直接在官网下载安装的软件

  • Firefox:使用 scoop 下载的话会可能出现无法更改语言和添加插件。
  • Chrome:直接在官网下载(是一个安装器),通过安装器安装的 Chrome 在之后更新时无需特定网络。
  • VSCode:如果在 scoop 中安装 VS code 便携版会导致版本升级后,某些插件的配置文件路径可能会出现问题,建议直接安装。
  • Potplayer:scoop 安装会出现 2 个应用程式,其中一个带韩国本土直播功能应该用不着,而且后续可能需要加装解码器,为避免文件路径等不必要的麻烦可以直接官网安装。
  • Rime 输入法:輸入法是一种有较高权限的系统应用。
  • qbittorrent enhanced:有应用内更新,所以直接安装包安装更新更方便。
  • freedownloadmanger:有应用内更新,所以直接安装包安装更新更方便。同时可避免一些 bug。

* 可以 Scoop 安装的软件

  • sudo:scoop 进行全局安装时需要使用到 sudo 命令。
  • aria2:scoop下载程序时支持使用 aria2 来加速下载。
  • 7zip:解压工具,scoop下载程序默认用 7zip 来解压。
  • git / adb / ffmpeg / python / nodejs 等:命令行工具和各种开发环境都推荐 Scoop 安装。
  • keepass:开源的密码管理器。
  • notepadplusplus:替代默认记事本的程序。
  • geekuninstaller:极客卸载器,卸载后能帮助清注册表和安装目录残留。
  • dismplusplus:清理系统盘,以及一些实用工具。
  • spacesniffer:Windows 磁盘分析工具,可以快速分析整个磁盘的分布比例,按照各个方格来排布文件,一键删除不用的大文件。
  • coretemp:核心温度。
  • localsend / landrop:开源的跨平台局域网传输工具。
  • everything:在秒级的时间内找到电脑上的任何文件。
  • wox:可以和 everything 搭配,有很多强大的插件。
  • eartrumpet:音量控制。
  • windows-terminal / terminus / cmder:终端替代工具。(wt添加右键菜单
  • oh-my-posh / posh-git / zlocation:命令行美化工具,与前面的终端工具配合。(配置教程
  • dopamine / foobar2000:音乐播放器。
  • spek:音乐频谱分析。
  • motrix:免费开源的下载器。
  • stairspeedtest-reborn:节点批量测速。
  • wireshark:抓包工具。
  • bypass:分流抢票。
  • copytranslator:复制即翻译的外文辅助阅读器。
  • typora:Markdown 编辑器。
  • Screentogif:Gif 屏幕录制软件及 Gif 编辑器。
  • obs-studio:录屏软件。

◇ Scoop 文件夹结构

  • apps:软件文件夹,所有非全局安装的软件都在这。
    • appname/current :当前软件版本对应的文件夹的软链接,如果你对某个软件设置调用该文件夹下的软件(例如 maven 环境设为 current 目录,那么这个指向的软件永远都会是最新版本)。
  • buckets:软件源文件夹,所有软件的下载地址等元数据都保存在这里,内部文件夹都是由 git 形成的,因此也可以采用 git pull 来更新源。
  • cache:软件安装包所在位置,如果遇到软件下载缓慢的情况,也可以用其他工具下载对应软件,然后修改文件名放置到这个目录下进行安装。
  • persist:永久配置文件夹,大部分的软件的配置都会存到这个目录下,以保证软件最新版用的都是原来的配置。
  • shims:软件二进制的超链接,基本所有的命令行工具都会在这个文件夹内建立一个超链接,目的是为了防止环境变量 PATH 受到过多污染。

◇ 网络问题

由于众所周知的原因,使用过程中可能会遇到下载失败等各种问题。这里列两种解决方法。

* 使用 proxy

如果你用浏览器可以正常访问 github 等网站,但使用 scoop 命令行总遇到网络错误等问题,可以尝试使用以下命令:

1
scoop config proxy 127.0.0.1:xxxx		# xxxx 自行替换为自己的端口号,可以查看自己的代理工具设置,比如我的是 7890

* 使用镜像源

如果目前没有特殊网络环境,可以将官方源替换为国内镜像源,命令如下:

1
2
scoop bucket rm main		# 先移除现有的源
scoop bucket add main https://gitcode.net/mirrors/ScoopInstaller/Main.git # 再添加镜像源

下面列了两个常用的镜像源,关于 scoop 的镜像源其实有很多,其他可以试着在这里寻找,或者到 gitee 上看看。

◇ 参考内容

  1. Scoop包管理器的相关技巧和知识. https://www.thisfaner.com/p/scoop
  2. 重装系统后要干的几件事. https://blog.csdn.net/Apple_Coco/article/details/113281197
  3. 一行代码搞定软件安装卸载,用 Scoop 管理你的 Windows 软件. https://sspai.com/post/52496
  4. 给 Scoop 加上这些软件仓库,让它变成强大的 Windows 软件管理器. https://sspai.com/post/52710
  5. Scoop windows下的包管理器. https://blog.csdn.net/qq_40302536/article/details/116097541
  6. 全平台的备份指南,让你从此重装不再难. https://sspai.com/post/56272
  7. Scoop安装、使用与卸载. https://zhuanlan.zhihu.com/p/609534833