RPM作りに挑戦!

はじめに

自分で作ったアプリケーションのRPMを作ってみましょう。
利用者がコンパイルする必要が無く、インストール/アンインストールも楽です。
さらに(ライセンスによりますが)ソースコードを公開したくない場合にも便利です。

と言うことで、KDocumentEditorのRPMを作成してみましょう。
Vine Linuxでは各ユーザー毎にRPMを作成する環境がそろっています。
これから作成するspecファイルは~/rpm/SPECSに、ソースのtar.gzファイルは~/rpm/SOURCESにおいて下さい。

準備

$ tar xvzf kdocumenteditor.tar.gz
$ cd kdocumenteditor
$ make -f Makefile.cvs
$ cd ..
$ mv kdocumenteditor kdocumenteditor-1.0
$ tar cvzf kdocumenteditor-1.0.tar.gz kdocumenteditor-1.0

specファイルの作成

RPM作成のメインの作業はこのSPECファイルを作ることです。
RPM HOWTO: RPM パッケージの作成を参考にkdocumenteditor.specを作ってみます。

ヘッダ部分は以下のようになります。

Summary: KDocumentEditor is KDE based basic text editor.
Name: kdocumenteditor
Version: 1.0
Release: 1
Source: https://linux-life.net/program/cc/kde/doc/kdocumenteditor/kdocumenteditor-1.0.tar.gz
Copyright: distributable
Group: Applications/Editors
Packager: Tasuku Suzuki <tasuku@linux-life.net>
Summary(ja): KDocumentEditorはKDE用の基本的なテキストエディタです。
URL: https://linux-life.net/program/cc/kde/doc/kdocumenteditor/
Buildroot: %{_tmppath}/%{name}-root

%description
KDocumentEditor is KDE based basic text editor.

%description -l ja
KDocumentEditorはKDE用の基本的なテキストエディタです。

つぎにRPM作成のための手順を書きます。

%prep
rm -rf $RPM_BUILD_ROOT

%setup

%build
./configure
make

%install
make prefix=${RPM_BUILD_ROOT}/usr install

%clean
rm -rf $RPM_BUILD_ROOT

さらに作成されるファイルの一覧を書きますが、いちいち把握しておくのが面倒なので、SPECSディレクトリで以下のコマンドを実行します。

$ rpm -bi kdocumenteditor.spec

すると/var/tmp/kdocumenteditor-root/をルートディレクトリ(/)と仮定してインストールが行われます。
これ以下のディレクトリにあるファイルが生成されるファイルですので、これをファイル一覧に反映させます。

%files
%defattr(-,root,root)
%dir /usr/share/doc/HTML/ja/kdocumenteditor
/usr/share/doc/HTML/ja/kdocumenteditor/index.docbook
/usr/share/doc/HTML/ja/kdocumenteditor/index.cache.bz2
/usr/share/doc/HTML/ja/kdocumenteditor/common
/usr/share/applnk/Editors/kdocumenteditor.desktop
%dir /usr/share/apps/kdocumenteditor
/usr/share/apps/kdocumenteditor/kdocumenteditorui.rc
/usr/share/icons/hicolor/32x32/apps/kdocumenteditor.xpm
/usr/share/icons/hicolor/16x16/apps/kdocumenteditor.xpm
/usr/share/locale/ja/LC_MESSAGES/kdocumenteditor.mo
/usr/bin/kdocumenteditor

ファイルはそのままで、ディレクトリの前には「%dir」とつけるようです。

最後にChangeLogを付け加えて終了です。

%changelog
* Mon Oct 13 2003 Tasuku Suzuki <tasuku@linux-life.net>
- 新規作成
- version 1.0 released.

RPMの作成

$ rpm -ba kdocumenteditor.spec

とすると

が生成されます。
作成したRPMの情報は

$ rpm -qip kdocumenteditor-1.0-1.(i386|src).rpm

で見ることができます。

注意点

開発時にappnameではなくappname-VERSIONというディレクトリ内で

$ make -f Makefile.cvs

を実行するとappname.poであるべきファイル名がappname-VERSION.poとなり日本語化できないようです。
この原因や解決する方法がわからないというか、調べていないので、
とりあえず開発はappnameというディレクトリで行い、tar.gz作成はappname-VERSIONディレクトリにmvまたはcp(またはln -s)しています。

おわりに

今回作成したファイルは以下からダウンロード可能です。

スポンサード リンク

トラックバック

トラックバックURL
https://linux-life.net/tb/program/cc/kde/doc/rpm/
Linux Life 〜 No linux, No life 〜
プログラミング > C++ > KDE > KDEプログラミング入門 > RPM作りに挑戦!