検索

4.6. RPM のビルド

download PDF

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

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

  • ソース RPM をビルドします。
  • バイナリー RPM をビルドします。

    • ソース RPM からバイナリー RPM を再ビルドします。
    • spec ファイルからバイナリー RPM をビルドします。

4.6.1. ソース RPM のビルド

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

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

前提条件

手順

  1. 作成した spec ファイルが含まれている ~/rpmbuild/SPECS/ ディレクトリーに移動します。

    $ cd ~/rpmbuild/SPECS/
  2. rpmbuild コマンドを入力し、spec ファイルを指定して、ソース 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 ユーティリティーがインストールされている。

    # dnf 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 ファイルとソースコードを削除します。

次のいずれかの方法でビルドすると、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 のビルド

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

前提条件

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

    # dnf install rpm-build

手順

  1. spec ファイルが含まれている ~/rpmbuild/SPECS/ ディレクトリーに移動します。

    $ cd ~/rpmbuild/SPECS/
  2. spec からバイナリー 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.