侧边栏壁纸
博主头像
欧德的半位面 博主等级

欢迎迷途的旅人

  • 累计撰写 6 篇文章
  • 累计创建 4 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

【Windows】Scoop

欧德之怒
2024-05-27 / 0 评论 / 0 点赞 / 256 阅读 / 0 字

说明

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

powershell打开后默认管理员权限,且无法更改为非管理员权限

  • 可选方案1(推荐):
    • 先参考[[scoop#自定义软件安装目录(可选)]]的方法一设置自定义目录
    • 使用命令,强制允许管理员允许脚本
iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
  • 可选方案2(当前win11实测不行):设置powershell权限默认为非管理员
    • UAC开启
    • 安全设置-本地策略-安全选项-用户账户控制:以管理员批准模式运行所有管理员_ 改为已禁用
    • 安全设置-本地策略-安全选项-用户账户控制:用于内置管理员账户的管理员批准模式_ 改为已禁用
    • 重启电脑

前面步骤都成功,在Downloading scoop时,下载zip超时或者异常

更新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

公开软件库

scoop install <仓库名>/<软件名> -s -g
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区