Package-Management
RPM %install 部分
所以,我對 rpmbuild 過程有些困惑。我現在維護著之前創建的大量腳本,雖然大多數都可以工作,但它們之間存在足夠的差異,以至於找不到一致的方法。
- 有些人在打包之前將文件(非常繁瑣)單獨複製到臨時位置。
- 有些使用原作者的規範文件,我們只是修改配置或程式碼。
- 有些是自製的,但顯然是在與我相同的理解水平下創造出來的!
具體來說,我很想擁有這種
make; make install
方法,但是,雖然make
建構軟體很好,但make install
實際上將它安裝在我的系統上。我想要做的是使用 make install,但為了打包程序的目的將它放在工作目錄中。我希望將軟體安裝在目標機器上
/usr/bin
,但是當我執行 make install 時,我希望它去/tempDir/usr/bin
——有意義嗎?基本上,我只是想避免我正在打包的軟體污染我的系統;全部插入似乎不對。一定是配置錯誤還是正常?我正在使用的規範文件的摘錄。將源文件複製到
/usr/src/redhat/SOURCES
並使用rpmbuild -bb <specfilename>
.BuildRoot: /var/tmp/%{name}-%{version}-root Source0: %{name}-%{version}.tar.gz %prep %setup -q %build ./configure <config opts> make %install rm -rf $RPM_BUILD_ROOT make install
要打包的文件需要安裝/隔離到影子樹中。
這通常通過覆蓋]DESTDIR 來完成
make DESTDIR=%{buildroot} install
在 %install 部分。