教程_Scoop:超好⽤的Windows包管理器
前⾔
是⼀个 Win d ows 包管理⼯具,类似于 De b ian 的 apt、ma c OS 的 homebrew。它由开源社区驱动,体验可能是是⽬前所有 Win d ows 包管理⼯具中最好的。对开发者来说,包管理器能⾮常⽅便的部署开发环境,⽐如 Python 、Node.js 。⽽对于像博主这样的普通的计算机使⽤者来说,可以⽅便的安装⼀些常⽤软件,尤其是开源软件,免去了⼿动去官⽹下载的繁琐步骤,⽽且后续对软件进⾏升级只需要输⼊⼀⾏命令,⾮常便捷。
环境要求
Windows 7 SP1 + / Windows Server 2008+
(或更⾼版本,包括)和(或更⾼版本)Win10(11)默认满⾜此条件
Windows ⽤户名为英⽂(Windows ⽤户环境变量中路径值不⽀持中⽂字符)
正常、快速的访问 GitHub 并下载资源
安装 Scoop
Scoop 默认使⽤普通⽤户权限,其本体和安装的软件默认会放在 %USERPROFILE%\scoop(即 C:\Users\⽤户名\scoop),使⽤管理员权限进⾏全局安装 (-g) 的软件在
C:\ProgramData\scoop。如果有⾃定安装路径的需求,那么要提前设置好环境变量,否则后续再改不是⼀件容易的事情。
打开 PowerShell
设置⽤户安装路径
$env:SCOOP='C:\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
设置全局安装路径(需要管理员权限)
$env:SCOOP_GLOBAL='C:\Scoop_Global'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')什么动漫最h
设置允许 PowerShell 执⾏本地脚本
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
安装 Scoop
iwr -useb get.scoop.sh | iex
iex (new-object net.webclient).downloadstring('get.scoop.sh')
其实,上⾯两种都不可⾏
先配置Host⽂件,加上
199.232.68.133 raw.githubusercontent
然后执⾏另⼀条可⽤的⽹址的命令:
iex (new-object net.webclient).downloadstring('raw.githubusercontent/lukesampson/scoo
p/master/bin/install.ps1') 没安装过 Git 则需要安装。
scoop install git
基础使⽤
最基础的使⽤⽅法和其它包管理器类似,这⾥就不做赘述了,直接上命令列表:
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> - 查看命令帮助说明
迁移到新电脑
将⽂件夹拷贝到新电脑,将⽂件夹添加到环境变量然后scoop reset *
更换源
因为某些原因,Scoop在国内经常访问不了,可以选择更换源⽐如,但本⼈并未使⽤此⽅法,更建议配置代理。
进阶使⽤
添加 bucket
所有的包管理器都会有相应的软件仓库 ,⽽ bucket 就是 Scoop 中的软件仓库。细⼼的你可能会发现 scoop 翻译为中⽂是 “舀”,⽽ bucket 是 “⽔桶”,所以安装软件可以理
解为从⽔桶⾥舀⽔,似乎很形象的说。
Scoop 默认软件仓库(main bucket)软件数量是有限的,但是可以进⾏额外的添加。通过 scoop bucket known 命令可以查看官⽅认可的 bucket:
$ scoop bucket known
main
extras
versions
nightlies
nirsoft
php
nerd-fonts
nonportable
java
games
jetbrains
以上官⽅认可的 bucket 可以通过下⾯这个命令直接添加:
scoop bucket add <bucketname>
好像有⼈添加bucket出现问题?如有,请在评论区提出。
涵盖了⼤部分因为种种原因不能被收录进主仓库的常⽤软件,这个是强推荐添加的。
scoop bucket add extras
常⽤的写盘⼯具 Ru f us 就在 extras 这个仓库中。
scoop install rufus
包含了美化终端时会⽤到的 Pow e r l ine 字体
scoop bucket add nerd-fonts
当添加 nerd-fonts 仓库后可以通过以下命令搜索到所有的字体:
scoop search "-NF"
安装字体需要使⽤管理员权限:
sudo scoop install FiraCode-NF
第三⽅ bucket
添加第三⽅ bucket
scoop bucket add <bucketname> github/xxx/xxx
从第三⽅ bucket 中安装软件
scoop install <bucketname>/<app>
这⾥给出⼀个第三⽅软件源,它记录了 Github 上各种 bucket。
清理安装包缓存
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 * - 删除所有软件的旧版本并清除安装包缓存
在同⼀程序的不同版本之间切换
使⽤命令:scoop reset [app]@[version]
实例:
scoop reset idea-ultimate-eap@201.6668.13
scoop reset idea-ultimate-eap@201.6073.9
# 切换到最新版本
scoop reset idea-ultimate-eap
对应版本的程序需要已经安装于本地系统中;所以在你清除某个软件的旧版本时考虑⼀下⾃⼰是否还会再次使⽤到此旧版本。
另外 idea-ultimate-eap 切换过程可能需要更长时间。
全局安装
全局安装就是给系统中的所有⽤户都安装,且环境变量是系统变量,对于需要设置系统变量的⼀些软件就需要全局安装,⽐如 Node.js、Python ,否则某些情况会出现⽆法到命令的问题。
使⽤ scoop install <app> 命令加上 -g 或 --global 选项可对软件进⾏全局安装,全局安装需要管理员权限,所以需要提前以管理员权限运⾏的 Pow e r S hell 。更简单的⽅式是先安装sudo,然后⽤ sudo 命令来提权执⾏:
scoop install sudo
sudo scoop install -g <app>
达成在 Win d ows 上使⽤sudo的成就
使⽤ scoop list 命令查看已装软件时,全局安装的软件末尾会有 *global* 标志。
➜ scoop list
Installed apps:
7zip 19.00
adb 30.0.0
aria2 1.35.0-1
busybox 3466-g53c09d0e1
CascadiaCode-NF 2.1.0 [nerd-fonts]
colortool 1904.29002
dark 3.11.2 *global*
ffmpeg 4.2.3
figlet 1.0-go
FiraCode-NF 2.1.0 [nerd-fonts]
git 2.26.2.windows.1 *global*
innounp 0.49
iperf3 3.1.3
lessmsi 1.6.91 *global*
lxrunoffline 3.4.1 [extras]
nano 4.9-4
neofetch 7.0.0
nodejs-lts 12.17.0 *global*
python 3.8.3 *global*
rclone 1.52.0
rufus 3.10 [extras]
screentogif 2.24.2 [extras]
sudo 0.2020.01.26
此外对于全局软件的更新和卸载等其它操作,都需要加上 -g 选项:
sudo scoop update -g * - 更新所有软件(且包含全局软件)
sudo scoop uninstall -g <app> - 卸载全局软件
教师节的诗句古诗sudo scoop uninstall -gp <app> - 卸载全局软件(并删除配置⽂件)
sudo scoop cleanup -g * - 删除所有全局软件的旧版本
sudo scoop cleanup -gk * - 删除所有全局软件的旧版本(并清除安装包包缓存)
别名
⚠ 注意:请在 Powershell 中运⾏下⾯的命令
# 可⽤操作
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'
代理设置
因为种种原因,有时Scoop会连不上Github,请检查您的代理服务器(⽐如重启代理软件)。
Scoop 默认使⽤的是系统代理,如果你想⼿动指定代理,可以输⼊下⾯的命令。需要注意的是只⽀持 http 协议。
scoop config proxy localhost:1080
设置完可以通过scoop config proxy查看。
如果你想取消代理,那么输⼊下⾯的命令,这将会恢复使⽤系统代理。
scoop config rm proxy为什么2022年考研最难
开启多线程下载
使⽤ Scoop 安装 Aria2 后,Scoop 会⾃动调⽤ Aria2 进⾏多线程加速下载。
scoop install aria2
使⽤ scoop config 命令可以对 Aria2 进⾏设置,⽐如 scoop config aria2-enabled false 可以禁⽌调⽤ Aria2 下载。以下是与 Aria2 有关的设置选项:aria2-enabled: 开启 Aria2 下载,默认true
aria2-retry-wait: 重试等待秒数,默认2
aria2-split: 单任务最⼤连接数,默认5
配置windows update失败aria2-max-connection-per-server: 单服务器最⼤连接数,默认5 ,最⼤16
aria2-min-split-size: 最⼩⽂件分⽚⼤⼩,默认5M
更详细的见,博主在这⾥推荐以下优化设置,单任务最⼤连接数设置为 32,单服务器最⼤连接数设置为 16,最⼩⽂件分⽚⼤⼩设置为 1M
scoop config aria2-split 32
scoop config aria2-max-connection-per-server 16
scoop config aria2-min-split-size 1M
利⽤ aria2 进⾏断点续传
真爱惹麻烦吻戏先看具体⽰例:
scoop 更新 vscode 时下载到 80% 的时候 失败了(安装时处理⽅法也⼀样)。我们需要在提⽰中到如下内容:
'D:\Scoop\Applications\apps\aria2\' --input-file='D:\Scoop\Applications\'
-
-user-agent='Scoop/1.0 (+scoop.sh/) PowerShell/5.1 (Windows NT 10.0; Win64; x64; Desktop)'
--allow-overwrite=true --auto-file-renaming=false --retry-wait=2
--split=5 --max-connection-per-server=5 --min-split-size=5M
--console-log-level=warn --enable-color=false --no-conf=true
--follow-metalink=true --metalink-preferred-protocol=https
--min-tls-version=TLSv1.2 --stop-with-process=15584 --continue
我们从上⾯的信息中提取出下⾯的命令;若要进⾏断点续传,只需再次执⾏下⾯的命令即可:
< --input-file='D:\Scoop\Applications\'
当提⽰下载完成后,我们需要再次运⾏ scoop 对应的 app 更新命令(或安装命令),即可完成 app 更新(或安装):
scoop update vscode-portable
⼀些使⽤实例
安装和切换JDK、Python的版本
转载⾃
这⾥需要使⽤scoop reset它的作⽤是:重置⼀个应⽤程序来解决冲突。
命令格式为:scoop reset <java>[@<version>]
安装和切换不同的 JDK 版本:
PS C:> scoop bucket add java
PS C:> scoop install oraclejdk
Installing 'oraclejdk' (12.0.2-10) [64bit]
PS C:> scoop install zulu6
Installing 'zulu6' (6.18.1.5) [64bit]
PS C:> scoop install openjdk10
Installing 'openjdk10' (10.0.1) [64bit]
PS C:> java -version
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10)
OpenJDK 64-Bit Server VM (build 10.0.1+10, mixed mode)
PS C:> scoop reset zulu6
Resetting zulu6 (6.18.1.5).
Linking ~\scoop\apps\zulu6\current => ~\scoop\apps\zulu6\6.18.1.5
PS C:> java -version
openjdk version "1.6.0-99"
OpenJDK Runtime Environment (Zulu 6.18.1.5-win64) (build 1.6.0-99-b99)
OpenJDK 64-Bit Server VM (Zulu 6.18.1.5-win64) (build 23.77-b99, mixed mode) PS C:> scoop reset oraclejdk
PS C:> java -version
java version "12.0.2" 2019-07-16
Java(TM) SE Runtime Environment (build 12.0.2+10)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
安装和切换不同的 Python 版本:
scoop bucket add versions # add the 'versions' bucket if you haven't already
scoop install python27 python
python --version # -> Python 3.6.2
# switch to python 2.7.x
scoop reset python27
python --version # -> Python 2.7.13
# switch back (to 3.x)
scoop reset python
python --version # -> Python 3.6.2
常⽤命令总结
emm想要记住上⽂那么多的知识有些困难,这⾥总结⼀下 Scoop 在⽇常使⽤中常⽤的命令:
# 更新 scoop 及软件包列表
电动续航里程scoop update
## 安装软件 ##
# ⾮全局安装(并禁⽌安装包缓存)
scoop install -k <app>
# 全局安装(并禁⽌安装包缓存)
sudo scoop install -gk <app>
## 卸载软件 ##
# 卸载⾮全局软件(并删除配置⽂件)
scoop uninstall -p <app>
发布评论