【RPM】rpmrebuild抽出spec再パッケージrpm例

2078 ワード

文書ディレクトリ

  • 1. rpmrebuildインストール
  • 2. rpmrebuild rpmのspecファイル
  • を抽出
  • 3. rpm 2 cpio解凍rpmパッケージ
  • 4. rpmbuild再build rpmパッケージ
  • 1.rpmrebuildインストール


    rpmrebuild-2.11-3.el7.noarch.rpm詳細ページhttps://centos.pkgs.org/7/epel-x86_64/rpmrebuild-2.11-3.el7.noarch.rpm.html
    インストール手順:
    #1. Download latest epel-release rpm from http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/
    wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm
    #2. Install epel-release rpm:
    rpm -Uvh epel-release*rpm
    #3. Install rpmrebuild rpm package:
    yum install rpmrebuild
    

    2.rpmrebuild rpmのspecファイルを抽出


    コマンドを実行するとspecのvimファイルが開き、vimの名前を付けて保存します(shift+:wファイル名)rpmrebuild -e -p hadoop_3_1_0_0_78-3.1.1.3.1.0.0-78.x86_64.rpm
    私の保存はhadoopのためです.3_1_0_0_78-3.1.1.3.1.0.0-78.specでhadoop_3_1_0_0_78-3.1.1.3.1.0.0-78.specはrpmbuild/SPECディレクトリにコピーして使用を待つ

    3.rpm 2 cpio伸張rpmパック


    現在のディレクトリの下に解凍されたusr(このディレクトリはインストール後のインストールディレクトリのように、e.g usr/hdp/3.1.0.0-78...)rpm2cpio hadoop_3_1_0_0_78-3.1.1.3.1.0.0-78.x86_64.rpm |cpio -idvrrpmbuild/BUILDROOTディレクトリの下にhadoop_を作成3_1_0_0_78-3.1.1.3.1.0.0-78.x86_64ディレクトリmkdir hadoop_3_1_0_0_78-3.1.1.3.1.0.0-78.x86_64(なぜBUILDROOTに建てられたのかというと、このディレクトリはもともと最終的な仮想インストールディレクトリだったためかと思いますが、rpm解凍されたディレクトリはインストールディレクトリの様子で、解凍されたrpm.specファイルの中でfilesディレクトリを見るとSOURCEではありません)
    ただし注意:BUILDROOTディレクトリでは、build rpmのたびにクリアされるので、解凍したソースコードをSOURCEディレクトリの下に置いてから、BUILDROOTの下にコピーしましょう
    ソースコードを変更する場合はrpmbuild/BUILDROOT/hadoop_を変更します.3_1_0_0_78-3.1.1.3.1.0.0-78.x86_64/usrでいいからspecで直す必要があれば直す

    4.rpmbuild再build rpmパッケージ

    [hdp01@hdp01 SPECS]$ rpmbuild -bb hadoop_3_1_0_0_78-hdfs.spec 
    

    対応するrpmパケットが再生成されます