自定义rpm pkg需要很长时间才能安装,并在最后导致cpio错误

问题描述:

我创建的rpm包需要很长时间才能安装。它只包含Berkely db格式的数据库文件和大小为2.2GB的数据库文件。自定义rpm pkg需要很长时间才能安装,并在最后导致cpio错误

下面是我的RPM规范

#AutoReq: no 
AutoReqProv: no 
%define PYTHON /usr/bin/python 
%define RPM_BUILD_DIR %{_topdir}/BUILD 
%define RPM_BUILD_ROOT %{_topdir}/tmp 
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') 

%define _source_payload w0.gzdio 
%define _binary_payload w0.gzdio 

# 
Summary: Prefixcat db package 
Name:  prefixcat 
Version: %{VERSION} 
Release: %{RELEASE} 
Source: %{_sourcedir} 
BuildRoot: %{_tmppath}/%{name} 
License: internal-only 
Distribution: WR Linux 
Vendor: XXX xxx 
Packager: XXX xx<[email protected]> 
Group:  Test/Applications 
#BuildArch: x86_64 

%description 
Prefixcat db 

#%prep 

#%build 

%install 
mkdir -p %{buildroot}/data/db/wbrs/factory/db 
cp -r %{_sourcedir}/data/db/wbrs/factory/db/prefixcat_db %{buildroot}/data/db/wbrs/factory/db 

%clean 
%{__rm} -rf %{buildroot} 

%pre 

%post 
echo "Prefixcat DB installed successfully in /data folder" 


%files 
%defattr(-,admin,root,-) 
/data 

%changelog 
* Tue Aug 01 2017 Sudharsan C <[email protected]> 
- Create prefixcat db as a seperate rpm 

转IVH prefixcat-1.1.100.x86_64.rpm,需要近15分钟来安装。

而且上面的命令将导致此错误

error: unpacking of archive failed on file /data/db/wbrs/factory/db/prefixcat_db;59818e12: cpio: read failed - Bad file descriptor

如何压缩的尺寸和安装快捷任何帮助吗?我正在CentOS7上构建这个rpm并在windriver 8上安装。在两个操作系统上的RPM版本都是相同的。

+0

我更担心rpm安装错误比安装所需的时间, root @ xxx:〜#rpm -ivh /home/prefixcat-10.1.1-102.x86_64.rpm 准备...# ########################################## [100%] 1:prefixcat ########################################### [100%] 错误:解压缩档案在file/data/db/wbrs/factory/db/prefixcat_db上失败; 59819882:cpio:读取失败 - 文件描述符错误 – Darshan

+0

EBADF误导:错误发生时恰好是errno中的内容。你几乎肯定会超过极限(如果2.2Gb的文件)可以放入cpio有效负载和rpm包中。将数据拆分为附加的子包(可能使用文件清单)。如果要使用depsolver安装整个文件集,请添加一个“任务包”,该任务包需要:每个子包。 –

+0

嗨,我知道分裂文件和缝合文件回%作为%帖子。但我们在阅读rpm文档(http://rpm.org/devel_doc/large_files.html)和https://www.google.co.in/search?q=rpm+bug+with+bigger+files&rlz=1C1CHBD_enIN734IN734&oq = rpm + bug + with + larger + files&aqs = chrome..69i57.8321j0j4&sourceid = chrome&ie = UTF-8支持最高4GB的版本可用于较新的rpm版本。 – Darshan

如果目标体系结构是32位,则可能会遇到2GB的文件大小限制。什么是目标架构和根文件系统类型?

编辑:由于您使用的是64位内核,2GB的限制远不太可能。

您是否验证过(使用sha256sum或类似软件)远程系统上的.rpm文件是否与开发系统上的文件相匹配?

+0

目标体系结构:64位,输出#uname -a // Linux xxx-4.1.21-WR8.0.0.10_standard#1 SMP PREEMPT Fri Jul 21 23:50:45 IST 2017 x86_64 x86_64 x86_64 GNU/Linux – Darshan

+0

SHA相同跨两个位置。我不认为它的问题 – Darshan