RPMパッケージ。 パート2:SPECファイルの理論

RPMの魔法はそれです パッケージをビルドするためのすべての手順は、単一のSPECファイルに含まれています。 もちろん、最初にそれを理解する必要があり、時にはそれは簡単ではありません...

SPECファイルとは何ですか?

基本的には、パッケージのビルド、インストール、アンインストールの方法を示すファイルです。

私たちがあなたに与えることになる指示は、段階に分けられ、それは順番にマクロです。 これらは、次の基本的な段階です。

  1. %準備:ソースが解凍され、パッチが適用されます。
  2. %ビルド:バイナリがコンパイルされます。
  3. % 小切手:正しくコンパイルされていることを確認します。
  4. %インストール:設置訓練を実施します。
  5. %ファイル:パッケージに表示されるすべてのファイルを一覧表示します。 また、属性を割り当てるためにもよく使用されます。 リストされていないファイルがある場合、そのファイルはビルドされません。

一部のSPECには、一部のステージがない場合があります。 それらは必須ではありません.

と呼ばれる他の段階があります スクリプトレット。 これらは、パッケージのビルド時ではなく、インストールまたはアンインストール時に実行されるため、特別です。 別のパッケージがインストールされたときに実行するトリガーをスケジュールすることもできます。 これは、RPMがDEBファイルよりも優れている大きな利点のXNUMXつです。

RPMの大きな混乱はそれです すべてに同じ構文があります。 つまり、これらすべての特別な単語の前にパーセント記号(%)はRPMマクロですが、すべての種類のマクロがあります。

  • 機能(%セットアップ、%構成、%パッチ…)
  • 事前定義された変数(%_bindir、%dist…)
  • SPEC自体で定義された変数(%buildroot、%name、%version ...)
  • 静的セクション(%description、%changelog…)
  • ステージ(ビルド%、インストール%…)
  • トリガー(%triggerin、%triggerpostun…)
  • スクリプトレット(%pretrans、%postun ...)

特定のマクロがどのように使用されているかを知るための唯一の方法は ドキュメントを参照してください。 実は、他のトリックをいつでも使用できます。 SPECがあなたと同じようなパッケージでどのように作られているかを見てください、または試行錯誤の方法。 対 実用的なコマンド:

rpmbuild --showrc#すべてのマクロを表示する
rpmbuild --eval = "%macro_name"#展開されたマクロを表示する

マクロの周りに角かっこがある場合、マクロは同じです。 角かっこの後に疑問符がある場合、展開するものがない場合は空白になります。 例えば、 1%{?距離} に拡大します 1.fc16 Fedora 16では、しかし別のディストリビューションでは、 1.

マクロはコメントでも展開されます。 拡散を防ぐには、XNUMXつのパーセンテージを続けて使用します。 例えば、 %% セットアップ のようになります % セットアップ 文字通り拡大することによって。

食欲をそそる

私たちはすでにこのチュートリアルの第XNUMX回目ですが、何をパックするかまだわからないので、ここにあなたの口を開くためのビデオがあります:

パックするゲームは 中毒性が高い。 これをプレイして数時間を無駄にした後で時間がない場合に備えて、チュートリアルを完了しないことをお勧めします...

< < RPM パッケージ化チュートリアルの最初の部分を読む


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。