RedHat系统安装hdf5-openmpi-devel依赖问题求助
问题:本地安装hdf5-openmpi-devel RPM时的依赖报错问题
我需要安装能提供hdf5.h的软件包,但该包在RedHat官方仓库里找不到。于是从rpmfind.net下载了hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686.rpm,尝试用yum本地安装时,系统提示缺少多个依赖文件,但这些文件明明已经存在于系统中,不知道该怎么解决?
测试1:yum安装时的报错输出
# yum install /shared/hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686.rpm Loaded plugins: product-id, rhnplugin, security, subscription-manager This system is receiving updates from RHN Classic or RHN Satellite. Setting up Install Process Examining /shared/hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686.rpm: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 Marking /shared/hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686.rpm to be installed Resolving Dependencies ---> Running transaction check ---> Package hdf5-openmpi-devel.i686 0:1.8.5.patch1-10.el6 will be installed ---> Processing Dependency: hdf5-openmpi(x86-32) = 1.8.5.patch1-10.el6 for package: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 ---> Processing Dependency: libhdf5.so.6 for package: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 ---> Processing Dependency: libhdf5_fortran.so.6 for package: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 ---> Processing Dependency: libhdf5_hl.so.6 for package: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 ---> Processing Dependency: libhdf5hl_fortran.so.6 for package: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 ---> Finished Dependency Resolution Error: Package: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 (/hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686) Requires: libhdf5.so.6 Error: Package: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 (/hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686) Requires: hdf5-openmpi(x86-32) = 1.8.5.patch1-10.el6 Error: Package: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 (/hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686) Requires: libhdf5_fortran.so.6 Error: Package: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 (/hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686) Requires: libhdf5_hl.so.6 Error: Package: hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686 (/hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686) Requires: libhdf5hl_fortran.so.6 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
测试2:系统已安装的hdf5包文件列表
$ repoquery -l --installed hdf5 /usr/bin/gif2h5 /usr/bin/h52gif /usr/bin/h5copy /usr/bin/h5debug /usr/bin/h5diff /usr/bin/h5dump /usr/bin/h5import /usr/bin/h5jam /usr/bin/h5ls /usr/bin/h5mkgrp /usr/bin/h5perf_serial /usr/bin/h5repack /usr/bin/h5repart /usr/bin/h5stat /usr/bin/h5unjam /usr/lib64/libhdf5.so.6 /usr/lib64/libhdf5.so.6.0.4 /usr/lib64/libhdf5_cpp.so.6 /usr/lib64/libhdf5_cpp.so.6.0.4 /usr/lib64/libhdf5_fortran.so.6 /usr/lib64/libhdf5_fortran.so.6.0.4 /usr/lib64/libhdf5_hl.so.6 /usr/lib64/libhdf5_hl.so.6.0.4 /usr/lib64/libhdf5_hl_cpp.so.6 /usr/lib64/libhdf5_hl_cpp.so.6.0.4 /usr/lib64/libhdf5hl_fortran.so.6 /usr/lib64/libhdf5hl_fortran.so.6.0.4 /usr/share/doc/hdf5-1.8.5.patch1 /usr/share/doc/hdf5-1.8.5.patch1/COPYING /usr/share/doc/hdf5-1.8.5.patch1/HISTORY-1_0-1_8_0_rc3.txt /usr/share/doc/hdf5-1.8.5.patch1/HISTORY-1_8.txt /usr/share/doc/hdf5-1.8.5.patch1/MANIFEST /usr/share/doc/hdf5-1.8.5.patch1/README.txt /usr/share/doc/hdf5-1.8.5.patch1/RELEASE.txt
解决方案
核心原因:架构不匹配
你下载的是**32位(i686)**的hdf5-openmpi-devel包,但你的系统是64位的——从测试2里的文件路径/usr/lib64/就能看出来(64位系统的库文件默认存在lib64目录,32位则在lib目录)。yum会严格检查依赖包的架构一致性,所以32位的devel包会去找32位的libhdf5.so.6等库,但你的系统里只有64位版本,因此报错。
具体解决步骤
下载对应架构的RPM包
去rpmfind.net搜索并下载x86_64架构的两个包:hdf5-openmpi-1.8.5.patch1-10.el6.x86_64.rpm(主包,满足hdf5-openmpi(x86-64)=1.8.5.patch1-10.el6的依赖)hdf5-openmpi-devel-1.8.5.patch1-10.el6.x86_64.rpm(对应的64位开发包)
按顺序安装包
先安装主包,再安装开发包,用yum自动处理依赖:yum install /shared/hdf5-openmpi-1.8.5.patch1-10.el6.x86_64.rpm yum install /shared/hdf5-openmpi-devel-1.8.5.patch1-10.el6.x86_64.rpm应急方案(不推荐)
如果实在找不到对应架构的包,可强制忽略依赖安装,但可能导致库冲突或编译问题:rpm -ivh --nodeps /shared/hdf5-openmpi-devel-1.8.5.patch1-10.el6.i686.rpm这种情况下,后续编译程序时需要手动指定32位库的路径,风险较高,优先推荐架构匹配的包。
内容的提问来源于stack exchange,提问作者sancho.s ReinstateMonicaCellio
相关产品推荐
相关产品推荐

