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

欢迎迷途的旅人

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

目 录CONTENT

文章目录

【Windows】Scoop

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

说明

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

使用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

公开软件库

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

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区