这两天都要搞崩溃了,就是打不起包。原来是redhat9的问题。在打rpm的spec文件里面加入
%define _unpackaged_files_terminate_build 0
强制rpmbuild在找到unpackaged file的时候继续编译。
下面是打包java用的spec
%define name datapumpjava
%define version 1.0
%define release 1
%define _unpackaged_files_terminate_build 0
Summary:isoft datapump java
Name:%{name}
Version:%{version}
Release:%{release}
Source:%{name}-%{version}-%{release}.tar.gz
License:isoft Techolonigy Co.
Group:Development/China
BuildRoot:%{_builddir}/%{name}-%{release}
%description
This package is used to isoft datapump java jdk
%prep
%setup -c
%build
%install
mkdir -p $RPM_BUILD_ROOT/usr/java
cp -R jdk1.5.0_08 $RPM_BUILD_ROOT/usr/java/
#rm -rf $RPM_BUILD_ROOT/%{name}-%{version}
#rm -rf $RPM_BUILD_ROOT/%{name}-rpm
%clean
rm -rf $RPM_BUILD_ROOT
#rm -rf %{_builddir}/%{name}-%{version}
%post
echo "export JAVA_HOME=/usr/java/jdk1.5.0_08">>/etc/profile
echo "PATH=$PATH:/usr/java/jdk1.5.0_08:/usr/java/jdk1.5.0_08/bin">>/etc/profile
echo "CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar">>/etc/profile
echo "export PATH">>/etc/profile
echo "export CLASSPATH">>/etc/profile
%files
/usr/java/jdk1.5.0_08/
其实真正的打包文件是%files后面指定的目录,或单个文件。上面只写了/usr/java/jdk1.5.0_08/ 目录。如果要打包共享目录里面的内容。必须指定单个文件,否则把其他东西的内容也打进来了。
%install后面的应该算是包的源文件,只进入src包,不进入安装包。
%post后面是完成安装后执行脚本。这里是对/etc/profile文件加入java环境变量。
#后面是以前写的废话。。。 //不加上面这行就什么都打不进包,是个空包。不知道怎么回事。还是没有理解这个rpm虚目录和实目录之间的关系,继续研究中。。。。。。