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

Slackware14.1でソースからパッケージを自作する

 2015-02-25

 2015-02-25

 Slackware

こんにちは。今回のテーマは『Slackware14.1でソースからパッケージを自作する』です。公式リポジトリからバイナリで配布されているパッケージがとても少ないSlackwareは他のディストリビューションのパッケージをSlackware用に変換したりソースからビルドする機会が多いです。今回はソースからビルドしたソフトウェアをパッケージ化して管理していきます。 【関連記事】 Slackware 14.1を使ってみた Slackwareに日本語デスクトップ環境を構築する [adsense02] 【目次】 ソフトはパッケージ化して管理しよう Slackware用パッケージを作ろう パッケージを作るメリット

ソフトはパッケージ化して管理しよう

ソースからビルドする場合、make installでインストールをしている方も多いかと思います。それはそれで良いのですが、やはり削除やその後のアップデート等を考えるとパッケージ化して管理しておいた方が何かと楽だと思います。(これはSlackwareに限りません)

Slackware用パッケージを作ろう

今回作るパッケージは自分が使うパッケージを想定しています。作成したパッケージは他の環境でも動く可能性はありますが、保証はできません。

geditをパッケージ化する

今回は比較的ソースからのビルドも時間がかからないGUIエディタのGeditをパッケージ化してインストールまでしてみます。ビルドの依存性解決以外の部分は基本的に他のパッケージでも同じ要領です。

準備

まずはソースファイルを準備します。今回はgeditからgedit-2.30.4.tar.gzを~/Downloadにインストールしました。

ビルド

ビルドは以下のように行いました。(scrollkeeperの不足でエラーが出たので事前にインストールしています)

$ tar -zxvf gedit-2.30.4.tar.gz $ cd gedit-2.30.4 $ ./configure $ make

パッケージ化

作業用ディレクトリへのインストール

パッケージを作成しない場合はこのままroot権限でmake installをすれば良いのですが、今回はパッケージ作成のために作業用ディレクトリにインストールを行います。

$ su - root# make DESTDIR=/tmp/gedit-2.30.4 install

パッケージ作成

ではパッケージを作成します。今回はtxzファイルを作成しましたが、tgzファイルでも構いません。

root# cd /tmp/gedit-2.30.4 root# makepkg ../gedit-2.30.4.txz

パッケージ作成時に2回質問されますが、両方ともYesで回答しました。これで/tmp以下にgedit-2.30.4.txzパッケージが作成されました。

インストール

作成したパッケージは公式リポジトリからダウンロードしたパッケージと同様にpkgtoolを用いてインストールすることが出来ます。

root# cd /tmp root# installpkg gedit-2.30.4.txz

Geditがインストールされました。 01

パッケージを作るメリット

パッケージを作成してインストールの利点はシステムに認識され、管理が容易になることです。例えば削除する際にはパッケージ管理ツールであるpkgtoolで削除可能です。 画面はokgtool 02 パッケージからインストールするとログが残ります。現在インストールされていパッケージ一覧を見ることが出来ます。

$ ls /var/log/package | less

最後に

Slackwareの魅力の一つとしてrpmやdebパッケージのように複雑なルールに従い依存関係を書き込まなくてもシンプルなパッケージを手軽に作れることが挙げられると思います。もちろん依存関係は自分で管理しなくてはなりませんが、こんな硬派なディストロも味があって良いと思います。 [adsense]