Linux RPM-spec不会将包复制到目标文件夹

时间:2013-04-19 06:46:34

标签: linux package rpm rpmbuild rpm-spec

我有一个包,其父目录下的目录名为 lib sample api doc 目录 %{name}-%{version} 。我想从这些文件夹中生成 RPM 包。此 rpm 包应在客户端指定的重定位目标文件夹下展开这些目录。包含所有包目录的%{name}-%{version}文件夹在 tar.gz 中压缩并保存在 SOURCE 文件夹下。阅读规范文档和Web资源后,我制作了以下spec文件。

Name: BATMAN
Version: 1.0.0
Release:    1%{?dist}
Summary: A cricket match program
Group: System Environment/Base
License: MEMEME
Source0: BATMAN-1.0.0.tar.gz
Prefix: /tmp
%define reloc_dir /tmp
%define target_dir %{reloc_dir}/manish
%define installdir PingPong-v%{version}

%description
Here comes the description

%prep
rm -rf %{_topdir}/BUILD/*
rm -rf %{target_dir}

%setup

%install
mkdir -p %{buildroot}
cp -R %{_topdir}/BUILD/%{name}-%{version}/* %{buildroot}

###What should come down here##############
mkdir -p %{target_dir}
install -dD %{buildroot}/* %{target_dir}
###########################################

#find %{target_dir} -type d -exec chmod 755 {} \;
#find %{target_dir} -type f -exec chmod 644 {} \;
#chmod -R 755 %{target_dir}

%files
/sample/sample.cpp
/header/BATMAN.hpp
/header/BALLMAN.hpp
/header/BUSYMAN.hpp
/header/BUSHYMAN.hpp
/doc/BATMAN.docx
/lib/BATMAN.so
/lib/BALLMAN.so
/lib/BUSYMAN.so
/lib/BUSHYMAN.so

%defattr(-,root,root,0755)

%clean
rm -rf $RPM_BUILD_ROOT

%changelog

%setup命令成功展开%{_topdir}/BUILD/下的压缩文件夹。然后我将这些文件复制到%{buildroot}(因为%files标记期望文件出现在 BUILDROOT 下以打包)。所有这些文件的打包也成功完成但是当我在生成的rpm上运行sudo rpm -ivh --nodeps <Package-Vesrion-Arch>.rpm命令时,我不会看到在目标端下创建任何文件夹或发生任何复制。虽然它表明包装正在成功安装; rpm -qa有一个我的包裹的条目。

0 个答案:

没有答案