2017-09-21 172 views
0

是否有可能在spec文件中爲子包提供單獨的%安裝部分?rpm子包%安裝部分

例如,文件可以被用於主包指定爲

%files 

和用於分裝這樣的:

%files mysubpackage 
然而

,我只看到一個

%install 

部分,如果我遇到了錯誤

%install mysubpackage 
+0

記住 - '%install'是RPM *建立時間*。 scriptlet在*安裝時執行*,*例如*'%post'。那些允許子包。 –

回答

1

不,你不能有,你不需要單獨的%安裝部分。

我們假設一個典型的例子:編譯一個程序並且想要創建兩個包; library.rpm和library-devel.rpm(帶頭文件)。然後,你就會有一個規範文件是這樣的:

Name: library 
# probably some other fields... 

%description 
describre library 

%package devel 
Summary: headers for library 

%description devel 
describe library-devel package 

%prep 
# some common prep code for both packages; eg 
%setup -q 

%build 
make (or whatever to build your program) 

%install 
# install files for both rpm packages; library AND headers 
mkdir -p ${RPM_BUILD_ROOT}/%_libdir/ 
mkdir -p ${RPM_BUILD_ROOT}/usr/include/ 

cp library.so* ${RPM_BUILD_ROOT}/%_libdir/ 
cp include/*.h* ${RPM_BUILD_ROOT}/usr/include/ 

%files 
%defattr(-,root,root) 
%_libdir/*.so.* 

%files devel 
%defattr(-,root,root) 
%_libdir/*.so # yes; if you use version numbers; the versioned .so go in the normal package; the one without version number in the devel package 
/usr/include/* 

進一步閱讀:RPM guide