Open Build Service(OBS) Ubuntu deb 包构建工具

发布时间: 更新时间: 总字数:1988 阅读时间:4m 作者:IP:上海 网址

本文介绍使用Open Build Service(OBS)构建Ubuntu deb包

介绍

obs 页面操作:

  • Overview 工程简介
  • Repositories 包列表
  • Monitor 包的构建状况
  • Requests 用户请求,类似于 github 的 mr
  • Users 工程的所有用户
  • Subprojects 子工程
  • Project Config 配置文件
    • Repotype
    • Presinstall
    • Prefer
  • Attributes
  • Meta 一些参数信息
  • Status
  • 子目录:Branch package 派生包

安装 osc 客户端

  • 支持本地部署 Open Build Service 参考
  • osc 客户端安装参考

CentOS

cd /etc/yum.repo.d
wget https://download.opensuse.org/repositories/openSUSE:/Tools/CentOS_7/openSUSE:Tools.repo
yum makecache
yum install osc -y

Ubuntu

# sudo apt install osc
# wget https://download.opensuse.org/repositories/openSUSE:/Tools/Debian_8.0/all/obs-build_20230808-1_all.deb
# wget https://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_20.04/amd64/osc_1.4.3-0_amd64.deb
dpkg -i osc_1.4.3-0_amd64.deb

osc 使用

help

osc --help ...

配置认证信息

  • 使用 osc token 生成配置文件,需要数据用户名和密码
osc token ...
  • ~/.config/osc/oscrc 文件示例
cat ~/.config/osc/oscrc ...

osc 示例

# 查看当前登录的用户
$ osc whois
xiexianbin: "xie xianbin" <me@xiexianbin.cn>

# 打开浏览器
$ obs browe

# 查看sources or binaries
osc list home:xiexianbin
osc list home:xiexianbin:xxx

# 下载获取远程项目的某一个包
$ osc co home:<user name>/<project name>
$ osc checkout home:xiexianbin
A    home:xiexianbin
A    home:xiexianbin/containers-skopeo
A    home:xiexianbin/containers-skopeo/skopeo_1.13.3-1.debian.tar.xz
A    home:xiexianbin/containers-skopeo/skopeo_1.13.3-1.dsc
...

$ osc co home:xiexianbin/containers-skopeo

$ cd home:xiexianbin/containers-skopeo

# 查看状态
$ osc status .

# 查看仓库信息
osc repos

# 提交重命名后的修改
osc addremove

# 更新本地代码
osc update

# 直接推送修改后的内容到远程OBS仓库中去
osc ci -m1

# 添加文件到打包项目
osc add *
osc add https://github.com/xiexianbin/xxx/xxx.tar.gz

# 提交到远程OBS仓库
osc commit

# 查看提交日志
osc log

# 查看打包结果
osc results

新建包

cd [project名]

# 新建Package
osc mkpac [package名]

# 添加文件
osc add *

# 上传服务器
osc commit

# 更新包
osc up

# 打包
osc build
osc build openSUSE_Tumbleweed x86_64

# 本地打包

Debian/Ubuntu deb 包打包

相关文件:

  • _service 文件,记录文件位置
<?xml version="1.0"?>
 <services>
  <service name="obs_scm">
    <param name="versionformat">@PARENT_TAG@</param>
    <param name="url">https://github.com/jane/my_package.git</param>
    <param name="scm">git</param>
    <param name="revision">@PARENT_TAG@</param>
    <param name="extract">my_package.spec</param>
  </service>
  <service name="set_version"/>
  <service name="tar" mode="buildtime"/>
 </services>
  • PACKAGE.dsc 文件,Debian source control files 是构建二进制包的控制文件 参考
  • *.orig.tar.xz|gz 源码包
  • *.debian.tar.xz|gz debian 打包的文件压缩包,加压后的结果
    • debian/
      • changelog
      • control
      • rules

本地打包

  • 参考
  • 可以删除 _service 文件,防止网上下载源码文件
apt install obs-build build-essential devscripts equivs

osc add xxx

# use one of: Debian_10, Debian_11, Debian_12, RHEL_7, xUbuntu_20.04, xUbuntu_22.04, xUbuntu_23.04
osc build --local-package xUbuntu_23.04 x86_64
osc build --local-package --trust-all-projects -d xUbuntu_23.04 x86_64 *.dsc

# osc build --vm-type=qemu --vm-memory=MB REPOSITORY ARCHITECTURE
# osc shell --vm-type=VM
# osc wipe --vm-type=VM
  • 查看构建好的deb包的信息
dpkg -c /var/tmp/build-root/xxx_x86_64/usr/src/packages/DEBS/*.deb
  • 等价于使用 sbuild 打包
sudo apt install -y debhelper sbuild
sudo sbuild --arch=x86_64 -c sid-x86_64-sbuild

F&Q

Exec format error

sudo update-binfmts --enable

Can’t locate Build.pm in @INC (you may need to install the Build module)

apt-get install libmodule-build-perl
cpan Module::Build
本文总阅读量 次 本站总访问量 次 本站总访客数