[Nexus] Problems installing NeXus on Linux

Pete R. Jemian prjemian at gmail.com
Tue Aug 11 20:30:11 BST 2009


I followed Mark's path, but on my Ubuntu 8.04LTS system.
(downloaded the nexus rpm, converted it to a .deb using "alien" and installed it)
and also installed the required libmxml package.
nxbrowse TOFRAW.nxs
indicated the same "could not find libhdf5.so.0" error.

[prjemian at morel,3016,test]$ nxbrowse TOFRAW.nxs
nxbrowse: error while loading shared libraries: libhdf5.so.0: cannot open shared object file: No such file or directory


I built all the NeXus components from scratch (2009-01-28) and it works.
Only the prebuilt NeXus cannot find libhdf5.so.0.
This is sensible since that is not on my system and it did not install
with the libhdf5 on the NeXus downloads page (http://www.nexusformat.org/Download).


[prjemian at morel,3008,log]$ locate libhdf5.so
/usr/local/lib/libhdf5.so
/usr/local/lib/libhdf5.so.6
/usr/local/lib/libhdf5.so.6.0.1
/usr/local/src/hdf/hdf5-1.8.2/src/.libs/libhdf5.so
/usr/local/src/hdf/hdf5-1.8.2/src/.libs/libhdf5.so.6
/usr/local/src/hdf/hdf5-1.8.2/src/.libs/libhdf5.so.6.0.1
[prjemian at morel,3009,log]$ ll /usr/local/lib/libhdf5*
-rw-r--r-- 1 root root 4.0M 2009-01-28 14:13 /usr/local/lib/libhdf5.a
-rw-r--r-- 1 root root 135K 2009-01-28 14:13 /usr/local/lib/libhdf5_hl.a
-rwxr-xr-x 1 root root  989 2009-01-28 14:13 /usr/local/lib/libhdf5_hl.la*
lrwxrwxrwx 1 root root   19 2009-01-28 14:13 /usr/local/lib/libhdf5_hl.so -> libhdf5_hl.so.0.0.0*
lrwxrwxrwx 1 root root   19 2009-01-28 14:13 /usr/local/lib/libhdf5_hl.so.0 -> libhdf5_hl.so.0.0.0*
-rwxr-xr-x 1 root root 128K 2009-01-28 14:13 /usr/local/lib/libhdf5_hl.so.0.0.0*
-rwxr-xr-x 1 root root  968 2009-01-28 14:13 /usr/local/lib/libhdf5.la*
-rw-r--r-- 1 root root 2.6K 2009-01-28 14:13 /usr/local/lib/libhdf5.settings
lrwxrwxrwx 1 root root   16 2009-01-28 14:13 /usr/local/lib/libhdf5.so -> libhdf5.so.6.0.1*
lrwxrwxrwx 1 root root   16 2009-01-28 14:13 /usr/local/lib/libhdf5.so.6 -> libhdf5.so.6.0.1*
-rwxr-xr-x 1 root root 3.0M 2009-01-28 14:13 /usr/local/lib/libhdf5.so.6.0.1*


[prjemian at morel,3017,test]$ ll /usr/lib/libhdf5*
lrwxrwxrwx 1 root root   22 2008-05-09 21:16 /usr/lib/libhdf5-1.6.5.so.0 -> libhdf5-1.6.5.so.0.0.0
-rw-r--r-- 1 root root 1.2M 2008-03-25 14:00 /usr/lib/libhdf5-1.6.5.so.0.0.0
lrwxrwxrwx 1 root root   26 2008-05-09 21:16 /usr/lib/libhdf5_cpp-1.6.5.so.0 -> libhdf5_cpp-1.6.5.so.0.0.0
-rw-r--r-- 1 root root 400K 2008-03-25 14:00 /usr/lib/libhdf5_cpp-1.6.5.so.0.0.0
lrwxrwxrwx 1 root root   25 2008-05-09 21:16 /usr/lib/libhdf5_hl-1.6.5.so.0 -> libhdf5_hl-1.6.5.so.0.0.0
-rw-r--r-- 1 root root  51K 2008-03-25 14:00 /usr/lib/libhdf5_hl-1.6.5.so.0.0.0

Mark Rivers wrote:
> 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
> 
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> NeXus mailing list
> NeXus at nexusformat.org
> http://lists.nexusformat.org/mailman/listinfo/nexus

-- 
----------------------------------------------------------
  Pete R. Jemian, Ph.D.                <jemian at anl.gov>
  Beam line Controls and Data Acquisition, Group Leader
  Advanced Photon Source,   Argonne National Laboratory
  Argonne, IL  60439                   630 - 252 - 3189
-----------------------------------------------------------
     Education is the one thing for which people
        are willing to pay yet not receive.
-----------------------------------------------------------


More information about the NeXus mailing list