openSUSE Build Service を使ってみよう
by たっけー日本 openSUSE ユーザ会 2010年10月勉強会

2010/10/02

openSUSE Build Service を使ってみよう

1

OBS: openSUSE Build Service とは
http://build.opensuse.org
パッケージのビルド環境の提供●

様々なアーキテクチャに対応–●x86, ppc, arm, sh, ... etc

様々なディストリビューションに対応:–

openSUSE 11.3, 11.2, ..., SLES, Debian, Ubuntu, Fedora, ...

パッケージを公開するリポジトリの提供
パッケージのチーム開発用の環境の提供●

Subversion ライクなバージョン管理

2010/10/02

openSUSE Build Service を使ってみよう2

どんなときに使えるか
エンドユーザー
何かのパッケージが欲しいとき● ビルド環境を整えるのが面倒なとき●–十分なディスク容量が必要

開発者
パッケージを公開したいとき● クロスコンパイルをしたいとき●

2010/10/02openSUSE Build Service を使ってみよう3

2010/10/02

openSUSE Build Service を使ってみよう

4mozc とか、標準のリポジトリには無いものがあるよね桔梗さんのちびぎーこ
2010/10/02

openSUSE Build Service を使ってみよう

5

OBS のパッケージを検索 1/2
メインリポジトリにないパッケージを誰かが公開しているかも○○の最新版● マイナーなアプリケーション●

M17N などのプロジェクトも OBS でパッケージを作成、提供

2010/10/02

openSUSE Build Service を使ってみよう

6

OBS のパッケージを検索 2/3「Get Software」
http://software.opensuse.org/● ディスクイメージをダウンロードする場所と同じ●

ホームプロジェクトを含めれば、たくさん見つかるかも●ホームプロジェクトについては後述

2010/10/02

openSUSE Build Service を使ってみよう

7

OBS のパッケージを検索 3/3

2010/10/02

openSUSE Build Service を使ってみよう8

ぼく、エンドユーザーだけど、ユーザー登録って必要かな？

2010/10/02

openSUSE Build Service を使ってみよう

9

OBS にユーザー登録する
色々なことをするには、OBS へのユーザー登録が必要
Novel Account: wiki と共通のアカウント● 画面右上の Sign up から●

エンドユーザーだけど、メリットはありますか？
●ある！詳細は後述

2010/10/02

openSUSE Build Service を使ってみよう

10

OBS で使われる用語
プロジェクト
いくつかのパッケージからなる● プロジェクト毎にリポジトリが作成される
●

パッケージ
●

RPM パッケージに対応–

2010/10/02

OBS の1つのパッケージから複数の RPM を作ることもできる(はず)openSUSE Build Service を使ってみよう

11プロジェクトの作成「home:ユーザー名」というプロジェクトを最初に作る遊び場として使える● 公開しても、普通に検索するだけではヒットしない●–●

検索オプションの設定が必要

ログインしたら「Create New Project」

2010/10/02

openSUSE Build Service を使ってみよう

12リポジトリの設定
どのプラットフォーム向けにビルドするか設定
対象ディストリビューションは: 11.3
● アーキテクチャは: i586 と x86_64●「Repositories」タブの「Add repositories」
ディストリビューションで 11.3 を選べば OK● 作成されると↓のような画面が出る●

2010/10/02

openSUSE Build Service を使ってみよう

13fuse-exfat というのを見つけたんだけど、11.3 用のパッケージが無かったOTL[opensuse-ja] kindle/USBメモリのマウントエラー
2010/10/02

openSUSE Build Service を使ってみよう

14

11.3 用のパッケージが無い！
検索しても、最新のディストリビューション用のパッケージが見つからない場合がある
11.2 用はある● srpm をダウンロードして、ビルドすれば動くかもしれない● でも、環境を整えなければ…
●

2010/10/02

openSUSE Build Service を使ってみよう

15

fork しよう！
他の人のパッケージを元に新しいパッケージを作る
ファイルはコピーされる● コピー元が更新された場合に、更新を手元のプロジェクトに反映（merge）● 「他の人」や他のユーザーには、fork されたことが通知される●

fork したパッケージを 11.3 用にビルド

2010/10/02

openSUSE Build Service を使ってみよう

16パッケージの作成
パッケージを作成する●「Packages」タブ「Create new package based on existing package」

fork 元のパッケージを選択●

パッケージの詳細ページから 1-click でできればいいのに2010/10/02

openSUSE Build Service を使ってみよう

17

