Linuxを日常的に使う実験ブログ

Slackware14.1でSlackBuilds.orgを利用したパッケージ管理

 2015-03-21

 2015-03-21

 Slackware

こんにちは。今回のテーマは『Slackware14.1でSlackBuilds.orgを利用したパッケージ管理』です。手動でパッケージ管理を求めるSlackwareにの半公式的なビルドスクリプトリポジトリのSlackBuild.orgの使い方を簡単に紹介します。SlackBuilds.orgの存在はLinux界のシーラカンスに起きた大きな環境変化だと思います。 [adsense02]

Slackwareユーザーの強い味方SlackBuilds.org

Slackwareのパッケージ管理をもっと簡単に

Slackwareのユーザーのソフトウェア導入は公式リポジトリからのバイナリパッケージの導入か、自分でのビルドが基本です。(その他、他ディストロのパッケージ流用等もありますが)ビルドして自作パッケージを作って依存性を解決しながら目的のソフトウェアを導入するというのは昔ながらの手法です。SlackBuilds.orgはこれらのビルド作業を自動化しようと生まれました。

SlackBuildファイルでビルドを自動化

SlackBuilds.orgはパッケージビルド用のスクリプトSlackBuildファイルを集めたリポジトリです。Archユーザーの方はABSやAURを想像すれば分かりやすいと思います。このSlackBuildスクリプトのおかげでSlackwareユーザーは依存性の問題以外は自動化出来るようになりました。

依存性は解決できない

強い味方なのは間違いないのですが、Slackwareの信条を遵守していて、依存性は自分で解決する必要があります。この辺りがArch Build SystemやPortageとは異なる点ですね。如何にもSlackwareらしいと思います。

SlackBuildsの使い方は主に2つ

sbopkgはビルドからインストールまで自動化するツール

SlackBuilds.orgの活用法は主に2つです。ひとつはsbopkgというツールを使う方法です。このツールを使うとパッケージの検索からSlackBuildファイルのダウンロード・ビルド・インストールまでを自動で行えます。Slackwareユーザーにはこのツールを愛用している人も多いと思います。

SlackBuilds.orgは手動でも使える

もう一つの方法は今回紹介する方法ですが、ブラウザからソースとSlackBuildファイルをダウンロードしてきて自分でSlackBuildファイルを実行してパッケージをビルドする方法です。sbopkgを使うよりも不便ですが、SlackBuilds.orgの仕組みを理解するには一度手を動かして自分でパッケージを作成するのが一番だと思い、敢えてこの方法を紹介します。

SlackBuildsを使ってパッケージをビルドする

今回はEvinceというPDFなどのドキュメント閲覧ソフトをパッケージ化してインストールしてみます。

パッケージの検索

まずSlackBuilds.orgにアクセスします。ここがSlackBuilds.orgの入り口です。“Search”と書かれた窓に検索文字を入れれば検索できます。 01 02

パッケージのビルド

#0 準備:SlackBuidディレクトリの作成(任意) 筆者はSlackBuilds.org用のディレクトリを設けて、そこで作業をするようにしています。以下コマンドでディレクトリを作成します。

$ mkdir -p ~/slackbuild

#1 ソースファイルとSlackBuildファイルのダウンロード ウェブブラウザでhttp://www.slackbuilds.org/にアクセスして、以下のファイルをダウンロードします。

  • ソースファイル:evince-3.12.2.tar.xz
  • SlackBuildファイル:evince.tar.gz

ソースファイルのダウンロードを忘れないようにご注意下さい。 03 Firefoxを使用した場合は~/Downloadsにダウンロードされるので先ほど作成した~/slackbuildに移動させます。

$ cd Downloads $ mv evince-3.12.2.tar.xz evince.tar.gz ~/slackbuild

#2 SlackBuildファイルの展開とビルド準備 ダウンロードしたSlackBuidファイルevince.tar.gzを展開します。

$ cd ~/slackbuild $ tar -zxvf evince.tar.gz

これによってevinceディレクトリが出来上がります。このディレクトリにソースファイルを移動させます。ソースファイルは移動させるだけで展開は不要です

$ cd ~/slackbuild #既に移動済みならば不要です $ mv evince-3.12.2.tar.xz evince

#3 ビルド 準備は整いました。ではビルドしましょう。ビルドは単純にスクリプトを実行するだけです。ビルド時はルート権限での作業が必要です。

$ su - root# cd /home/<ユーザー名>/slackbuild/evince root# ./evince.SlackBuid

これでパッケージが/tmp以下にできています。確認してみましょう。

$ ls /tmp

パッケージのインストール

ビルドしたパッケージは自作したパッケージと同様にpkgtoolsで扱うことができます。以下のコマンドでインストールします。

root# installpkg /tmp/evince-3.12.2-i486-1_SBo.tgz

最後に

今回は細かい動作も省略せずに書いたのでSlackBuilds.orgの便利さが伝わったか心配なのですが、ソースからビルドしてパッケージを自作する手間に比べたら相当に自動化されて便利になったと思います。sbopkgはリポジトリとローカルをシームレスにつなぐ便利なツールですが、一度自分の手を動かしてみるとsbopkgが何をしているのかよりクリアになると思います。sbopkgについては機会を改め紹介できればと思います。 [adsense]