[Nexus] Problems installing NeXus on Linux
Akeroyd, Freddie (STFC,RAL,ISIS)
freddie.akeroyd at stfc.ac.uk
Wed Aug 12 10:12:40 BST 2009
Hi,
It looks like the HDF5 library changed its versioning system when hdf 1.8.0 came out - the rpm on the site is built against a previous version of hdf5 which is now incompatible.
To rebuild the rpm for your system you would just need to:
* Download the source rpm http://download.nexusformat.org/kits/rpm/nexus-4.2.0-0.src.rpm
* Type rpmbuild --rebuild nexus-4.2.0-0.src.rpm
I've now put a rebuilt x86_64 rpm up on http://download.nexusformat.org/kits/ (FC9 so it is linked against the 1.8 branch of hdf5) - I need to cross compile an i386 one so it will be up there a little later in the day
Regards,
Freddie
From: nexus-bounces at nexusformat.org [mailto:nexus-bounces at nexusformat.org] On Behalf Of Mark Rivers
Sent: 11 August 2009 19:08
To: nexus at nexusformat.org
Subject: [Nexus] Problems installing NeXus on Linux
Folks,
I am having problems installing NeXus on Linux. I have a Fedora Core 10 system. I followed the instructions on the NeXus site:
http://www.nexusformat.org/Download#NeXus_Binary_Distributions
I did the:
yum install hdf hdf-devel hdf5 hdf5-devel mxml mxml-devel
I then tried to install Nexus as directed but it fails:
corvette:~>sudo rpm -Uhv nexus-4.1.0-0.i386.rpm
[sudo] password for epics:
error: Failed dependencies:
libhdf5.so.0 is needed by nexus-4.1.0-0.i386
It cannot find libhdf5.so.0, which indeed does not exist. These are the hdf5 files and links in /usr/lib.
corvette:~>ls -l /usr/lib/libhdf5*
-rw-r--r-- 1 root root 3434232 Jun 5 2008 /usr/lib/libhdf5.a
lrwxrwxrwx 1 root root 16 Sep 4 2008 /usr/lib/libhdf5.so -> libhdf5.so.5.0.1
lrwxrwxrwx 1 root root 16 Sep 4 2008 /usr/lib/libhdf5.so.5 -> libhdf5.so.5.0.1
-rwxr-xr-x 1 root root 2487304 Jun 5 2008 /usr/lib/libhdf5.so.5.0.1
-rw-r--r-- 1 root root 572100 Jun 5 2008 /usr/lib/libhdf5_cpp.a
lrwxrwxrwx 1 root root 20 Sep 4 2008 /usr/lib/libhdf5_cpp.so -> libhdf5_cpp.so.0.0.0
lrwxrwxrwx 1 root root 20 Sep 4 2008 /usr/lib/libhdf5_cpp.so.0 -> libhdf5_cpp.so.0.0.0
-rwxr-xr-x 1 root root 400808 Jun 5 2008 /usr/lib/libhdf5_cpp.so.0.0.0
-rw-r--r-- 1 root root 267126 Jun 5 2008 /usr/lib/libhdf5_fortran.a
lrwxrwxrwx 1 root root 24 Sep 4 2008 /usr/lib/libhdf5_fortran.so -> libhdf5_fortran.so.0.0.0
lrwxrwxrwx 1 root root 24 Sep 4 2008 /usr/lib/libhdf5_fortran.so.0 -> libhdf5_fortran.so.0.0.0
-rwxr-xr-x 1 root root 223128 Jun 5 2008 /usr/lib/libhdf5_fortran.so.0.0.0
-rw-r--r-- 1 root root 138888 Jun 5 2008 /usr/lib/libhdf5_hl.a
lrwxrwxrwx 1 root root 19 Sep 4 2008 /usr/lib/libhdf5_hl.so -> libhdf5_hl.so.0.0.0
lrwxrwxrwx 1 root root 19 Sep 4 2008 /usr/lib/libhdf5_hl.so.0 -> libhdf5_hl.so.0.0.0
-rwxr-xr-x 1 root root 114968 Jun 5 2008 /usr/lib/libhdf5_hl.so.0.0.0
-rw-r--r-- 1 root root 6454 Jun 5 2008 /usr/lib/libhdf5_hl_cpp.a
lrwxrwxrwx 1 root root 23 Sep 4 2008 /usr/lib/libhdf5_hl_cpp.so -> libhdf5_hl_cpp.so.0.0.0
lrwxrwxrwx 1 root root 23 Sep 4 2008 /usr/lib/libhdf5_hl_cpp.so.0 -> libhdf5_hl_cpp.so.0.0.0
-rwxr-xr-x 1 root root 7492 Jun 5 2008 /usr/lib/libhdf5_hl_cpp.so.0.0.0
-rw-r--r-- 1 root root 56366 Jun 5 2008 /usr/lib/libhdf5hl_fortran.a
lrwxrwxrwx 1 root root 26 Sep 4 2008 /usr/lib/libhdf5hl_fortran.so -> libhdf5hl_fortran.so.0.0.0
lrwxrwxrwx 1 root root 26 Sep 4 2008 /usr/lib/libhdf5hl_fortran.so.0 -> libhdf5hl_fortran.so.0.0.0
-rwxr-xr-x 1 root root 51400 Jun 5 2008 /usr/lib/libhdf5hl_fortran.so.0.0.0
So I have libhdf5.so.5.0.1 as the actual file. Making a symbolic link to that file from libhdf5.so.0 does not help, same rpm error as above.
(I also installed hdf5-static and hdf-devel-static because I want those libraries too).
I forced rpm to install NeXus with the -nodeps to ignore the problem.
Once I do that I try to link my application, and I get a bunch of unresolved symbols. It looks like it could be an HDF5 version problem. One of the undefined symbols is H5Acreate. If I run "nm" on libNeXus.a I see that it has an undefined symbol H5Acreate:
corvette:1-5beta/ADApp/simDetectorSrc>nm ../../lib/linux-x86/libNeXus.a | grep H5Acreate
U H5Acreate
If I run nm on libhdf5.a I see that it defines some similar symbols, H5Acreate1, H5Acreate2, H5Acreate_by_name, but not H5Acreate.
corvette:1-5beta/ADApp/simDetectorSrc>nm /usr/lib/libhdf5.a | grep H5Acreate
00006990 T H5Acreate2
00006570 T H5Acreate_by_name
00000a90 T H5Acreate1
Any idea what the problem is?
Thanks,
Mark
--
Scanned by iCritical.
More information about the NeXus
mailing list