本文转载自:Scoop包管理工具

Scoop 包管理工具介绍🔗

Windows下常用的包管理工具有:

  • Scoop
  • Chocolatey

由于Scoop更容易配置(相比于Chocolatey),这里选择 Scoop

使用Scoop安装最佳的应用程序通常称为“便携式”应用程序:即在解压缩时独立运行的压缩程序文件,不存在更改注册表或将文件放在程序目录之外的副作用。

对于像 VirtualBox、Docker for Windows 这些需要高权限的软件还是会用安装包在用户界面下自定义安装。

对比Scoop和Chocolatey:

Chocolatey 能更加全面地包办绝大多数的软件安装,适应重度需求;而 Scoop 则更加简单利落,容易自定义软件包,适应中低需求。

Chocolatey 的安装脚本默认要求管理员权限安装,同时非管理员安装默认路径是 C:\ProgramData\chocoportable,这对于非高权限用户来说不太友好(比如没有管理员权限的工作机安装会比较折腾),而 Scoop 默认仅需普通用户权限,安装路径是 %USERPROFILE%\scoop 则显得比较清新,不过这都是可以根据需求修改的了。

Scoop更专注于开源的命令行开发人员工具 。

Github页面: scoop: A command-line installer for Windows.

Scoop安装配置🔗

默认设置已配置为用户级别安装的程序和Scoop本身都位于 C:\Users\<user>\scoop

全局安装的程序(所有用户可用)(--global)位于C\ProgramData\scoop中。可以通过环境变量更改这些设置 。

所以安装时先通过配置环境变量来配置其安装路径;然后在PowerShell运行命令下载。

Install Scoop to a Custom Directory

[environment]::setEnvironmentVariable('SCOOP','D:\Scoop','User')
$env:SCOOP='D:\Scoop'
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

相当于在用户变量中设置 SCOOP=D:\Scoop

具体安装方法见其Github

Configure Scoop to install global programs to a Custom Directory(可选,建议不改)

[environment]::setEnvironmentVariable('SCOOP_GLOBAL','D:\Scoop\GlobalScoopApps','Machine')
$env:SCOOP_GLOBAL='D:\Scoop\GlobalScoopApps'

相当于在系统变量中设置: SCOOP_GLOBAL=D:\Scoop\GlobalScoopApps;默认是在 C:\ProgramData\scoop,感觉不应该更改。

为什么需要全局安装呢?我想应该 对于那些 要求管理员权限的程序需要安装在全局

Global Installs / scoop Wiki ,像字体等需要给所有用户使用,所以需要使用全局安装。

1
2
3
4
5
6
# 初次安装也可选择安装下面这些,其中sudo要先进行本地安装
scoop install sudo
# 下面是全局安装的示例:个人感觉这几个软件还是直接进行本地安装更好
sudo scoop install 7zip git openssh --global
# 更新同样需要sudo 和 -g
sudo scoop update 7zip -g

Multi-connection downloads with aria2

scoop可通过aria2来进行多任务下载:

1
scoop install aria2

Scoop常用命令🔗

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
scoop help #查看帮助
scoop help <某个命令> # 具体查看某个命令的帮助
scoop install #安装 APP
scoop uninstall #卸载 APP
scoop list #列出已安装的 APP
scoop search #搜索 APP
scoop update #更新 Scoop 自身
scoop update appName1 appName2 # 更新某些app
scoop update *  # 更新所有 app (前提是需要在apps目录下操作)
scoop status # 检查哪些软件有更新
scoop bucket known #通过此命令列出已知所有 bucket(软件源)
scoop bucket add bucketName #添加某个 bucket
scoop cache rm <app> # 移除某个app的缓存
  • 对于GUI程序,scoop会自动为其在开始菜单中添加快捷方式 ,路径: C:\Users\Fan Dean\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Scoop Apps

  • 对于命令行程序,scoop会自动在 scoop应用安装路径下的 shims 文件夹下为其添加对应的exe程序,而shims文件夹是被添加到 PATH 变量中,所以可以直接在命令行中运行刚安装的程序。

安装 curl 、grep

scoop install curl grep

我们发现,下载的过程中自动下载了依赖7-zip。 在安装方面,它利用了7zip去解压安装包/压缩包,因此它对绿色软件有天生的友好属性。 。不仅如此,下载之后的内容会自动将加入到(Path)环境变量中。十分方便。大家都可以自己尝试为一些免安装软件建立软件源(需要安装的软件比较复杂,需要一定门槛)

