说明
Scoop是Windows上的包管理软件,类似Linux操作系统上的apt、yum。
类似scoop的windows包管理软件还有chocolatey、winget。
比较
scoop
- 优点
- 开源,社区维护
- 权限清晰,大部分包是绿色便携版,可无管理员权限安装
- 可自定义软件安装位置
- 可自定义添加bucket,扩展性较高
- 缺点
- github维护,服务器连接困难(真的非常困难)
- 自身更新、bucket更新不走浏览器代理,对IT公司内网不友好(可以导入对应库到内网解决)
chocolatey
- 优点
- 软件包较多,更新快,资源丰富
- 软件下载走浏览器代理,对IT公司内网较友好
- 缺点
- 服务器国外,服务器连接困难(比scoop好点)
- 需要付费才能自定义软件安装位置
- 包安全性较低
winget
- 优点
- 微软官方,服务器连接还行
- 缺点
- 仅仅是安装程序管理区,无法如scoop、choclatey一样自动配置软件
安装
自定义软件安装目录(可选)
scoop可以设置管理软件的安装位置,通过环境变量控制。但是需要在安装scoop之前就设置好。
确定软件安装目录
如:
- 用户(user)安装目录:C:\Users\{用户名}\Programs
- 全局(global)安装目录:C:\Programs
注:此处的{用户名}需要替换为实际的用户名
方法一: 执行powershell写入变量
- 以管理员权限运行powershell
- 全局自定义安装位置
- 一次安装所有windows 用户都可使用
$env:SCOOP_GLOBAL='C:\Programs'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL',$env:SCOOP_GLOBAL,'Machine')
- 用户自定义安装位置
- 仅当前windows用户使用,一般在对应的用户目录下
- 此处不使用用户目录
$env:SCOOP='C:\Programs\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP',$env:SCOOP,'User')
方法二:在安装时直接指定
请参考[[scoop#安装Scoop]],只适用于官方脚本,但是官方脚本有时连不上
安装Scoop
- 如果脚本无法执行,可以输入以下代码,允许本地脚本执行
set-executionpolicy remotesigned -scope currentuser
- 安装scoop并指定scoop本身安装目录、全局安装目录(此时不要使用管理员权限)
irm get.scoop.sh -outfile 'install.ps1'
.\install.ps1 -ScoopDir 'Scoop_Path' -ScoopGlobalDir 'GlobalScoop_Path' -Proxy 'http://<ip:port>'
注:Scoop_Path为本身安装位置,GlobalScoop_Path为全局安装位置,如下例
irm get.scoop.sh -outfile 'install.ps1'
.\install.ps1 -ScoopDir 'C:\Programs\Scoop' -ScoopGlobalDir 'C:\Programs' -NoProxy
可能遇到的问题
1. 执行irm下载命令,无法连接官网
- 可选方案1:
- 使用国内代理,这种情况下请先参考[[scoop#自定义软件安装目录(可选)]]的方法一设置自定义目录
irm https://ghproxy.com/raw.githubusercontent.com/duzyn/scoop-cn/master/install.ps1 | iex
irm https://cdn.jsdelivr.net/gh/duzyn/scoop-cn/install.ps1 | iex
irm https://cdn.jsdelivr.net/gh/duzyn/scoop-cn/install.ps1 | iex
- 可选方案2:使用proxy或者vpn等方式
- 可选方案3(未验证):添加hosts解析,参考Scoop安装、修改默认路径、异常解决)
注:如果是IT公司内网拦截,这个真救不了
powershell打开后默认管理员权限,且无法更改为非管理员权限
- 可选方案1(推荐):
- 先参考[[scoop#自定义软件安装目录(可选)]]的方法一设置自定义目录
- 使用命令,强制允许管理员允许脚本
iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
- 可选方案2(当前win11实测不行):设置powershell权限默认为非管理员
- UAC开启
- 安全设置-本地策略-安全选项-用户账户控制:以管理员批准模式运行所有管理员_ 改为已禁用
- 安全设置-本地策略-安全选项-用户账户控制:用于内置管理员账户的管理员批准模式_ 改为已禁用
- 重启电脑
前面步骤都成功,在Downloading scoop时,下载zip超时或者异常
- 可选方案一:替换git库(实测可行)
- 下载失败的主要原因是因为https://github.com/ScoopInstaller下的Main和Scoop库国内访问超时
- 将这两个库同步到国内的git平台,如gitee(官方已经同步了),如果是公司内网,可以同步到内部gitlab之类
- 下载get.scoop.sh对应的官方install.ps1脚本,如install.ps
- 选择install.ps1脚本,右键-属性,选择【解除锁定】,应用后保存,这样这个脚本就可以在当前系统执行
- 打开install.ps1脚本,搜索https://github.com替换为https://gitee.com保存
- 在install.ps1脚本所在处,shift+右键,此处打开powershell脚本,执行以下命令
iex ./install.ps1
- 等待安装完成即可
更新Scoop
使用github 官方源同步
- 更新最快,但是需要科学上网
添加官方库
scoop bucket add main
scoop bucket add extras
scoop bucket add versions
scoop bucket add java
scoop bucket add nonportable
scoop update
添加优秀第三方库
scoop bucket add aki https://github.com/akirco/aki-apps.git
scoop bucket add dorado https://github.com/chawyehsu/dorado.git
scoop bucket add echo https://github.com/echoiron/echo-scoop.git
scoop bucket add lemon https://github.com/hoilc/scoop-lemon.git
scoop bucket add scoopet https://github.com/ivaquero/scoopet.git
scoop bucket add tomato https://github.com/zhoujin7/tomato.git
scoop bucket add scoop-zapps https://github.com/kkzzhizhou/scoop-zapps.git
scoop update
使用国内源同步(推荐)
- 更新稍慢一点点, 无需科学上网
更改scoop本身仓库
scoop config SCOOP_REPO https://gitee.com/scoop-bucket/scoop
scoop update
添加官方镜像库
- 常用软件库国内源
- 主要来源于
南京大学开源镜像站gitee同步库 - 如果已添加官方库,需要先使用rm命令移除
- 主要来源于
scoop bucket rm main
scoop bucket add main https://gitee.com/scoop-bucket/main.git
scoop bucket add extras https://gitee.com/scoop-bucket/extras.git
scoop bucket add versions https://gitee.com/scoop-bucket/versions.git
scoop bucket add java https://gitee.com/scoop-bucket/java.git
scoop bucket add nonportable https://gitee.com/scoop-installer/Nonportable.git
scoop update
添加优秀第三方镜像库
scoop bucket add aki https://gitee.com/scoop-installer/aki-apps.git
scoop bucket add dorado https://gitee.com/scoop-bucket/dorado.git
scoop bucket add echo https://gitee.com/scoop-installer/echo-scoop.git
scoop bucket add lemon https://gitee.com/scoop-installer/scoop-lemon.git
scoop bucket add scoopet https://gitee.com/scoop-installer/scoopet.git
scoop bucket add tomato https://gitee.com/scoop-installer/tomato.git
scoop bucket add scoop-zapps https://gitee.com/scoop-installer/scoop-zapps.git
scoop.git
常用命令
搜索可用软件
scoop search app关键字
安装软件
scoop install app名称
- 常用参数
- -g,–global: 为所有用户安装,安装目录在自定义设置中已配置
- -s, --skip: 跳过hash校验,但是不太安全
- -i, --independent:自动安装依赖的软件
- 指定版本安装:在软件后添加@版本号,如
scoop install git@2.31.1
更新
scoop update
删除已安装软件
scoop cleanup app名称
列出已安装的软件
scoop list
列出已订阅的仓库
scoop bucket list
扩展
配置aria2加速下载(可选)
- 使用aria2
scoop install -g aria2
scoop config aria2-retry-wait 4
scoop config aria2-split 16
scoop config aria2-max-connection-per-server 16
scoop config aria2-min-split-size 4M
- 如果使用代理,有时需要通过如下命令关闭 aria2,否则可能无法下载
scoop config aria2-enabled false
使用代理, scoop方式
- 因为scoop不会默认使用系统代理,因此需要手动设置代理
- 如果是使用clash,那么使用TUN模式,则不需要手动设置代理,默认走全局
- 假设代理地址为:127.0.0.1:7890
# 添加代理
scoop config proxy 127.0.0.1:7890
# 删除代理
scoop config rm proxy
使用代理, git方式
- windows本地已有代理开启,并已知代理端口,如8089
- 执行以下代码添加代理
git config --global http.proxy http://127.0.0.1:8089
- 取消git代理
git config --global --unset https.proxy
GitHub API rate limit reached 限制解除
- 短时间使用scoop search次数过多时会触发github流控
- 登陆github-Setting-Developer Settings-Tokens(classic)-Generate new token
- 创建新的github token并复制
- 在windows本地powrsehll中执行
scoop config gh_token 你的token
公开软件库
- 登陆公开软件库:https://scoop.sh/#/buckets
- 仅安装软件库里的指定软件
- -g表示安装到全局安装目录中
scoop install <仓库名>/<软件名> -s -g
评论区