scoop

Scoop是一个 Win­dows 包管理工具,类似于 De­bian 的 apt、ma­cOS 的 homebrew。它由开源社区驱动,体验可能是是目前所有 Win­dows 包管理工具中最好的。对开发者来说,包管理器能非常方便的部署开发环境,比如 Python 、Node.js 。而对于像博主这样的普通的计算机使用者来说,可以方便的安装一些常用软件,尤其是开源软件,免去了手动去官网下载的繁琐步骤,而且后续对软件进行升级只需要输入一行命令,非常便捷。

官网:https://scoop.sh/

参考:

https://github.com/lukesampson/scoop/wiki

https://sspai.com/post/52496

https://chawyehsu.com/blog/talk-about-scoop-the-package-manager-for-windows-again

环境要求

1
2
3
4
Windows 7 SP1 + / Windows Server 2008+
PowerShell 5(或更高版本,包括 PowerShell Core)和 .NET Framework 4.5(或更高版本)
Windows 用户名为英文(Windows 用户环境变量中路径值不支持中文字符)
正常、快速的访问 GitHub 并下载资源

安装 Scoop 若Powershell或.NET Franmework版本过旧,更新后重启即可。若不清楚版本号,可Win+R运行powershell,输入以下命令获取版本号。

1
2
$PSVersionTable.PSVersion.Major   #查看Powershell版本
$PSVersionTable.CLRVersion.Major #查看.NET Framework版本

安装scoop

Scoop 默认使用普通用户权限,其本体和安装的软件默认会放在 %USERPROFILE%\scoop(即 C:\Users\用户名\scoop),使用管理员权限进行全局安装 (-g) 的软件在 C:\ProgramData\scoop。如果有自定安装路径的需求,那么要提前设置好环境变量,否则后续再改不是一件容易的事情。

  • 打开 PowerShell
  • 设置用户安装路径
1
2
$env:SCOOP='D:\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
  • 设置全局安装路径(需要管理员权限)
1
2
$env:SCOOP_GLOBAL='D:\Scoop_Global'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')
  • 设置允许 PowerShell 执行本地脚本
1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • 没安装过 Git 则需要安装。
1
scoop install git
  • 安装 Scoop
1
iwr -useb get.scoop.sh | iex

如果下载scoop的过程中断,那么必须先删除(C:\Users\<user>\scoop)文件夹,再执行以上命令安装。
下载完成后,输入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
Usage: scoop <command> [<args>]

Some useful commands are:

alias Manage scoop aliases
bucket Manage Scoop buckets
cache Show or clear the download cache
checkup Check for potential problems
cleanup Cleanup apps by removing old versions
config Get or set configuration values
create Create a custom app manifest
depends List dependencies for an app
export Exports (an importable) list of installed apps
help Show help for a command
hold Hold an app to disable updates
home Opens the app homepage
info Display information about an app
install Install apps
list List installed apps
prefix Returns the path to the specified app
reset Reset an app to resolve conflicts
search Search available apps
status Show status and check for new app versions
unhold Unhold an app to enable updates
uninstall Uninstall an app
update Update apps, or Scoop itself
virustotal Look for app's hash on virustotal.com
which Locate a shim/executable (similar to 'which' on Linux)


Type 'scoop help <command>' to get help for a specific command.

基础使用

  • 命令列表
1
2
3
4
5
6
7
8
9
10
11
scoop search <app> # 搜索软件
scoop install <app> # 安装软件
scoop info <app> # 查看软件详细信息
scoop list # 查看已安装软件
scoop uninstall <app> # 卸载软件,`-p`删除配置文件。
scoop update # 更新 scoop 本体和软件列表
scoop update <app> # 更新指定软件
scoop update * # 更新所有已安装的软件
scoop checkup # 检查 scoop 的问题并给出解决问题的建议
scoop help # 查看命令列表
scoop help <command> # 查看命令帮助说明

进阶使用

添加 bucket

所有的包管理器都会有相应的软件仓库 ,而 bucket 就是 Scoop 中的软件仓库。细心的你可能会发现 scoop 翻译为中文是 “舀”,而 bucket 是 “水桶”,所以安装软件可以理解为从水桶里舀水。

Scoop 默认软件仓库(main bucket)软件数量是有限的,但是可以进行额外的添加。通过 scoop bucket known 命令可以查看官方认可的 bucket:

1
2
3
4
5
6
7
8
9
10
11
12
$ scoop bucket known
main
extras
versions
nightlies
nirsoft
php
nerd-fonts
nonportable
java
games
jetbrains

以上官方认可的 bucket 可以通过下面这个命令直接添加:

1
scoop bucket add <bucketname>

