说明
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
删除已有的仓库
- 删除可能已有的仓库
scoop bucket rm main
scoop bucket rm extras
scoop bucket rm versions
scoop bucket rm java
scoop bucket rm nonportable
scoop bucket rm aki
scoop bucket rm dorado
scoop bucket rm echo
scoop bucket rm lemon
scoop bucket rm scoopet
scoop bucket rm tomato
scoop bucket rm scoop-zapps
scoop update
使用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 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 update
常用命令
搜索可用软件
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
评论区