0
是否有可能在spec文件中为子包提供单独的%安装部分?rpm子包%安装部分
例如,文件可以被用于主包指定为
%files
和用于分装这样的:
%files mysubpackage
然而
,我只看到一个
%install
部分,如果我遇到了错误
%install mysubpackage
是否有可能在spec文件中为子包提供单独的%安装部分?rpm子包%安装部分
例如,文件可以被用于主包指定为
%files
和用于分装这样的:
%files mysubpackage
然而
,我只看到一个
%install
部分,如果我遇到了错误
%install mysubpackage
不,你不能有,你不需要单独的%安装部分。
我们假设一个典型的例子:编译一个程序并且想要创建两个包; 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
记住 - '%install'是RPM *建立时间*。 scriptlet在*安装时执行*,*例如*'%post'。那些允许子包。 –