Package-Management

RPM %install 部分

  • September 14, 2016

所以,我對 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 部分。

引用自:https://unix.stackexchange.com/questions/180666