Hi Dave and Martin,
It says "insert the locations of the HDF5, NetCDF, and readline directories, and java". How do I figure out what those paths are and whether or not I have the correct software installed yet?
What operating system are you working on?
Ubuntu.
Most OSes have standard or popular packaging systems.
Too bad there is none for ferret. Yeah, I have installed netcdf as a package.
ncl-ncarg is already the newest version (6.3.0-6build1).
nco is already the newest version (4.5.4-1build1).
netcdf-bin is already the newest version (1:4.4.0-2).
But that doesn't tell me where the HDF5, NetCDF, and readline directories, and java are. Packages can put libraries in various places, which file or directory am I looking for in each case?
And which package should I install for HDF5? apt search HDF5 returns a million hits. I am installing
h5utils/xenial 1.12.1-4 amd64
hdf5-helpers/xenial-updates,xenial-security 1.8.16+docs-4ubuntu1.1 amd64
hdf5-tools/xenial-updates,xenial-security 1.8.16+docs-4ubuntu1.1 amd64
hdfview/xenial 2.9-5 amd64
But which filename shall I search for? Ah libhdf5*
Hi Dave,
there are several options:
- if the machine you are working on is your PC, this is mostly /usr/local/bin and /usr/local /lib or /usr/local/lib64. The include files are in /usr/local/include. To check this, just issue
> which ncdump
# which ncdump
/usr/bin/ncdump
This shows you the path to ncdump. The case this is /usr/local/bin just issue
> ls /usr/local/lib/libnetcdf*
# ls /usr/lib/libnet*
/usr/lib/libnetpbm.so.10 /usr/lib/libnetpbm.so.10.0
root@:~# ls /usr/local/lib/libnet*
ls: cannot access '/usr/local/lib/libnet*': No such file or directory
root@:~# ls /usr/local/bin/libnet*
ls: cannot access '/usr/local/bin/libnet*': No such file or directory
root@:~# ls /usr/local/libnet*
ls: cannot access '/usr/local/libnet*': No such file or directory
root@:~# ls /usr/local/lib/libnet*
ls: cannot access '/usr/local/lib/libnet*': No such file or directory
root@:~# ls /usr/local/lib64/libnet*
ls: cannot access '/usr/local/lib64/libnet*': No such file or directory
So I tried Ryo's idea:
# find /usr -iname '*libnetcdf*'
/usr/lib/x86_64-linux-gnu/libnetcdf_c++.so.4
/usr/lib/x86_64-linux-gnu/libnetcdf.so.11.0.0
/usr/lib/x86_64-linux-gnu/libnetcdf.so.11
/usr/lib/x86_64-linux-gnu/libnetcdf_c++.so.4.2.0
So that means /usr/lib/x86_64-linux-gnu is the value I put for NetCDF.
to see the location of the netcdf-library. If you used some system installers they may be in /usr/bin, /usr/lib and so on.
The same applies for hdf5.
Search for libhdf5? Yeah, that worked:
root@:~# find /usr -iname '*libhdf5*'
/usr/lib/x86_64-linux-gnu/libhdf5_serial.so.10
/usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.10.0.2
/usr/lib/x86_64-linux-gnu/libhdf5_serial_fortran.so.10.0.2
/usr/lib/x86_64-linux-gnu/libhdf5_serial_fortran.so.10
/usr/lib/x86_64-linux-gnu/libhdf5_serialhl_fortran.so.10
/usr/lib/x86_64-linux-gnu/libhdf5_serial.so.10.1.0
/usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.10
/usr/lib/x86_64-linux-gnu/libhdf5_serialhl_fortran.so.10.0.2
- if the machine you are working on is a server, just look at the same place first. Otherwise ask the system administrator
Blush. I am the system administrator. But I don't know a thing about ferret, netcdf, etc. I always use packages, almost never compile anything.
root@:~# ls /usr/lib/x86_64-linux-gnu/libsz*
/usr/lib/x86_64-linux-gnu/libsz.so.2 /usr/lib/x86_64-linux-gnu/libsz.so.2.0.1
root@:~# ls /usr/lib/x86_64-linux-gnu/libread*
/usr/lib/x86_64-linux-gnu/libreadline.a /usr/lib/x86_64-linux-gnu/libreadline.so
Looks like /usr/lib/x86_64-linux-gnu is the answer in all cases.
Thanks!
Dave