どのように作成したり、RPMパッケージを構築する
はじめに –
*””rpmbuildをツールの両方を構築するために使用され…
1)バイナリパッケージ〜ソフトウェアをインストールし、スクリプトをサポートする使用されます。これは、アプリケーションを構成するファイルが含まれ、任意の追加情報をインストールするには、それを消去する必要に沿っている。
2)ソースパッケージ〜ソースコード、パッチ、および仕様ファイルの元の圧縮されたtarファイルが含まれます。
*何のRPMとRPMパッケージマネージャですか?
RPMパッケージマネージャ(RPM)は、強力なコマンドラインのパッケージ管理システムをインストールすることができる、アンインストール、検証、クエリは、ソフトウェアパッケージのアップデート。
RPMパッケージのファイルやメタアーカイブの構成データをインストールすると、アーカイブファイルを消去する使用されます。メタデータのヘルパースクリプトは、ファイル属性、およびパッケージについての記述情報が含まれます。
*以下の3点を指定する必要があるRPMパッケージをビルドするには〜
アプリケーションの1)ソース – すべての場合には、ソースパッケージの構築プロセスで使用される変更しないでください。
2)パッチ – RPM形式を利用すると、自動的にパッチを適用することができます。パッチの問題は、ターゲットシステムに固有のアドレス。これは、適切なディレクトリ、またはクロスを解決するにプラットフォームの競合がアプリケーションをインストールするmakefileの変更を含めることができます。パッチは、環境に適切にコンパイルするために必要な作成します。
3)仕様書ファイル] – [ファイル仕様のRPMパッケージをビルドプロセスの中心にあります。この情報はRPMで、同様の手順どのように構築するRPMを伝えるパッケージをビルドするために必要が含まれます。仕様ファイルには、正確にどのようなファイルは、パッケージの一部であり、指示場所にインストールする必要があります。
**仕様ファイル〜8セクションを以下に示すように分割されて
1)前文〜したときのユーザーは、パッケージに関する情報を要求される情報が含まれます。これは、ソフトウェアのバージョン番号等は、パッケージの機能の説明が含まれます
イ)の準備〜ここでパッケージをビルドするのは、実際の作業を開始します。その名のとおり、このセクションでは、必要な準備を前に、ソフトウェアの実際の建物に作られています。もし何か必要な一般的に、ソースをする前にソフトウェアを構築するために行われるため、その準備のセクションで発生する必要があります。このセクションの内容は、通常のシェルスクリプトです。しかし、RPMを簡単に生活する2つのマクロを提供します。 1つのマクロは、圧縮されたtarファイルを展開することができますし、ソースディレクトリへcdします。他のマクロを簡単に展開したソースにパッチを適用します。
℃)ビルド〜このセクションでは、シェルスクリプトで構成されます。それは何のコマンドを実行するために使用され、実際の場合、またはビルドプロセスが複雑になる、makeコマンドを1つのように、ソースをコンパイルする必要がありますが必要です。ないマクロは、このセクションでご利用いただけます。
エ)をインストールする〜このセクションには、コマンドは実際にソフトウェアをインストールするために必要を実行するために使用されているセクションをインストールするシェルスクリプトを含む。
電子)のインストールとアンインストールスクリプトを〜これはスクリプトが実行されると、ユーザーのシステムでは、パッケージが実際にインストールまたは削除される上で構成されます。 RPMは/ポストインストール/パッケージの削除スクリプトを事前に実行することができます。
メス)を確認スクリプト〜は、ユーザーのシステム上で実行されるスクリプトです。このときのRPMパッケージの適切なインストールを検証が実行されます。
グラム)クリーン項〜は、ビルド後のことをクリーンアップすることができますスクリプトです。以来、RPMは、通常の良い仕事をしてこのスクリプトではほとんど使用され、クリーンアップ、ほとんどの環境を構築します。
h)ファイルリスト〜のファイルは、パッケージで構成されるリストから成ります。さらに、マクロの数を、インストール時にファイルの属性を制御するだけでなく、ファイルのマニュアルは、アールを示すために、および構成情報が含まれて使用することができます。ファイルのリストは非常に重要です。
環境を構築するための*** RPMの要件〜
] RPMには、ビルドを実行するディレクトリの設定が必要です。一方、ディレクトリの場所や名前を変更することができます。デフォルトのレイアウトは次のとおりです –
arunsb @ルート:〜#ls – lを/ usr / srcに/ RedHatの/
drwxr – xr – xに4096 25 2007ソース=”、およびアイコンのファイルは、オリジナルのソース、パッチが含まれて8月2日のルートルート
drwxr – xr – xに4096 25 2007スペック=”8月2日のルートルートは、仕様ファイルが含まれ
drwxr – xr – xに4096 25 2007ビルド=”ディレクトリは、ソースアンパックされ、&ソフトウェアを8月2日のルートルート構築されて
drwxr – xr – xに8ルートルート4096 2008年5月28日RPMSに=”バイナリパッケージに含まれてビルドプロセスによって作成されたファイル
drwxr – xr – xに4096 25 2007 SRPMS =”8月2日のルートルートは、ソースパッケージに含まれてビルドプロセスによって作成されたファイル
arunsb @ルート:〜#
のB]いくつかのグローバル変数をRPMで使用されるエクスポートする必要がある –
arunsb @ルート:〜#エクスポートRPM_BUILD_DIR = / usr / srcに/ RedHatの/は、BUILD /
arunsb @ルート:〜#エクスポートRPM_SOURCE_DIR = / usr / srcに/ redhat / SOURCESに/
ステップ1](spec)は、ファイル仕様書の作成〜
root@arunsb:~# head -n 50 /usr/src/redhat/SPECS/openlsm.spec
# Authority: Arun Bagul
#RPM_BUILD_DIR /usr/src/redhat/BUILD/
#RPM_SOURCE_DIR /usr/src/redhat/SOURCES/
%define MY_PREFIX /usr/local/openlsm/
## Preamble Section-
Name: openlsm
Version: 0.99
Vendor: IndianGNU.org & openlsm
Release: r45
Group: System Environment/Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Summary: openlsm Admin Server
License: GPL
%description
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.
## Preparation Section-
%prep
rm -rf ${RPM_BUILD_DIR}/openlsm-0.99-r45/
tar xvfz ${RPM_SOURCE_DIR}/openlsm-0.99-r45.tar.gz -C ${RPM_BUILD_DIR}
## Build Section-
%build
cd ./openlsm-0.99-r45/
./configure –prefix=/usr/local/openlsm –with-mysql=/usr/bin/mysql_config –enable-internal-pcre –with-geoip=/usr –with-ldap=/usr –enable-trace
make
## Install Section-
%install
cd ./openlsm-0.99-r45/
make install
## Files Section-
%files
/usr/local/openlsm
/usr/local/openlsm/etc/openlsm/openlsm.conf
/usr/local/openlsm/etc/openlsm/openlsm.conf.perf_sample
/usr/local/openlsm/etc/openlsm/ssl/
/usr/local/openlsm/bin/openlsm-config
….
…..
….. list of files installed by pkg
root@arunsb:~#
*どのようにファイルのリストを作成するのですか?
ファイルリストの作成は手動で処理します。何か私が私の手動インストールプレフィックスディレクトリからファイルをリストしたがわかる以下のようにコマンドを…
root@arunsb:~# find /usr/local/openlsm/ -type f -or -type d
ステップ2]ビルドの開始〜
root@arunsb:~# cd /usr/src/redhat/SPECS
root@arunsb:/usr/src/redhat/SPECS# ls -l openlsm.spec
-rw-r–r– 1 root root 12938 Dec 2 17:21 openlsm.spec
root@arunsb:/usr/src/redhat/SPECS#
root@arunsb:/usr/src/redhat/SPECS# rpmbuild -ba openlsm.spec
…
…。
… ..
アンパッケージファイル(複数可)を確認する場合:/ usr / libに/回転数/チェックアウトファイルを%(BuildRoot用)
書き込み:/ usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
書き込み:/ usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
arunsb @ルート:/ usr / srcに/ RedHatの/仕様#$エコー?
0
arunsb @ルート:/ usr / srcに/ RedHatの/仕様#ls – lを/ usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
– RWの- rを- rを- 1ルートルート3206 12月2日午後05時50分/ usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
arunsb @ルート:/ usr / srcに/ RedHatの/仕様#ls – lを/ usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
– RWの- rを- rを- 1ルートルート3052868 12月2日17時50分/ usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
arunsb @ルート:/ usr / srcに/ RedHatの/仕様#
*ソースとバイナリパッケージを作成!
のように”が起こったか/ usr / srcに/ RedHatの/”ディレクトリみましょう**
arunsb @ルート:/ usr / srcに/ RedHatの#PWDの
/ usr / srcに/ RedHatの
arunsb @ルート:/ usr / srcに/ RedHatの#1!
ビルドRPMSにソース仕様SRPMS
arunsb @ルート:/ usr / srcに/ RedHatの#1!は、BUILD /
openlsm – 0.99 – r45″==ソースここで”openlsm.spec”ファイル仕様すなわちからビルド手順の一部として抽出された
arunsb @ルート:/ usr / srcに/ RedHatの#1!ソース/
openlsm – 0.99 – r45.tar.gz”==’元のopenlsm – 0.99 – r45.tar.gz’ソース私がコピーされたファイル
arunsb @ルート:/ usr / srcに/ RedHatの#1!RPMS /ディレクトリ
のathlon i386以外i486のはi586 i686 noarch
arunsb @ルート:/ usr / srcに/ RedHatの#1!RPMS/i386 /
openlsm – 0.99 – r45.i386.rpm”==バイナリrpmパッケージを作成!
arunsb @ルート:/ usr / srcに/ RedHatの#1!SRPMS /
openlsm – 0.99 – r45.src.rpm”==ソースのRPMパッケージを作成!
arunsb @ルート:/ usr / srcに/ RedHatの#
ステップ3]今すぐにパッケージをインストールしてテストする〜
arunsb @ルート:/ usr / srcに/ RedHatの#cpはRPMS/i386/openlsm-0.99-r45.i386.rpm /ホーム/ arunsb /
arunsb @ルート:/ usr / srcに/ RedHatの#のCD /ホーム/ arunsb /
arunsb @ルート:〜#1!
openlsm – 0.99 – r45.i386.rpm
arunsb @ルート:〜#回転- ivh openlsm – 0.99 – r45.i386.rpm
準備中… ########################################### [100%]
1:openlsm ########################################### [100%]
arunsb @ルート:〜#1!/ usr /ローカル/ openlsm /
ビンのcontrib等libにsbinスクリプトを共有ヴァール含まれて
arunsb @ルート:〜#
** openlsmサーバーの始動〜
arunsb @ルート:〜#/ usr / / openlsmに/ contrib / openlsm – RedHatの起動ローカル
*料金openlsm管理サーバ:openlsm
。 [OK]を
arunsb @ルート:〜#
arunsb @ルート:〜#/ usr / / openlsmに/ contrib / openlsm – RedHatのステータスローカル
openlsm()が実行さ21607 pidを…
arunsb @ルート:〜#
arunsb @ルート:〜#回転- qをopenlsm – 0.99 – r45
openlsm – 0.99 – r45
arunsb @ルート:〜#
arunsb @ルート:〜#回転- QLのopenlsm – 0.99 – r45
..
…
arunsb @ルート:〜#RPMベースのqiv openlsm – 0.99 – r45
名前:openlsmリロケーション:()配置しない
バージョン:0.99メーカー:IndianGNU.org&openlsm
発売日:r45をビルド日付:Wed 2009年12月2日午前5時50分54秒午後IST
インストール日付:Wed 2009年12月2日6時06分23秒午後ISTビルドホスト:alongseveral – dr.eglbp.corp.yahoo.com
グループ:システム環境/デーモンSource RPM:openlsm – 0.99 – r45.src.rpm
サイズ:14877918ライセンス:GPL
署名:(なし)
パッケージャ:IndianGNU.org(http://www.indiangnu.org)
のURL:http://openlsm.sourceforge.net/
要約:openlsm管理サーバー
概要:
Linuxでは、Unixシステム用のopenlsm管理サーバー&オープンソースのウェブは無料ですベースのコントロールパネルを開きます。
arunsb @ルート:〜#
**注〜この資料では、どのようにドキュメントをコピーするマイクロを定義するための情報が含まれていない場合、manページを、どのようにpermisionと私はRPMに関する次回の記事では、このトピックをカバーする所有権等を設定する場所をデフォルトに。
**してください英語記事参照してください〜http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/
よろしく、
Arun Bagul