使用OBS构建软件

通过下面的步骤可以快速构建安装脚本包,实现将源中不存在的包通过包管理器统一维护。

安装脚本包

有别于安装包,安装脚本包(这是我自己起的名字)不提供软件的文件,而是只提供一个脚本文件,这个脚本文件将自动运行,完成下载、部署的操作。这样可以从任何自定义的地址下载软件包,而不需要通过OBS服务器传输数据,可以改善获取的速度(而且这样一定程度上可以避免openSUSE非常看重的版权问题?)

我参考的是opensuse-zh源中的网易云音乐的包,因此我自己的包都是基于网易云进行的修改。其中的内容也较为好理解,所以这里只简单记录一下使用OBS的系列过程。

OBS使用的过程

  1. 前往OBS,注册账号并登陆
  2. 点右上角Home Project进入个人的工程中。无特殊需要的话,所有的包都在这个工程下构建即可
  3. 点击Create Package
  4. Name输入包名称(zypper se通过这个名称查找);Title输入这个包的简单描述(zypper se的摘要列显示这个名称的内容);Description输入详细介绍(zypper info的描述区域显示这个名称的内容),填写完毕,点击Create创建
  5. 进入包,通过Add File添加所需的文件(.spec的文件名应该与包名相同)

到此,包的基础文件已经添加完成。接下来设置构建的发行版,便可自动构建。

设置发行版的flag

  1. 回到个人源的首页,点击Repositories
  2. 点击Add from a Distribution,勾选需要构建的发行版(自动保存)。返回上一页,在Repositories for一栏中应该已经显示出刚刚勾选的发行版了
  3. 依次点击每个发行版的第一个图标,弹出窗口勾选需要构建的架构(自动保存)

到此,源和包均设置完成。等待自动构建即可。如果出错,可以查看编译记录进行修改。若没有错误,那么此时通过opi搜索包名,应该就可以找到并安装了。


命令行使用OBS

有些类似于git,基本过程同样是初始化仓库-写入文件-提交。

  1. 安装osc,这是OBS的命令行工具
  2. 新建一个文件夹,并进入,输入命令osc checkout home:来添加你自己的仓库并进入
  3. 通过osc meta pkg -e home: 来新建一个包
  4. 弹出的xml文件填写完成后,osc up,在仓库文件夹下就会出现这个包的文件夹了
  5. 进入这个文件夹并增加需要到各种文件,osc add *来增加监视。这只在有新文件加入时候使用
  6. 使用osc commit提交加入/修改的文件
参考:openSUSE:Build Service Tutorial - openSUSE Wiki