Build Service/CLI

Jump to: navigation, search


openSUSE编译服务命令行工具目前有两种实现,一个是Perl,一个是Python。每一个都有一个自己使用的库。可以从http://software.opensuse.org/download/openSUSE:/Tools/ 的站点上获取这两个包的不同发行版本(SUSE Linux, Fedora, Mandriva, Debian)。

可参阅编译服务教程

osc,Python命令行客户端

osc是一个类似于subversion的客户端。它作为编译服务的源代码仓库的一个客户端,用于编辑元数据或查询编译结果。

下面将介绍如何使用。

osc是一个可扩展的。您可以修改特性或编写自己的命令。

当您首次使用时osc将要求您的认证信息并存储到~/.oscrc文件中(也有可能使用.netrc文件)。

显示帮助信息

osc help
osc help <cmd>

列出现有的服务器上的目录

osc ls                          # list projects
osc ls Apache                   # list packages in a project
osc ls Apache subversion        # list files of package of a project

检出服务上的目录

osc co Apache                   # entire project
osc co Apache subversion        # a package
osc co Apache subversion foo    # single file

更新工作目录

osc up
osc up <directory>
osc up *                        # from within a project dir, update all packages
osc up                          # from within a project dir, update all packages
                                  AND check out all newly added packages

上传更改后的目录

osc ci                          # current dir
osc ci <file1> <file2>          # only specific files
osc ci <dir1> <dir2> ...        # multiple packages
osc ci -m "updated foobar"      # specify a commit message

查看提交日志

osc log 

显示状态(本地的哪个文件已经被更改)

osc st
osc st <directory>

如果更新不能自动合并,这个文件处于'C'(冲突)状态,冲突的地方会标记<<<<<<< 和 >>>>>>>。 在手工解决这些冲突之后,使用

osc resolved <file>

删除或添加的文件时会在这些文件上做标记以备下次'提交'

osc add foo
osc rm foo

添加所有新的文件在本地拷贝并删除所有消失的文件。

osc addremove

查看变更

osc diff [file]

显示包的编译结果

osc results
osc results <platform>

显示包的日志文件(您需要进入包的目录)

osc buildlog <platform> <arch>

显示.repo文件的URL,这些文件用于Yum/YaST/smart。

osc repourls [dir]

为一个包的所有的仓库/体系结构触发重新编译

osc rebuildpac [dir]

在本机上编译一个包

osc build <platform> <arch> <specfile> [--clean|--noinit|...]

显示所有配置的平台/编译目标。

osc platforms [project]

显示元数据信息

osc meta prj <project>
osc meta pkg <project> <package>
osc meta user <username>

编辑元数据信息。如果不存在的话,将创建新的包/工程。它将会打开一个编辑器和原始的XML元数据。如果对XML不熟悉的话,就使用web客户端

osc meta prj -e <project>
osc meta pkg -e <project> <package>

从spec文件中更新包元数据

osc updatepacmetafromspec <dir>

Perl客户端 'opensuse-commandline'

Perl客户端(叫'opensuse-commandline')当前没人维护。请使用'osc',参见上面所说的。

Perl客户端需要通过创建~/.netrc文件来配置您的帐号和口令。

 machine api.opensuse.org login $login password $pass

$login 和 $pass需要替换您的登录名和口令。