2017-09-21 95 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