OBS使用简要说明

OBS,Opensuse Build Service,是一个类似ppa的在线打包服务,和ppa相比有如下优点:1、不限于一个发行版,根据说明,支持Fedora,Opensuse,Debian,Ubuntu,CentOS,RHEL,Mandriva等等发行版,2、管理工具有SCM的特性,会记录版本,3、使用https协议进行交互传输,和ppa的ftp相比使用代理更加方便(我是悲剧的教育网),4、比ppa使用简单。其他的优点就是使用上的感受了,几乎不用排队,而且系统速度明显比ppa高出一截,当然这不好说……

那么怎么使用呢?首先到https://build.opensuse.org/ 注册并登录一个帐号,这时候会分配给你一个默认的project,名称为home:username。这时候你就已经可以开始工作了,这里和ppa相比少了进行公钥验证的步骤,快得多。然后你可以通过web ui添加你自己的包。更方便的是你可以通过对别人的包建立一个fork来建立自己的包,更加方便快捷。

然后你需要的就是上传你的代码及spec文件(rpm包,老实讲obs的deb和ubuntu的文件似乎有点不同……没有认真研究),这时候系统就会好心的帮你做好所有事,而且如闪电一般。

这时候我想讲讲我走的一个弯路。我发现web ui上面似乎有一个很方便的功能,为一个包添加一些service,在每次启动编译之前都会主动执行一次,似乎支持从svn和git上面直接抓代码,我当时一看,这感情好啊,然后就抓代码。但是杯具的是,其他各种service的参数几乎都没有说明(比如解压),看得我一头雾水,跑去浏览别人的obs,发现要不就是失败,要不就是没有用这项功能。总之我的结论是service这个功能缺少文档……还不太完善,不推荐使用。

那么就需要使用opensuse提供的一个cui工具,osc。

首先进行checkout(类似svn)

osc checkout home:<username>

你会得到一个目录home:<username>,目录下有你的包的对应目录。

然后执行:

osc meta pkg -e home:<username> <packagename>

建立你的包,我没有用这个命令,而是在web ui创建的(等价),所以我不是很清楚这个命令具体情况……

再执行

osc up

进行更新,怎么样,和svn 很像吧。

剩下你所需要做的就是

osc add <filename>
osc commit

添加你的文件并提交。

然后obs就会happy的自动帮你编译好啰。

慢着,其实这时候你还忘了一件事,就是指定你要编译哪些发行版的包,你需要在你的project首页,有一个repositories的链接,这里面就是指定编译哪些发行版的包的地方了,所以你遇到的另外一个问题就是,如何用一个spec编译多个发行版的包。其实也很简单,不同发行版会指定一些不同的变量从而在spec文件当中判断的,比如我就用了:

%if 0%{?suse_version}
BuildRequires:  dbus-1-devel
%else
BuildRequires:  dbus-devel
%endif

这段代码同时处理fedora和opensuse。

obs拯救世界,ppa一边歇着去吧。

This entry was posted in Linux and tagged , , . Bookmark the permalink.

2 Responses to OBS使用简要说明

  1. 右京样一 says:
    Google Chrome 6.0.472.63 Windows 7

    看来还是挺麻烦……
    话说阁下不会是想放弃ppa重新用OBS构建deb包吧?

  2. 心之所在 says:
    Google Chrome 7.0.528.0 openSUSE x64

    kde-app上貌似蛮多程序的deb包都是用obs弄的。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.