Scoop 是一个强大的工具,有着极大的可玩性、设计与实现理念,包括但不限于 shim 的软链接理念、利用 persist 存储用户数据等等,如果你感兴趣,请直接参考 Scoop 官方的 Wiki

添加软件源Bucket🔗

Scoop说自己的软件源为Bucket,也可以称其为软件源或仓库。

参考:

# bucket的用法
scoop bucket add|list|known|rm [<args>]

一个添加第三方bucket的示例:

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

明确指定安装此软件源中的的程序

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

推荐的Bucket:

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

bucket更新时遇到问题🔗

由于extras bucket更新时遇到问题,我将其删除后再添加提示成功,但是它却把 main bucket及默认的bucket给删除了。通过"scoop status"检查状态时出现"These app manifests have been removed"并且下面列出了已被移除的软件名单。那么如何将 main bucket重新添加进来?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
scoop help bucket
scoop bucket known #通过此命令列出已知所有 bucket

$ scoop bucket known # 示列
main
extras
versions
nightlies
nirsoft
php
nerd-fonts
nonportable
java
games
jetbrains

scoop bucket add main #添加 main bucket

网络问题安装失败🔗

比如安装irfanview一直失败,查看信息

1
2
ERROR Download failed! (Error 1) An unknown error occurred
ERROR https://www.irfanview.info/files/iview453_x64.zip

看另一个示例:

1
scoop install mediainfo

也是下载不下来,从输出信息中可以看到如下内容

ERROR Download failed! (Error 1) An unknown error occurred
ERROR https://mediaarea.net/download/binary/mediainfo/19.09/MediaInfo_CLI_19.09_Windows_x64.zip
    referer=https://mediaarea.net/download/binary/mediainfo/19.09/
    dir=D:\Scoop\Applications\cache
    out=mediainfo#19.09#https_mediaarea.net_download_binary_mediainfo_19.09_MediaInfo_CLI_19.09_Windows_x64.zip

ERROR & ‘D:\Scoop\Applications\apps\aria2\current\aria2c.exe’ –input-file=’D:\Scoop\Applications\cache\mediainfo.txt’

我们可以发现文件的下载路径和下载后的文件名称,这里 out= 后面的压缩包就是下载后文件的名称,(也可以在 mediainfo.txt 中找到)

然后我们可以尝试在浏览器下载该程序,再更改文件名放入 sxoop 的 cache 目录,最后再次运行 scoop install mediainfo 即可安装。


下面的内容只是个人的一些记录,还有待补充和完善

已安装软件列表🔗

添加额外的extras bucket:

1
scoop bucket add extras

离线文档查看 zeal :可集成到 idea 等

1
λ scoop install zeal

视频播放器 mpv

1
λ scoop install mpv

文件同步工具 syncthing,在GitHub上超级火爆

1
λ scoop install syncthing

ImageMagick 看图软件可以安装其替代品 GraphicsMagick

SVN

scoop install sliksvn
scoop install xx-net

idea-ultimate:

scoop install idea-ultimate
scoop install sumatrapdf

推荐的软件🔗

这里记录了Github上各种bucket,rasa/scoop-directory: A directory of buckets for the scoop package manager for Windows 相当于Scoop的第三方软件源。

新机安装顺序:

  • 可选:Google官网下载Chrome下载器
  • 先安装 scoop,将其配置好;再为scoop添加下面几个软件源:extras、dorado(对中文支持更好)、ash258、java
  • 通过scoop安装cmder(或者安装WindowsTerminal)、RunAny(第一次使用scoop安装其他程序时就会自动安装7z)
  • 通过scoop安装必要软件

按安装方式进行分类

下载exe安装包安装:

  • Firefox:使用scoop下载的话会出现无法更改语言和添加插件;使用PortableApp下载速度又贼慢

    Firefox最新版本下载:根据此处(latest Firefox release)说明,拼出下面的下载地址(Win64,简体中文)

    https://download.mozilla.org/?product=firefox-latest&os=win64&lang=zh-CN
    
  • Chrome浏览器:直接在官网下载(是一个安装器),通过安装器安装的Chrome在之后更新时无需翻墙

通过压缩包安装:

通过Scoop安装:

  • Cmder:Windows下替代cmd的终端
  • 各种可在命令行使用的开发相关的程序
  • geekuninstaller:著名的卸载工具,能够完全清理卸载残留
  • vscode-portable :VS code 在scoop中已经有绿色版
  • qbittorrent:BT下载软件
  • notepadplusplus:替代默认记事本的程序
  • 7-zip:
  • uGet:简洁无广告的下载工具(Linux上可用)