操作
機能 #17
完了HDF5 1.8.13をCentOS 6でRPM化
開始日:
2014/08/09
期日:
進捗率:
100%
予定工数:
説明
http://www.hdfgroup.org/HDF5/
のHDF5ライブラリをCentOS 6用にRPM化する。
epelリポジトリにおいてhdf5-1.8.5が提供されているが、NetCDF 4.3.2が要求するバージョン1.8.8に満たず、netcdfのテストでエラーとなる項目があるため、最新版をRPM化する。
高橋 徹 さんがほぼ11年前に更新
- ステータス を 新規 から 解決 に変更
- 進捗率 を 0 から 80 に変更
HDF5のサイトを辿っていくと、なんとCentOS 6用のRPMが用意されていました。
http://www.hdfgroup.org/HDF5/release/rpms.html
~$ sudo rpm -Uvh hdf5-1.8.13-1.with.szip.encoder.el6.x86_64.rpm 準備中... ########################################### [100%] 1:hdf5 ########################################### [100%] Running /sbin/ldconfig Update the following tools because they are now installed at a new directory h5cc: current setting="/usr" new setting="/usr" h5fc: current setting="/usr" new setting="/usr" h5c++: current setting="/usr" new setting="/usr" Update h5cc ... Update h5fc ... Update h5c++ ... Update h5cc ... H5BLD_LDFLAGS=" " Update h5fc ... H5BLD_LDFLAGS=" " Update h5c++ ... H5BLD_LDFLAGS=" " ~$
インストールされたファイル一覧
~$ rpm -ql hdf5 /usr/bin/gif2h5 /usr/bin/h52gif /usr/bin/h5c++ /usr/bin/h5cc /usr/bin/h5copy /usr/bin/h5debug /usr/bin/h5diff /usr/bin/h5dump /usr/bin/h5fc /usr/bin/h5import /usr/bin/h5jam /usr/bin/h5ls /usr/bin/h5mkgrp /usr/bin/h5perf_serial /usr/bin/h5redeploy /usr/bin/h5repack /usr/bin/h5repart /usr/bin/h5stat /usr/bin/h5unjam /usr/include/H5ACpublic.h /usr/include/H5AbstractDs.h /usr/include/H5Apublic.h /usr/include/H5ArrayType.h /usr/include/H5AtomType.h /usr/include/H5Attribute.h /usr/include/H5Classes.h /usr/include/H5CommonFG.h /usr/include/H5CompType.h /usr/include/H5Cpp.h /usr/include/H5CppDoc.h /usr/include/H5Cpublic.h /usr/include/H5DOpublic.h /usr/include/H5DSpublic.h /usr/include/H5DataSet.h /usr/include/H5DataSpace.h /usr/include/H5DataType.h /usr/include/H5DcreatProp.h /usr/include/H5Dpublic.h /usr/include/H5DxferProp.h /usr/include/H5EnumType.h /usr/include/H5Epubgen.h /usr/include/H5Epublic.h /usr/include/H5Exception.h /usr/include/H5FDcore.h /usr/include/H5FDdirect.h /usr/include/H5FDfamily.h /usr/include/H5FDlog.h /usr/include/H5FDmpi.h /usr/include/H5FDmpio.h /usr/include/H5FDmulti.h /usr/include/H5FDpublic.h /usr/include/H5FDsec2.h /usr/include/H5FDstdio.h /usr/include/H5FaccProp.h /usr/include/H5FcreatProp.h /usr/include/H5File.h /usr/include/H5FloatType.h /usr/include/H5Fpublic.h /usr/include/H5Gpublic.h /usr/include/H5Group.h /usr/include/H5IMpublic.h /usr/include/H5IdComponent.h /usr/include/H5Include.h /usr/include/H5IntType.h /usr/include/H5Ipublic.h /usr/include/H5LTpublic.h /usr/include/H5Library.h /usr/include/H5Location.h /usr/include/H5Lpublic.h /usr/include/H5MMpublic.h /usr/include/H5Object.h /usr/include/H5Opublic.h /usr/include/H5PLextern.h /usr/include/H5PTpublic.h /usr/include/H5PacketTable.h /usr/include/H5Ppublic.h /usr/include/H5PredType.h /usr/include/H5PropList.h /usr/include/H5Rpublic.h /usr/include/H5Spublic.h /usr/include/H5StrType.h /usr/include/H5TBpublic.h /usr/include/H5Tpublic.h /usr/include/H5VarLenType.h /usr/include/H5Zpublic.h /usr/include/H5api_adpt.h /usr/include/H5f90i.h /usr/include/H5f90i_gen.h /usr/include/H5overflow.h /usr/include/H5pubconf.h /usr/include/H5public.h /usr/include/H5version.h /usr/include/h5_dble_interface.mod /usr/include/h5a.mod /usr/include/h5a_provisional.mod /usr/include/h5d.mod /usr/include/h5d_provisional.mod /usr/include/h5ds.mod /usr/include/h5e.mod /usr/include/h5e_provisional.mod /usr/include/h5f.mod /usr/include/h5f_provisional.mod /usr/include/h5fortran_types.mod /usr/include/h5g.mod /usr/include/h5global.mod /usr/include/h5i.mod /usr/include/h5im.mod /usr/include/h5l.mod /usr/include/h5l_provisional.mod /usr/include/h5lib.mod /usr/include/h5lib_provisional.mod /usr/include/h5lt.mod /usr/include/h5o.mod /usr/include/h5o_provisional.mod /usr/include/h5p.mod /usr/include/h5p_provisional.mod /usr/include/h5r.mod /usr/include/h5r_provisional.mod /usr/include/h5s.mod /usr/include/h5t.mod /usr/include/h5t_provisional.mod /usr/include/h5tb.mod /usr/include/h5test_kind_sizeof_mod.mod /usr/include/h5z.mod /usr/include/hdf5.h /usr/include/hdf5.mod /usr/include/hdf5_hl.h /usr/include/ricehdf.h /usr/include/szip_adpt.h /usr/include/szlib.h /usr/lib64/libhdf5.a /usr/lib64/libhdf5.la /usr/lib64/libhdf5.settings /usr/lib64/libhdf5.so /usr/lib64/libhdf5.so.8 /usr/lib64/libhdf5.so.8.0.2 /usr/lib64/libhdf5_cpp.a /usr/lib64/libhdf5_cpp.la /usr/lib64/libhdf5_cpp.so /usr/lib64/libhdf5_cpp.so.8 /usr/lib64/libhdf5_cpp.so.8.0.2 /usr/lib64/libhdf5_fortran.a /usr/lib64/libhdf5_fortran.la /usr/lib64/libhdf5_fortran.so /usr/lib64/libhdf5_fortran.so.8 /usr/lib64/libhdf5_fortran.so.8.0.2 /usr/lib64/libhdf5_hl.a /usr/lib64/libhdf5_hl.la /usr/lib64/libhdf5_hl.so /usr/lib64/libhdf5_hl.so.8 /usr/lib64/libhdf5_hl.so.8.0.2 /usr/lib64/libhdf5_hl_cpp.a /usr/lib64/libhdf5_hl_cpp.la /usr/lib64/libhdf5_hl_cpp.so /usr/lib64/libhdf5_hl_cpp.so.8 /usr/lib64/libhdf5_hl_cpp.so.8.0.2 /usr/lib64/libhdf5hl_fortran.a /usr/lib64/libhdf5hl_fortran.la /usr/lib64/libhdf5hl_fortran.so /usr/lib64/libhdf5hl_fortran.so.8 /usr/lib64/libhdf5hl_fortran.so.8.0.2 /usr/lib64/libsz.a /usr/lib64/libsz.la /usr/lib64/libsz.so /usr/lib64/libsz.so.2 /usr/lib64/libsz.so.2.0.0 /usr/share/doc/hdf5-1.8.13 /usr/share/doc/hdf5-1.8.13/COPYING /usr/share/doc/hdf5-1.8.13/RELEASE.txt /usr/share/hdf5_examples /usr/share/hdf5_examples/README /usr/share/hdf5_examples/c++/chunks.cpp /usr/share/hdf5_examples/c++/compound.cpp /usr/share/hdf5_examples/c++/create.cpp /usr/share/hdf5_examples/c++/extend_ds.cpp /usr/share/hdf5_examples/c++/h5group.cpp /usr/share/hdf5_examples/c++/h5tutr_cmprss.cpp /usr/share/hdf5_examples/c++/h5tutr_crtatt.cpp /usr/share/hdf5_examples/c++/h5tutr_crtdat.cpp /usr/share/hdf5_examples/c++/h5tutr_crtgrp.cpp /usr/share/hdf5_examples/c++/h5tutr_crtgrpar.cpp /usr/share/hdf5_examples/c++/h5tutr_crtgrpd.cpp /usr/share/hdf5_examples/c++/h5tutr_extend.cpp /usr/share/hdf5_examples/c++/h5tutr_rdwt.cpp /usr/share/hdf5_examples/c++/h5tutr_subset.cpp /usr/share/hdf5_examples/c++/readdata.cpp /usr/share/hdf5_examples/c++/run-c++-ex.sh /usr/share/hdf5_examples/c++/writedata.cpp /usr/share/hdf5_examples/c/h5_attribute.c /usr/share/hdf5_examples/c/h5_chunk_read.c /usr/share/hdf5_examples/c/h5_cmprss.c /usr/share/hdf5_examples/c/h5_compound.c /usr/share/hdf5_examples/c/h5_crtatt.c /usr/share/hdf5_examples/c/h5_crtdat.c /usr/share/hdf5_examples/c/h5_crtgrp.c /usr/share/hdf5_examples/c/h5_crtgrpar.c /usr/share/hdf5_examples/c/h5_crtgrpd.c /usr/share/hdf5_examples/c/h5_drivers.c /usr/share/hdf5_examples/c/h5_elink_unix2win.c /usr/share/hdf5_examples/c/h5_extend.c /usr/share/hdf5_examples/c/h5_extend_write.c /usr/share/hdf5_examples/c/h5_extlink.c /usr/share/hdf5_examples/c/h5_group.c /usr/share/hdf5_examples/c/h5_mount.c /usr/share/hdf5_examples/c/h5_rdwt.c /usr/share/hdf5_examples/c/h5_read.c /usr/share/hdf5_examples/c/h5_ref2reg.c /usr/share/hdf5_examples/c/h5_reference.c /usr/share/hdf5_examples/c/h5_select.c /usr/share/hdf5_examples/c/h5_shared_mesg.c /usr/share/hdf5_examples/c/h5_subset.c /usr/share/hdf5_examples/c/h5_write.c /usr/share/hdf5_examples/c/ph5example.c /usr/share/hdf5_examples/c/run-c-ex.sh /usr/share/hdf5_examples/fortran/compound.f90 /usr/share/hdf5_examples/fortran/h5_cmprss.f90 /usr/share/hdf5_examples/fortran/h5_crtatt.f90 /usr/share/hdf5_examples/fortran/h5_crtdat.f90 /usr/share/hdf5_examples/fortran/h5_crtgrp.f90 /usr/share/hdf5_examples/fortran/h5_crtgrpar.f90 /usr/share/hdf5_examples/fortran/h5_crtgrpd.f90 /usr/share/hdf5_examples/fortran/h5_extend.f90 /usr/share/hdf5_examples/fortran/h5_rdwt.f90 /usr/share/hdf5_examples/fortran/h5_subset.f90 /usr/share/hdf5_examples/fortran/hyperslab.f90 /usr/share/hdf5_examples/fortran/mountexample.f90 /usr/share/hdf5_examples/fortran/ph5example.f90 /usr/share/hdf5_examples/fortran/refobjexample.f90 /usr/share/hdf5_examples/fortran/refregexample.f90 /usr/share/hdf5_examples/fortran/run-fortran-ex.sh /usr/share/hdf5_examples/fortran/selectele.f90 /usr/share/hdf5_examples/hl/c++/ptExampleFL.cpp /usr/share/hdf5_examples/hl/c++/run-hlc++-ex.sh /usr/share/hdf5_examples/hl/c/ex_ds1.c /usr/share/hdf5_examples/hl/c/ex_image1.c /usr/share/hdf5_examples/hl/c/ex_image2.c /usr/share/hdf5_examples/hl/c/ex_lite1.c /usr/share/hdf5_examples/hl/c/ex_lite2.c /usr/share/hdf5_examples/hl/c/ex_lite3.c /usr/share/hdf5_examples/hl/c/ex_table_01.c /usr/share/hdf5_examples/hl/c/ex_table_02.c /usr/share/hdf5_examples/hl/c/ex_table_03.c /usr/share/hdf5_examples/hl/c/ex_table_04.c /usr/share/hdf5_examples/hl/c/ex_table_05.c /usr/share/hdf5_examples/hl/c/ex_table_06.c /usr/share/hdf5_examples/hl/c/ex_table_07.c /usr/share/hdf5_examples/hl/c/ex_table_08.c /usr/share/hdf5_examples/hl/c/ex_table_09.c /usr/share/hdf5_examples/hl/c/ex_table_10.c /usr/share/hdf5_examples/hl/c/ex_table_11.c /usr/share/hdf5_examples/hl/c/ex_table_12.c /usr/share/hdf5_examples/hl/c/image24pixel.txt /usr/share/hdf5_examples/hl/c/image8.txt /usr/share/hdf5_examples/hl/c/pal_rgb.h /usr/share/hdf5_examples/hl/c/ptExampleFL.c /usr/share/hdf5_examples/hl/c/run-hlc-ex.sh /usr/share/hdf5_examples/hl/fortran/ex_ds1.f90 /usr/share/hdf5_examples/hl/fortran/exlite.f90 /usr/share/hdf5_examples/hl/fortran/run-hlfortran-ex.sh /usr/share/hdf5_examples/hl/run-hl-ex.sh /usr/share/hdf5_examples/run-al
ということで、RPMを公式サイトから入手することができ、課題解決できてしまいました。
高橋 徹 さんがほぼ11年前に更新
epelのhdf5-1.8.5.patch1-7との違い
次の違いがあるため、epelのhdf5-1.8.5に依存するパッケージがあると単純な差し替えは難しそうです。
epelのhdf5-1.8.5.patch1-7 | hdf5-1.8.13-1 |
libhdf5.so.6 | libhdf5.so.8 |
libhdf5_cpp.so.6 | libhdf5_cpp.8 |
libhdf5_fortran.so.6 | libhdf5_fortran.so.8 |
libhdf5_hl.so.6 | libhdf5_hl.so.8 |
libhdf5_hl_cpp.so.6 | libhdf5_hl_cpp.so.8 |
libhdf5_hl_fortran.so.6 | libhdf5_hl_fortran.so.8 |
epelのlibhdf5に依存するパッケージは、sonameでlibhdf5.so.6までを参照します。
例)
$ ldd /usr/bin/gdal_grid | grep hdf5 libhdf5.so.6 => /usr/lib64/libhdf5.so.6 (0x00007f68a8c0f000) libhdf5_hl.so.6 => /usr/lib64/libhdf5_hl.so.6 (0x00007f68a3346000)
そこで、hdf5-1.8.13のインストール先をデフォルトの/usrではなく、/opt/localに変更します。
$ sudo rpm -ivh --prefix=/opt/local hdf5-1.8.13-1.with.szip.encoder.el6.x86_64.rpm
途中警告が発生しました
Update h5cc ... ./h5redeploy: line 211: ed: コマンドが見つかりません
edコマンドを使うようですが、検証マシンにはedがインストールされてませんでした。
$ sudo yum install ed
これで、epelリポジトリのhdf5-1.8.5.patch1-7と、hdf5-1.8.13-1.with.szip.encoderとが共存できます。
$ rpm -qa|grep hdf5 hdf5-1.8.5.patch1-7.el6.x86_64 hdf5-static-1.8.5.patch1-7.el6.x86_64 hdf5-devel-1.8.5.patch1-7.el6.x86_64 hdf5-1.8.13-1.with.szip.encoder.el6.x86_64
操作