Scoop 包管理器
Scoop
是一个Windows
下的包管理器,完全免费,依赖于Github
。
获取 Scoop 包管理器
安装 scoop
# 准备将 Scoop 本体安装到已定义目录
$env:SCOOP='D:\Scoop'
# 先添加用户级别的环境变量 SCOOP
[environment]::setEnvironmentVariable('SCOOP',$env:SCOOP,'User')
# 允许本地脚本的执行:
set-executionpolicy remotesigned -scope currentuser
# 安装 Scoop:
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
# 或者更短
#iwr -useb get.scoop.sh | iex
# 安装完成,查看 scoop 的版本和 main bucket 的版本
scoop -v
修改默认全局安装路径,体现在额外的参数-g
上
-g
上$env:SCOOP_GLOBAL='D:\GlobalScoopApps'
[environment]::setEnvironmentVariable('SCOOP_GLOBAL',$env:SCOOP_GLOBAL,'Machine')
更新 Scoop
scoop update
卸载 Scoop
scoop uninstall scoop
管理仓库
Scoop
默认使用的是 main
仓库,官方维护的另一个 Bucket
为 extras
,需要手动添加。有些软件并没有收录在仓库中,需要额外添加其他仓库。
# scoop help bucket
Usage: scoop bucket add|list|known|rm [<args>]
# ...
查询仓库
# 查看可直接添加的仓库
scoop bucket known
# 查看已添加的仓库
scoop bucket list
添加仓库
# 添加 extras 仓库
scoop bucket add extras
# 添加第三方 bucket
scoop bucket add <bucketname> https://github.com/xxx/xxx
删除仓库
# 删除 extras
scoop bucket rm extras
更新仓库
# 更新 extras
scoop update
其他仓库
一些 bucket 简单介绍 - main
: 默认的主仓库 -
extras
: 常用,诸多有用的软件都在里面。地址 lukesampson/scoop-extras
- nirsoft
: NirSoft
开发的小工具的安装合集,包括系统工具、网络工具、密码恢复等 - 地址: kodybrown/scoop-nirsoft
- 官网地址: NirSoft -
dorado
: 添加了一些国内的app,比如 qqplayer 👍🏻️ h404bi/dorado -
nerd-fonts
: 编程字体一览无遗 ash258
: Ash258/scoop-Ash258 -
nonportable
: 收录神奇的UWP应用 windows平台应用 -
versions
: 收录软件包的历史版本 - java
:
可以通过它安装各种 jdk 、 jre
管理APP
查询APP
# 查找APP, 不带APP即查询所有软件
scoop search <APP>
# 查看已安装的 APP
scoop list
安装APP
## scoop help install
# scoop install <app> [options]
# -g, --global 全局安装应用
# -i, --independent 不要自动安装依赖
# -k, --no-cache 不使用下载缓存
# -u, --no-update-scoop 如果已经过时,安装前不要更新 Scoop
# -s, --skip 跳过哈希验证(谨慎使用!)
# -a, --arch <32bit|64bit> 使用指定的架构,如果应用支持的话
# 安装APP
scoop install <app>
更新APP
## scoop help update
# scoop update <app> [options]
# -f, --force 即使没有更新版本也强制更新
# -g, --global 更新全局安装的应用
# -i, --independent 不要自动安装依赖
# -k, --no-cache 不使用下载缓存
# -s, --skip 跳过哈希验证(谨慎使用!)
# -q, --quiet 隐藏无关消息
# -a, --all 更新所有应用程序(替代“*”)
# 更新APP, 不带APP即更新scoop本身及bucket
scoop update <app>
卸载APP
## scoop help uninstall
# scoop uninstall <app> [options]
# -g, --global 卸载全局安装的应用
# -p, --purge 删除所有持久数据
# 卸载并删除配置文件
scoop uninstall -gp <app>
缓存的安装包
# 显示安装包的缓存
scoop cache show
# 删除 指定APP的安装包
scoop cache rm <app>
# 删除所有APP安装包
scoop cache rm *
# 禁用安装包缓存 -k 或 --no-cache
scoop install -k <app>
scoop update -k *
删除旧版本APP
由于自身的特性(滚动更新,当更新时是立刻拉取最新的commit)可能会导致程序异常,所以当软件被更新后 Scoop 还会保留软件的旧版本,更新软件后可以通过 scoop cleanup 命令进行删除。
# 删除指定APP旧版本
scoop cleanup <app>
# 删除所有APP旧版本
scoop cleanup *
# 不仅删除所有APP旧版本,也包括缓存的安装包
scoop cleanup -k *
推荐软件
必装
7zip
git
aria2
# 安装aria2后,scoop会自动调用aria2进行多线程下载以加速下载curl
miniconda3
# 由于scoop不保留 Conda envs 和 pkgs,在更新后创建的虚拟环境会丢失,所以建议设置envs_dirs
以使用 '~/.conda/envs'envs_dirs: - D:/Scoop/apps/miniconda3/envs pkgs_dirs: - D:/Scoop/apps/miniconda3/pkgs
可选
- vscode
- mactype-np # 装机必备的字体优化工具
- motrix # 开源美观的下载工具
- potplayer # 超强的视频播放器
- quicklook # 快速预览工具
- snipaste # 大名鼎鼎的截图工具
- typora # 久负盛名的 Markdown 编辑器
- windows-terminal # windows官方的终端应用
- fluent-terminal-np # Windows平台终端工具
- sudo
- gcc
- vim
其他
- gimp
- inkscape
- latex
- calibre
- zotero
加速下载
在使用scoop安装aria2后,scoop会自动调用aria2进行多线程下载以加速下载:
scoop install aria2
scoop aria2-enabled true
scoop config aria2-max-connection-per-server 16
scoop config aria2-split 16
scoop config aria2-min-split-size 1M
# aria2-enabled (默认值: true)
# aria2-retry-wait (默认值: 2)
# aria2-split (默认值: 5)
# aria2-max-connection-per-server (默认值: 5)
# aria2-min-split-size (默认值: 5M)
# scoop config proxy 127.0.0.1:10809 (额外的代理,如果有的话)
字体
# 添加 nerd-fonts 仓库
scoop bucket add nerd-fonts
# 搜索字体
scoop search "-NF"
# 安装字体
sudo scoop install FiraCode-NF
提权
如果不是以管理员的身份运行PowerShell,常常会出现一些错误。此时sudo来了。
scoop install -g sudo
sudo scoop install -g <app>
其他问题
1. 添加extras失败
使用命令scoop bucket add extras
添加仓库时出现错误:
Checking repo... ok
efatal: the remote end hung up unexpectedly
rror: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: early EOF
fatal: index-pack failed
The extras bucket was added successfully.
虽然提示添加成功,但在安装anaconda3
软件时出现:
Updating Scoop...
Updating 'extras' bucket...
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
Updating 'main' bucket...
* 9d903fc3 git-up: Update to version 2.0.0 9 hours ago
Scoop was updated successfully!
Couldn't find manifest for 'anaconda3'.
看起来是文件夹里缺少一些必要的东西,于是去查看仓库所在路径(C:\<user>),发现extras
只是一个空文件夹,为此在网络上搜罗解决办法:
-
git config --global http.postBuffer 524288000
,无果!git config --global http.lowSpeedLimit 0
和git config --global http.lowSpeedTime 999999
,无果!Checking repo... ok
efrror: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
fatal: the remote end hung up unexpectedly
atal: early EOF
fatal: index-pack failed
The extras bucket was added successfully.
-
git config --global http.sslVerify "false"
,无果!Checking repo... ok
efrror: RPC failed; curl 18 transfer closed with outstanding read data remaining
atal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
The extras bucket was added successfully.
-
需要执行git clone --depth=1 https://github.com/lukesampson/scoop-extras.git
,成功!!
这里是先找到extras
仓库分支,然后在路径(C:\<user>)下clone
这个分支,再修改下这个下载下来的文件夹的名称为extras
,就可以正常使用了。
>
注:--depth=1
参数是指只克隆最近一次commit,只会把默认分支clone下来。对不是参与整个项目的开发工作的我们来说问题不大。