You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过OpenSUSE Build Service API获取软件包最新版本以自动下载二进制文件

获取openSUSE Build Service软件包最新版本的方法(无需添加PPA)

针对你需要自动化下载OBS上ueberzugpp这类Debian包的需求,有两种可靠的方法可以获取最新版本号,无需添加PPA:

方法1:调用OBS官方API获取元数据

OBS提供了直接返回软件包元数据的API端点,你可以通过它提取版本信息:

  1. 构造API请求路径,格式为:
    https://api.opensuse.org/build/<项目名>/<发行版仓库名>/<架构>/<包名>/_meta
    针对你的场景,完整路径是:
    https://api.opensuse.org/build/home:justkidding/xUbuntu_22.04/amd64/ueberzugpp/_meta
  2. 用curl请求并解析JSON中的版本字段,推荐配合jq工具:
    curl -s https://api.opensuse.org/build/home:justkidding/xUbuntu_22.04/amd64/ueberzugpp/_meta | jq -r '.version'
    
    执行后会直接返回最新版本号,比如2.9.1-1这类格式。

方法2:解析Deb仓库的Packages文件

每个OBS的Deb仓库都会维护Packages.gz文件,里面包含所有包的详细信息:

  1. 构造Packages文件的下载路径,格式为:
    https://download.opensuse.org/repositories/<项目名>/<发行版仓库名>/dists/<发行版代号>/main/binary-<架构>/Packages.gz
    对应Ubuntu 22.04(代号jammy)的完整路径是:
    https://download.opensuse.org/repositories/home:/justkidding/xUbuntu_22.04/dists/jammy/main/binary-amd64/Packages.gz
  2. 下载并解压后过滤出目标包的版本:
    curl -s https://download.opensuse.org/repositories/home:/justkidding/xUbuntu_22.04/dists/jammy/main/binary-amd64/Packages.gz | gunzip | grep -A 20 "Package: ueberzugpp" | grep -E "^Version:" | awk '{print $2}'
    

构造下载链接

拿到版本号后,直接替换链接中的版本占位符即可生成最新包的下载地址:

VERSION=$(curl -s https://api.opensuse.org/build/home:justkidding/xUbuntu_22.04/amd64/ueberzugpp/_meta | jq -r '.version')
wget "https://download.opensuse.org/repositories/home:/justkidding/xUbuntu_22.04/amd64/ueberzugpp_${VERSION}_amd64.deb"

内容的提问来源于stack exchange,提问作者bergercookie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 13:12:46