Build Service/CLI
openSUSE Build Service コマンドラインツールは現在 2 種類あります。一つは Perl で、もう一つは Python で実装されています。どちらのパッケージも、自分のコードが使うライブラリも提供しています。http://software.opensuse.org/download/openSUSE:/Tools/ にさまざまなディストリビューション向けのパッケージ(SUSE Linux、Fedora、Mandriva、Debian)があります。
osc / python コマンドライン・クライアント
Python クライアントは、最初に使用する際にあなたの証明書を求め、それを ~/.oscrc に保存します。(ですが、.netrc もあれば使われます。)
以下はいくつかの例です:
コマンドの使用方法を表示させる
osc help osc help <cmd>
サーバ上に存在している内容をリストする
osc ls # プロジェクトの一覧を表示 osc ls Apache # プロジェクト内のパッケージの一覧を表示 osc ls Apache subversion # プロジェクトのパッケージ内のファイルの一覧を表示
内容物をチェックアウトする
osc co Apache # プロジェクト全体 osc co Apache subversion # あるパッケージ osc co Apache subversion foo # 一つのファイルのみ
作業ディレクトリをアップデートする
osc up osc up <directory> osc up * # プロジェクトのディレクトリ内からすべてのパッケージをアップデートする osc up # プロジェクトのディレクトリ内からすべてのパッケージをアップデートし、 "かつ"、新たに加えられたパッケージをすべてチェックアウトする
変更した内容をアップロードする
osc ci # current dir osc ci <file1> <file2> # only specific files osc ci <dir1> <dir2> ... # multiple packages
(どのファイルローカルで変更したかの)状態を表示する
osc st osc st <directory>
更新が自動的にマージされない場合、ファイルは「C」(conflict) の状態にあり、 コンフリクトは特別な <<<<<<< and >>>>>>> という行でマークされます。 問題を手で直した後、以下のコマンドを実行してください
osc resolved <file>
次回の「チェックイン」時にファイルに追加や削除のマークをつける
osc add foo osc rm foo
ローカルにある新規ファイルをすべて追加し、なくなったファイルをすべて削除する
osc addremove
変更点を見るために、diff を生成する
osc diff [file]
パッケージのビルド結果を表示する
osc results osc results <platform>
パッケージのログファイルを表示する(パッケージのディレクトリ内にいる必要があります)
osc log <platform> <arch>
Yum/YaST/smart のためのパッケージ・ソースから .repo ファイルの URL を表示する
osc repourls [dir]
パッケージを全リポジトリ/アーキテクチャに対してリビルドするよう指示する(triggers)
osc rebuildpac [dir]
自分のローカル・プラットフォーム上でパッケージをビルドする
osc build <platform> <arch> <specfile> [--clean|--noinit]
自分のローカル・プラットフォーム上で、特定のディストリビューションに対してパッケージをビルドする
BUILD_DIST=... osc build <specfile> [--clean|--noinit]
BUILD_DIST のところは「=<platform>-<arch>」としてください
設定されたプラットフォーム/ビルドターゲットを表示する
osc platforms [project]
メタ情報を表示する
osc meta <project> osc meta <project> <package> osc id <username>
メタ情報を編集する。まだ作っていないなら、新しいパッケージ/プロジェクトを作成してください。メタ情報は生の XML メタデータでエディタを開きます。よく分からなければ、代わりに web クライアントを使ってください。
osc editmeta <project> osc editmeta <project> <package>
spec ファイルのメタデータでパッケージのメタデータをアップデートする
osc updatepacmetafromspec <dir>
The Perl クライアント 'opensuse-commandline'
Perl クライアント('opensuse-commandline' と名づけられています)は現在メンテされていません。上述の 'osc' を使ってください。
Perl クライアントは、以下のような ~/.netrc ファイルを作って自分のアカウントとパスワードを設定する必要があります:
machine api.opensuse.org login $login password $pass
$login と $pass は自分のログイン名とパスワードに置き換える必要があります。