安装rpm遇到cpio: Digest mismatch

[root@somesystem jvm]# fpm -s dir -t rpm -n "custom-java" -v "1.0.3" -a noarch --prefix=/usr/lib/jvm jdk1.6.0_31 jdk1.7.0_11
Created rpm {:path=>"custom-java-1.0.3-1.noarch.rpm"}
[root@somesystem jvm]# rpm -Fvh custom-java-1.0.3-1.noarch.rpm
Preparing...                ########################################### [100%]
   1:java-rally             ########################################### [100%]
error: unpacking of archive failed on file /usr/lib/jvm/jdk1.6.0_31/bin/appletviewer;50fdc4dd: cpio: Digest mismatch
今天做了一个rpm包,安装的时候报上面的错误。查了一下,把 prelink包卸载掉,再做一遍rpm包,安装,就没问题了。

rpmbuild 解决Installed (but unpackaged) file(s) found的方法

遇到了这个问题,搜了下,整合下大家的建议。我用了方法1,不再报错.

1、找到 /usr/lib/rpm/macros 中

%__check_files

/usr/lib/rpm/check-files %{buildroot}   注释掉


2、在/usr/lib/rpm/macros文件中有一个定义:
%_unpackaged_files_terminate_build 1,把1改为0只警告


3、在spec文件中,找到%files(之下有很多%{_bindir}、%{_libdir}、%{_datadir}的),在其下依葫芦画瓢的添加上面提示的内容。
/usr/bin/xxx => %{_bindir}/xxx
/usr/lib/xxx => %{_libdir}/xxx
/usr/include/xxx => %{_includedir}/xxx
/usr/share/xxx => %{_datadir}
/xxx/usr/man/xxx => %{_mandir}/xxx

记录终端输出:

script这个命令很强大,可以记录终端的所有输出到相应的文件中
  例子:
1.$ script
  Script. started, file is typescript
2.$ ls
  …… 内容省略
  3.$ exit
  exit
  Script. done, file is typescript
4. $cat typescript   #就会把上面绿色的部分再显示一次:

  说明:
  1,我们在启动script时没有指定文件名,它会自动记录到当前目录下一个名为 typescript的文件中。也可以用 -a参数 指定文件名
  例子:
$script. -a example.txt  #终端的输出内容被记录到 example.txt这个文件中
  2,退出script时,用exit,事实上script就是启动了一个shell

你可能感兴趣的:(安装rpm遇到cpio: Digest mismatch)