extras涵盖了大部分因为种种原因不能被收录进主仓库的常用软件,这个是强推荐添加的。

1
scoop bucket add extras

比如写盘工具 Ru­fus 就在 extras 这个仓库中。

1
scoop install rufus

nerd-fonts包含了美化终端时会用到的 Pow­er­line 字体

1
scoop bucket add nerd-fonts

当添加 nerd-fonts 仓库后可以通过以下命令搜索到所有的字体:

1
scoop search "-NF"

安装字体需要使用管理员权限:

1
sudo scoop install FiraCode-NF

第三方 bucket

添加第三方 bucket

1
scoop bucket add <bucketname> https://github.com/xxx/xxx

从第三方 bucket 中安装软件

1
scoop install <bucketname>/<app>

清理安装包缓存

Scoop 会保留下载的安装包,对于卸载后又想再安装的情况,不需要重复下载。但长期累积会占用大量的磁盘空间,如果用不到就成了垃圾。这时可以使用 scoop cache 命令来清理。

  • scoop cache show - 显示安装包缓存
  • scoop cache rm <app> - 删除指定应用的安装包缓存
  • scoop cache rm * - 删除所有的安装包缓存

如果你不希望安装和更新软件时保留安装包缓存,可以加上 -k--no-cache 选项来禁用缓存:

  • scoop install -k <app>
  • scoop update -k *

删除旧版本软件

当软件被更新后 Scoop 还会保留软件的旧版本,更新软件后可以通过 scoop cleanup 命令进行删除。

  • scoop cleanup <app> - 删除指定软件的旧版本
  • scoop cleanup * - 删除所有软件的旧版本

与安装软件一样,删除旧版本软件的同时也可以清理安装包缓存,同样是加上 -k 选项。

  • scoop cleanup -k <app> - 删除指定软件的旧版本并清除安装包缓存
  • scoop cleanup -k * - 删除所有软件的旧版本并清除安装包缓存

全局安装

全局安装就是给系统中的所有用户都安装,且环境变量是系统变量,对于需要设置系统变量的一些软件就需要全局安装,比如 Node.js、Python ,否则某些情况会出现无法找到命令的问题。

使用 scoop install <app> 命令加上 -g--global 选项可对软件进行全局安装,全局安装需要管理员权限,所以需要提前以管理员权限运行的 Pow­er­Shell 。更简单的方式是先安装 sudo,然后用 sudo 命令来提权执行:

1
2
scoop install sudo
sudo scoop install -g <app>

达成在 Win­dows 上使用sudo的成就

使用 scoop list 命令查看已装软件时,全局安装的软件末尾会有 *global* 标志。

1
2
3
4
5
6
7
8
9
10
$ scoop list
Installed apps:

7zip 19.00
ffmpeg 4.2.3
git 2.26.2.windows.1 *global*
nodejs-lts 12.17.0 *global*
python 3.8.3 *global*
screentogif 2.24.2 [extras]
sudo 0.2020.01.26

此外对于全局软件的更新和卸载等其它操作,都需要加上 -g 选项:

1
2
3
4
5
sudo scoop update -g * # 更新所有软件(且包含全局软件)
sudo scoop uninstall -g <app> # 卸载全局软件
sudo scoop uninstall -gp <app> # 卸载全局软件(并删除配置文件)
sudo scoop cleanup -g * # 删除所有全局软件的旧版本
sudo scoop cleanup -gk * # 删除所有全局软件的旧版本(并清除安装包包缓存)

代理设置

Scoop 默认使用的是系统代理,如果你想手动指定代理,可以输入下面的命令。需要注意的是只支持 http 协议。

1
scoop config proxy localhost:1080

设置完可以通过scoop config proxy查看。

如果你想取消代理,那么输入下面的命令,这将会恢复使用系统代理。

1
scoop config rm proxy

开启多线程下载

使用 Scoop 安装 Aria2 后,Scoop 会自动调用 Aria2 进行多线程加速下载。

1
scoop install aria2

使用 scoop config 命令可以对 Aria2 进行设置,比如 scoop config aria2-enabled false 可以禁止调用 Aria2 下载。以下是与 Aria2 有关的设置选项:

  • aria2-enabled: 开启 Aria2 下载,默认true
  • aria2-retry-wait: 重试等待秒数,默认2
  • aria2-split: 单任务最大连接数,默认5
  • aria2-max-connection-per-server: 单服务器最大连接数,默认5 ,最大16
  • aria2-min-split-size: 最小文件分片大小,默认5M

这里推荐以下优化设置,单任务最大连接数设置为 32,单服务器最大连接数设置为 16,最小文件分片大小设置为 1M

1
2
3
scoop config aria2-split 32
scoop config aria2-max-connection-per-server 16
scoop config aria2-min-split-size 1M

