ソースコードをパッケージ化したSRPM(拡張子がsrc.rpmのファイル)のインストール先は、デフォルトでは"${HOME}/rpmbuild"になります。(CentOS5/RHEL5以前は"/usr/src/redhat")。このデフォルトのインストール先を変更する方法を説明します。
SRPMはrpmコマンドでインストールします。
$rpm -ivh lsof-4.87-4.el7.src.rpm
デフォルトでインストールした場合は、ホームディレクトリ配下のrpmbuildディレクトリにインストールされます。
/home/n/rpmbuild/
├── SOURCES
│ ├── lsof_4.87-rh.tar.xz
│ └── upstream2downstream.sh
└── SPECS
└── lsof.spec
2.1 RPMのマクロ定義ファイル("~/.rpmmacros")で指定
ネットを調べるとたいてい出てくる方法はこちらの方法になります。rpmコマンドでのSRPMインストールと、その後のrpmbuildコマンドによるビルド操作で都度、引数でディレクトリを指定する手間を考えると、マクロ定義ファイルで予め定義するほうが現実的な気はします。
(1)マクロ定義ファイルの設定
インストール先のトップディレクトリは、"%_topdir"変数になるので、この変数をマクロ定義ファイルで変更します。
$echo "%_topdir /data/rpmbuild" > ~/.rpmmacros
$rpm -ivh lsof-4.87-4.el7.src.rpm
2.2 コマンド引数でインストール先ディレクトリを指定する方法
ホームディレクトリに".rpmmacros"ファイルを作成したくない場合や、一時的にインストール先ディレクトリを変更したい場合は、"--define="引数でマクロの変数を変更します。
$rpm -ivh --define='%_topdir /data/rpmbuild' lsof-4.87-4.el7.src.rpm