[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug-gnuastro] Bug report with make check during installation
From: |
Mohammad Akhlaghi |
Subject: |
Re: [bug-gnuastro] Bug report with make check during installation |
Date: |
Tue, 1 May 2018 14:33:53 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 |
Dear Lars,
Thank you very much for the report and also sending the corresponding
`test-suite.log' file. It clearly shows the problem.
The good news is that this isn't a bug, just an installation
technicality :-): you need to tell the dynamic linker, where it can find
the WCSLIB that is installed on your system. You can do this, by running
the following command (after correcting `/path/to/wcslib' to the proper
location on your system) before running `make check':
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/wcslib
The fact that there were no complaints about other libraries, suggests
that probably WCSLIB is installed in a different place compared to the
rest of the dependencies.
To make this modification permanent in all future terminal instances,
you can add the command above (without the `$') to your `~/.bashrc'
startup file. This is also generically discussed in the "Known issues"
section of the book (the first discussion of `make check' errors):
https://www.gnu.org/software/gnuastro/manual/html_node/Known-issues.html
This should fix the problem.
After no `make check' tests fail and you install Gnuastro, I recommend
going through this tutorial to get a good feeling of all the basic tools
that are available to you, culminating in proper usage of NoiseChisel):
https://www.gnu.org/software/gnuastro/manual/html_node/General-program-usage-tutorial.html
Here is a more complete explanation on the solution above:
All the failed tests complain about not finding the WCSLIB
(`libwcs.so.5'). Here is one of them:
/home/lars/thesis/gnuastro-0.5/bin/mkprof/.libs/lt-astmkprof: error
while loading shared libraries: libwcs.so.5: cannot open shared object
file: No such file or directory
You were able to configure and build Gnuastro (when you ran
`./configure' and `make -j8'). Therefore the compiler was able to locate
WCSLIB when it was building the programs.
It is the dynamic linker that isn't able to find WCSLIB. The dynamic
linker is invoked every time a program using dynamic/shared libraries is
executed. The dynamic linker looks in paths specified in the
`LD_LIBRARY_PATH' environment variable.
This is a thorny issue when dealing with dependencies, and I personally
struggled a lot with it in my early days of moving to the free software
world (after all, I am an astronomer, not a software engineer). So in
the Gnuastro book, I have tried to explain them thoroughly.
To learn more about linking (and the differences between dynamic and
static linking), you can see this page:
https://www.gnu.org/software/gnuastro/manual/html_node/Linking.html
To learn more about the installation directory and how the `*PATH'
environment variables are used, please see this page:
https://www.gnu.org/software/gnuastro/manual/html_node/Installation-directory.html
After installing Gnuastro, you can also see these pages (and the whole
Gnuastro book) on your command line (without needing an internet
connection or taking your hands off the keyboard). Just run these
commands (or just `info gnuastro' to start from the start of the book):
$ info gnuastro linking
$ info gnuastro "Installation directory"
Please don't hesitate to keep in touch regarding your thoughts on the
programs and suggestions to improve it for future versions. To be
informed of future versions, you can subscribe to this mailing list:
https://lists.gnu.org/mailman/listinfo/info-gnuastro
Cheers,
Mohammad