【簡単に解説】RPMパッケージを作成する方法

rpmパッケージの作成方法
  • このエントリーをはてなブックマークに追加
  • Pocket

このページではRPMパッケージ作成の方法を紹介する。

初心者の方であれば、とりあえず知らずともまったく問題がない。Linux入門を上から確認している方は、飛ばしてもいいだろう。

パッケージを作成するときはシステムに致命的な損傷を与えないよう、一般ユーザ権限でホームディレクトリの下で行うことをお勧めする。

環境準備

まずは開発環境をインストールする。

# yum install rpm-build

install rpm-build

# yum groupinstall 'Development tools'

install devel-tools

CentOSではこの二つのコマンドを叩くとRPM開発環境が整う。

RPMパッケージの作成

src.rpmファイルのダウンロード

多くのRPMパッケージにはバイナリパッケージとソースパッケージが用意されている。ソースパッケージはSRPMと呼ばれ、.src.rpmという拡張子がつく。

準備が整ったら「src.rpm」ファイルをダウンロードしてみよう。

$ yumdownloader –source unzip

yumdownloader --source unzip

とするとダウンロードできる。今回unzipのsrc.rpmをダウンロードした。

unzip-dir

上の図の「rpmbuildディレクトリ」に関してはRPMパッケージを作る過程で作成されるので現段階で存在しなくても問題ない。

$ rpm -ivh unzip-6.0.15.el7.src.rpm

でホームディレクトリにソースファイルを一式インストールする。警告が出るが今回は気にしなくて大丈夫だ。

source-unzip-rpm-ivh

ビルドのためのインストール

# yum-builddep /home/<hoge>/rpmbuild/SPECS/unzip.spec

このコマンドでunzipをビルドするためのヘッダやライブラリ群などがインストールされる。

yum buildep unzip

一旦ここで/home/<hoge>/rpmbuild/SOURCESの下を覗いてみよう。大本のソースファイルと多数のパッチが見えるはずだ。CentOSは保守的なので一定のバージョンをパッチで補正してセキュリティを保つため、少々枯れたバージョンに多数のパッチが提供される形になる。

unzip build source

/home/<hoge>/rpmbuild/SPECSの下にはRPMを生成するための<hoge>.specというファイルが置かれる、これはRPMパッケージを作成するためのいわば「レシピ」だ。

unzip build specs

試しに覗いてみよう。

vi unzip-spec

概要とバージョン、ライセンスなどが記述され、ソースはどこから持ってきたものなのか?どのようなパッチがあるかが記載される。

unzip spec1

次は詳細概要とパッチをどうあてるかが記述されている。

unzip spec2

ここの段階でmake及びmake install が実行される。今回はconfigureの項目がないがほかのパッケージでは多くのものがconfigureする項目が存在する。最後は変更履歴などが記載されている。

unzip spec3

ビルド

実際にspecファイルをもとにビルドしてみよう。

$ rpmbuild -ba unzip.spec

rpmbuild unzip-spec

今回は特に変更を加えていないのでエラーは出ないはずだ、正常に完了すると以下のようになる。

comp unzip-build

$ ls ~/rpmbuild/RPMS/x86_64/

としてみるとパッケージが出来上がっているのが確認できる。

my rpm unzip

デバッグ情報用のパッケージも出来上がる。今回作ったパッケージはすでにシステムに既存するものなので再度インストールする必要はない。

$ rpm -qip unzip-6.0.15.el7.centos.x86_64.rpm

などとして情報を確認してみよう。公式パッケージとはいくらか異なる項目があるのがわかると思う。今回src.rpmを使ってパッケージをリビルドしたが、もちろん

  • ~/rpmbuild/SOUECES
  • ~/rpmbuild/SPECS

の中に自分で

  • ソースファイルやパッチファイル、
  • specファイル

を用意することで自作パッケージが作成可能なので、興味のある方はぜひ自分でパッケージを制作してみてほしい。

まとめ

このページではRPMパッケージを作成する方法についてお伝えした。

なかなか作る機会はないかもしれないが、そういった必要性が出てきたとき、参考にしていただければと思う。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*