【RPM】rpmrebuild抽出spec再パッケージrpm例
2078 ワード
文書ディレクトリ
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 -idv
rrpmbuild/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パケットが再生成されます