ビルド
しばらくすると自動的にビルドが始まる
仮想環境を自動的に作成して● ライブラリ類を自動的にインストールして●–スゴイ

状態は「Overview」タブの右側「Packages」タブで作成したパッケージを選択● 「Build status」の状態の部分をクリックするとログを見られる● suceeded になればOK●–––

2010/10/02

あとはダウンロードしてインストールするだけ
Repositories → openSUSE_11.3 にリポジトリURLあり
失敗したら…ソースを修正しなけれないけない

openSUSE Build Service を使ってみよう18

2010/10/02

openSUSE Build Service を使ってみよう

19

これなら make のしかたがわからなくても、11.3 用のパッケージをビルドできるね

でも、エラーが出てビルドに失敗した場合はあきらめるしかない
2010/10/02

openSUSE Build Service を使ってみよう

20

数日後

2010/10/02

openSUSE Build Service を使ってみよう

21桔梗さんにRPMパッケージの作り方を教えてもらった!
ぼくの壁紙集を公開したいんだけど、どうすればいい?

2010/10/02

openSUSE Build Service を使ってみよう

22パッケージを1から作る 1/3
CUI ツール osc を使うべし
Web インターフェースのファイルアップロードは使いにくい● Subversion のようなコマンド●–add して commit する

プロジェクトやパッケージ自体の作成は Web からやったほうがいいかも

2010/10/02

openSUSE Build Service を使ってみよう

23パッケージを1から作る 2/3
プロジェクトのチェックアウト$cd ~/Documents● $cd osc checkout ユーザー名:home● Documents/ユーザー名:home/プロジェクト名というディレクトリができる●

ファイルの追加$cd ユーザー名:home/プロジェクト名● $emacs foo.spec● $osc add foo.spec●

2010/10/02

openSUSE Build Service を使ってみよう

24パッケージを1から作る 3/3
ファイルのアップロード●$osc commit

コミットが完了するとサーバーでビルドが始まる

2010/10/02

openSUSE Build Service を使ってみよう

25

OBS の不思議なところ
noarch なパッケージ●i586 や x86 でとりあえずビルドすると、noarch ディレク
トリに配備される

リリース番号の自動付加
spec ファイルに書かれた内容は無視される● コミット番号とビルド番号以外にするには？
●–Build Service の tips に対処法が書かれているが…

osc の各コマンドにやたらと時間がかかることがある●

10分くらい待ってもだめなら、$HOME にある設定ファイルを消してみる？

2010/10/02

openSUSE Build Service を使ってみよう

26

参考資料
ドキュメントはhttp://en.opensuse.org/Build_Service● http://en.opensuse.org/openSUSE:Packaging_guidelines● http://fedoraproject.org/wiki/Packaging/Guidelines●

2010/10/02

openSUSE Build Service を使ってみよう

27

翻訳だけではない！
公式 Wiki であなたができること
by たっけー2010/10/02

openSUSE Build Service を使ってみよう

28

公式 Wiki
http://ja.opensuse.org/●

英語版のWiki: http://en.opensuse.org/ を翻訳したものが中心

Novel のアカウントを作れば、誰でも編集できる
openSUSE を使う人なら誰もが目にする●

きちんと維持していきたい

2010/10/02

openSUSE Build Service を使ってみよう

29要するに、みんなで翻訳しようってことでしょ？

2010/10/02

openSUSE Build Service を使ってみよう

30

翻訳だけではない！
英語ができなくても、できることはたくさん

2010/10/02

openSUSE Build Service を使ってみよう

31

日本語公式 Wiki の問題
翻訳されている記事が少ない・記事が古いまま●バージョンが11.2のまま…など

英語版Wikiのリニューアルによってリンク切れ多発●

各ページから English を選択すると英語に飛べる–●

英語版のページ名の変更

古い英語版は http://old-en.opensuse.org/ にある

機械的な処理によるソースの破損

2010/10/02

openSUSE Build Service を使ってみよう

32

11.3 用の URL が無い

2010/10/02

openSUSE Build Service を使ってみよう

33Wiki のソースが壊れている

2010/10/02

openSUSE Build Service を使ってみよう

34

ということで残りの時間で、何かしてみませんか？
おかしなページを見つける● URLを直す● 更新する● 翻訳する●2010/10/02

openSUSE Build Service を使ってみよう

35

その他の翻訳の話
openSUSE Documentation の翻訳●

http://opensuse-man-ja.berlios.de/opensuse-html/

2010/10/02

openSUSE Build Service を使ってみよう

36