検索

4.6. RPM のビルド

download PDF

rpmbuild コマンドを使用して RPM パッケージをビルドできます。このコマンドを使用する場合、rpmdev-setuptree ユーティリティーによって設定された構造と同じ特定のディレクトリーおよびファイル構造が想定されます。

rpmbuild コマンドでは、ユースケースや期待する結果によって組み合わせる引数が異なります。主な使用例は次のとおりです。

  • ソース RPM のビルド
  • バイナリー RPM のビルド

    • ソース RPM からのバイナリー RPM の再ビルド
    • SPEC ファイルからのバイナリー RPM のビルド

4.6.1. ソース RPM のビルド

ソース RPM (SRPM) をビルドすると、次の利点があります。

  • 環境にデプロイされた RPM ファイルの特定の 名前、バージョン、リリース の正確なソースを保持できます。これには、正しい SPEC ファイル、ソースコード、およびすべての関連パッチが含まれます。これは追跡とデバッグに役立ちます。
  • 異なるハードウェアプラットフォームまたはアーキテクチャー上でバイナリー RPM をビルドできます。

前提条件

手順

  1. ~/rpmbuild/SPECS/ ディレクティブに移動します。このディレクティブには、作成した SPEC ファイルが含まれています。

    $ cd ~/rpmbuild/SPECS/
  2. 指定された 仕様 ファイルを使用して rpmbuild コマンドを入力して、ソース RPM をビルドします。

    $ rpmbuild -bs <specfile>

    -bs オプションは、ビルドソースを表します。

    たとえば、bellopellocello プログラムのソース RPM をビルドするには、次のように入力します。

    $ rpmbuild -bs bello.spec
    Wrote: /home/admiller/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpm
    
    $ rpmbuild -bs pello.spec
    Wrote: /home/admiller/rpmbuild/SRPMS/pello-0.1.2-1.el8.src.rpm
    
    $ rpmbuild -bs cello.spec
    Wrote: /home/admiller/rpmbuild/SRPMS/cello-1.0-1.el8.src.rpm

検証手順

  • rpmbuild/SRPMS ディレクトリーに、生成されたソース RPM が含まれていることを確認します。ディレクトリーは、rpmbuild で必要な構造の一部です。

4.6.2. ソース RPM からのバイナリー RPM の再ビルド

ソース RPM (SRPM) からバイナリー RPM を再構築するには、--rebuild オプションを指定した rpmbuild コマンドを使用します。

バイナリー RPM の作成時に生成される出力は詳細なもので、これはデバッグに役立ちます。この出力は各種例によって異なり、SPEC ファイルに一致します。

生成されるバイナリー RPM は 、~/rpmbuild/RPMS/YOURARCH ディレクトリー (YOURARCH はアーキテクチャー) に配置されます。パッケージがアーキテクチャー固有でない場合は ~/rpmbuild/RPMS/noarch/ ディレクトリーに配置されます。

前提条件

  • システムに rpmbuild ユーティリティーがインストールされています:

    # yum install rpm-build

手順

  1. ソース RPM が含まれている ~/rpmbuild/SRPMS/ ディレクティブに移動します。

    $ cd ~/rpmbuild/SRPMS/
  2. ソース RPM からバイナリー RPM を再構築します。

    $ rpmbuild --rebuild <srpm>

    srpm を ソース RPM ファイルの名前に置き換えます。

    たとえば、bellopellocello を SRPM から再構築するには、次のように入力します。

    $ rpmbuild --rebuild bello-0.1-1.el8.src.rpm
    [output truncated]
    
    $ rpmbuild --rebuild pello-0.1.2-1.el8.src.rpm
    [output truncated]
    
    $ rpmbuild --rebuild cello-1.0-1.el8.src.rpm
    [output truncated]
注記

rpmbuild --rebuild を呼び出すと、次のプロセスが実行されます。

  • SRPM の内容 (SPEC ファイルおよびソースコード) の、~/rpmbuild/ ディレクトリーへのインストール。
  • インストールされたコンテンツを使用して RPM をビルドします。
  • SPEC ファイルとソースコードを削除します。

次のいずれかの方法でビルドした後、仕様 ファイルとソースコードを保持できます。

  • RPM をビルドするときは、--rebuild オプションの代わりに --recompile オプションを指定して rpmbuild コマンドを使用します。
  • bellopellocello の SRPM をインストールします。

    $ rpm -Uvh ~/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpm
    Updating / installing…​
       1:bello-0.1-1.el8               [100%]
    
    $ rpm -Uvh ~/rpmbuild/SRPMS/pello-0.1.2-1.el8.src.rpm
    Updating / installing…​
    …​1:pello-0.1.2-1.el8              [100%]
    
    $ rpm -Uvh ~/rpmbuild/SRPMS/cello-1.0-1.el8.src.rpm
    Updating / installing…​
    …​1:cello-1.0-1.el8            [100%]

4.6.3. SPEC ファイルからのバイナリー RPM のビルド

仕様 ファイルからバイナリー RPM をビルドするには、-bb オプションを指定した rpmbuild コマンドを使用します。

前提条件

  • システムに rpmbuild ユーティリティーがインストールされています:

    # yum install rpm-build

手順

  1. 仕様 ファイルが含まれている ~/rpmbuild/SPECS/ ディレクティブに移動します。

    $ cd ~/rpmbuild/SPECS/
  2. 仕様 からバイナリー RPM をビルドします。

    $ rpmbuild -bb <spec_file>

    たとえば、spec ファイルから bellopellocello バイナリー RPM をビルドするには、次のように入力します。

    $ rpmbuild -bb bello.spec
    
    $ rpmbuild -bb pello.spec
    
    $ rpmbuild -bb cello.spec
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.