Geeko Blog » マニュアルのみのRPMファイルを作ってみた で、Sambaの日本語マニュアルパッケージを作成した時に参照したLinuxの日本語マニュアルページですが、2017年12月15日バージョンでした。これは openSUSE 15.0 から変わっていません。ちょっと古いですね。そこで、他のディストリビューションなどと比較して見ることにしました。結果は以下の通りです。なお、各ディストリビューションとも、各種コマンドでパッケージの最新化をして確認するか、配布サイトのパッケージ情報を見ています(※のもの)。

  • CentOS 7 20130615版
  • Debian10 20180315版
  • openSUSE 15.2 20171215版
  • openSUSE Thumbleweed 20191215版(※)
  • Fedora 20200315版(※)
  • Oracle Linux 20130615版(※)
  • Arch Linux なし(※)
  • Gentoo Linux 20180315版(※)

CentOS(=RedHat=Oracle Linux)はちょと古すぎますね。Fedora はやはりというか新しいです。しかし、Thumbleweed も結構新しい方でしょう。とりあえず15.2で使うのであれば、Thumbleweed版を持ってきて入れてしまうと言うのも手かもしれません。rpmファイルの中身はテキストだけなので、バイナリの互換性で引っかかることはないですから。

ちなみに、日本語マニュアルについては、Open Build Service で20201115版を作成し、更新をお願いしておきましたので、そのうちopenSUSE用の最新版が提供されるようになるのではないかと思います。

ただ、ls コマンドのマニュアルを見てみると、openSUSE 15.2 での日本語マニュアルはは GNU Fileutils のバージョンが4.1であると表示されますが、英語版は バージョン8.29 となっています。となると、日本語マニュアルに頼りすぎるのは少々危険かもしれません。

この記事は openSUSE Advent Calendar 10日目です。

今日は Open Build Service(動画配信ソフトと紛らわしいですが、以下 OBS)をセルフホストする話です。

Open Build Service

ご存知の人も多いかと思いますが、まずは OBS についておさらいしておきたいと思います。OBS は openSUSE で使用しているパッケージの開発のためのシステムです。openSUSE で使用している OBS の Web UI には次のページからアクセスすることができます。
https://build.opensuse.org

OBS が提供する主な機能は以下のとおりです:

  • パッケージソースのバージョン管理
  • Pull request スタイルのパッケージ開発のコラボレーション
  • CI 環境(オンラインビルド、ビルド結果の配信)
    • rpm はもちろん、deb パッケージも扱えます!

OBS のセルフホスト

OBS 自体もオープンソースソフトウェアであり、openSUSE で使うインスタンスを SaaS として使うだけではなく、自身のサーバーにインストールして使うことができます。これにより、会社内で使用するビルドサーバーをローカルに構築することも可能です。

今回は openSUSE Leap 15.2 上にパッケージから OBS をセットアップする方法を紹介します。公式ウェブサイトのダウンロードページの目立つところには(2020年12月現在) 15.1 ベースの ISO イメージからインストールする簡単な方法が書かれていますが、15.1 のサポート期間もそろそろ終わることですし、この方法は今回は使わないことにします。
https://openbuildservice.org/download/

パッケージから OBS をインストール

それでは始めましょう。openSUSE Leap 15.2 はいつものようにセットアップしてください。私が今回実験する上では VirtManager で KVM の VM を作って試しました。

セットアップした後、Web アプリサーバーですので、OBS サーバーにアクセスするときに使用するホスト名の設定をしておいてください。この後の設定スクリプトでがこのホスト名でオレオレ証明書を作ってくれます(設定されていないと止まります)。ちゃんとしたドメインのホスト名でも良いですし、LAN 内の /etc/hosts に設定して回っても OK です。私はルーター (RTX810) の DNS で、LAN 内でのみ有効なホスト名を割り当ててます。

OBS サーバーのパッケージをインストールしましょう。リポジトリを追加して OBS_Server パターンをインストールするだけです。実際は機能ごとにサーバーを分けることもできますが、今回は全部入れてしまいます。

zypper ar -f https://download.opensuse.org/repositories/OBS:/Server:/2.10/openSUSE_15.2/OBS:Server:2.10.repo
zypper in -t pattern OBS_Server

※OBS を構成するサービスについては、ユーザーガイドに解説があります。今回はビルドも含めて一緒に動かします。
https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.architecture.html

OBS サーバーを起動するために色々設定しましょう。ここでも手を抜いて設定スクリプトを使います。/usr/share/doc/packages/obs-server/README.md に書かれている通り、次のスクリプトを実行して、あとは待つだけです。

/usr/lib/obs/server/setup-appliance.sh

OBS アプリケーションの設定

セットアップが終わったら、https://設定したホスト名/ にアクセスしてみましょう。オレオレ証明書の警告は出ると思いますので、続行するか信頼済みの証明書に登録するかはおまかせします。

まずは Admin アカウントでログインしてみてください。初期パスワードは opensuse です。そうすると、いつもの OBS の Web UI に見たことのない管理用のアイコンが並んでいます。(画像はプロジェクトとパッケージをいくつか追加した後の状態)

あとは、ユーザーを追加したり、プロジェクトとパッケージを追加したり、好きなようにできます。1つやっておいたほうがよいことは、openSUSE の OBS との連携設定です。というのも、セットアップした状態では、ビルドターゲットのディストリビューションの定義(パッケージ類)がない状態です。これを1から作る(パッケージをアップロードしたり)のは大変です。そこで、openSUSE の OBS とリンクします。これにより、openSUSE をはじめとしたディストリビューションの定義やパッケージを必要に応じて、自動的に openSUSE の OBS から取ってこられるようにできます。設定自体は簡単で、設定画面から「Interconnect」にあるボタンを1回クリックするだけで終わります。

詳しい情報

ユーザーガイドとアドミニストレータガイドがあるので、見ておくと良いでしょう。 https://openbuildservice.org/help/