常用命令总结

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
# 更新 scoop 及软件包列表
scoop update

## 安装软件 ##
# 非全局安装(并禁止安装包缓存)
scoop install -k <app>
# 全局安装(并禁止安装包缓存)
sudo scoop install -gk <app>

## 卸载软件 ##
# 卸载非全局软件(并删除配置文件)
scoop uninstall -p <app>
# 卸载全局软件(并删除配置文件)
sudo scoop uninstall -gp <app>

## 更新软件 ##
# 更新所有非全局软件(并禁止安装包缓存)
scoop update -k *
# 更新所有软件(并禁止安装包缓存)
sudo scoop update -gk *

## 垃圾清理 ##
# 删除所有旧版本非全局软件(并删除软件包缓存)
scoop cleanup -k *
# 删除所有旧版本软件(并删除软件包缓存)
sudo scoop cleanup -gk *
# 清除软件包缓存
scoop cache rm *

Chocolatey

Chocolatey是一款专为Windows系统开发的、基于NuGet的包管理器工具,类似于Node.js的npm,MacOS的 brew,Ubuntu的 apt-get,简称为 choco。
Chocolatey的设计目标是成为一个去中心化的框架,便于开发者按需快速安装应用程序和工具。

Chocolatey 官网: https://chocolatey.org/

软件源:https://community.chocolatey.org/packages

github:https://github.com/chocolatey/choco

参考:

https://guangchuangyu.github.io/cn/2018/06/chocolatey/

安装

使用以管理员权限打开PowerShell

运行 Get-ExecutionPolicy,如果结果是 Restricted,则运行 Set-ExecutionPolicy AllSigned 或者 Set-ExecutionPolicy Bypass -Scope Process

输入并执行如下命令:

1
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

或者

1
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))

Chocolatey的作者创建了一个短网址,包含了Chocolatey的安装脚本。嫌上面的太长的话,可以用这个:

1
iwr https://cin.st | iex

自定义安装位置

以上都是安装到了默认位置C:\ProgramData\Chocolatey,如果现在其他地方安装Chocolatey的话,需要新建一个环境变量ChocolateyInstall,值是你希望安装到的文件夹。然后手动创建这个文件夹。然后再运行上面的命令。如果已经安装了,可以再次运行安装命令,这样可以重新安装到你指定的位置。

包列表

通过官网 https://chocolatey.org/packages 可以图形界面浏览各软件包,以及安装命令

使用

  • search - 搜索包 choco search something
  • list - 列出包 choco list -lo
  • install - 安装 choco install baretail
  • pin - 固定包的版本,防止包被升级 choco pin windirstat
  • upgrade - 安装包的升级 choco upgrade baretail
  • uninstall - 安装包的卸载 choco uninstall baretail

更多命令可以通过 choco -help 查看

1
2
3
4
5
6
7
8
9
10
11
12
choco install autohotkey.portable    #安装 AutoHotkey (Portable)
choco install nodejs.install #安装 node
choco install git.install #安装 git
choco install python #安装 python
choco install ruby #安装 ruby
choco install jdk8 #安装 JDK8
choco install googlechrome #安装 Chrome
choco install google-chrome-x64 #Google Chrome (64-bit only)
choco install firefox #安装 firefox
choco install notepadplusplus.install #安装 notepad++
choco install Atom #安装 Atom
choco install SublimeText3 #安装 SublimeText3

Winget

官方文档:https://docs.microsoft.com/zh-cn/windows/package-manager/winget/

github:https://github.com/microsoft/winget-cli

安装

  • 法1:提交 WinGet 的预览体验申请,Win10 商店下载

  • 法2:申请加入 Windows Insider,Win10 商店下载

  • 法3:GitHub下载安装包直接安装

推荐法3,简单直接, 在 GitHub 搜索 WinGet,microsoft/winget-cli 就是该项目。在 releases 页面下载名为 Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle 的软件安装包。

使用

安装 应用安装程序 后,可以通过在命令提示符下键入 “winget” 来运行 WinGet 。最常见的使用场景之一是搜索并安装你最喜欢的工具。若要搜索某个工具,请键入 winget search \<appname>

确认你需要的工具可用后,可以通过键入 winget install \<appname> 来安装该工具。 WinGet 工具会启动安装程序,将应用程序安装在你的电脑上。

命令 说明
hash 为安装程序生成 SHA256 哈希。
help 显示 winget 工具命令的帮助信息。
install 安装指定的应用程序。
search 搜索某个应用程序。
show 显示指定应用程序的详细信息。
source 添加、删除和更新 winget 工具访问的 Windows 程序包管理器存储库。
validate 验证要提交到 Windows 程序包管理器存储库的清单文件。