Depending on your operating system and the version of the compiler you are using, you might confront some known problems during the configuration ($ ./configure
), compilation ($ make
) and tests ($ make check
).
Here, their solutions are discussed.
$ ./configure
: Configure complains about not finding a library even though you have installed it.
The possible solution is based on how you installed the package:
$ ./configure LDFLAGS="-L/usr/local/lib"
If you want to use the libraries for your other programming projects, then export this environment variable in a start-up script similar to the case for LD_LIBRARY_PATH explained below, also see Installation directory.
$ make
: Complains about an unknown function on a non-GNU based operating system.
In this case, please run $ ./configure
with the --enable-gnulibcheck option to see if the problem is from the GNU Portability Library (Gnulib) not supporting your system or if there is a problem in Gnuastro, see Gnuastro configure options.
If the problem is not in Gnulib and after all its tests you get the same complaint from make
, then please contact us at bug-gnuastro@gnu.org.
The cause is probably that a function that we have used is not supported by your operating system and we did not included it along with the source tarball.
If the function is available in Gnulib, it can be fixed immediately.
$ make
: Cannot find the headers (.h files) of installed libraries.
Your C preprocessor (CPP) is not looking in the right place.
To fix this, configure Gnuastro with an additional CPPFLAGS
like below (assuming the library is installed in /usr/local/include:
$ ./configure CPPFLAGS="-I/usr/local/include"
If you want to use the libraries for your other programming projects, then export this environment variable in a start-up script similar to the case for LD_LIBRARY_PATH explained below, also see Installation directory.
$ make check
: Only the first couple of tests pass, all the rest fail or get skipped. It is highly likely that when searching for shared libraries, your system does not look into the /usr/local/lib directory (or wherever you installed Gnuastro or its dependencies).
To make sure it is added to the list of directories, add the following line to your ~/.bashrc file and restart your terminal.
Do not forget to change /usr/local/lib if the libraries are installed in other (non-standard) directories.
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
You can also add more directories by using a colon ‘:
’ to separate them.
See Installation directory and Linking to learn more on the PATH
variables and dynamic linking respectively.
$ make check
: The tests relying on external programs (for example, fitstopdf.sh fail.) This is probably due to the fact that the version number of the external programs is too old for the tests we have preformed.
Please update the program to a more recent version.
For example, to create a PDF image, you will need GPL Ghostscript, but older versions do not work, we have successfully tested it on version 9.15.
Older versions might cause a failure in the test result.
$ make pdf
: The PDF book cannot be made.
To make a PDF book, you need to have the GNU Texinfo program (like any program, the more recent the better).
A working TeX program is also necessary, which you can get from Tex Live103.
make check
: do not copy the programs’ executables to another (for example, the installation) directory manually (using cp
, or mv
for example).
In the default configuration104, the program binaries need to link with Gnuastro’s shared library which is also built and installed with the programs.
Therefore, to run successfully before and after installation, linking modifications need to be made by GNU Libtool at installation time.
make install
does this internally, but a simple copy might give linking errors when you run it.
If you need to copy the executables, you can do so after installation.
$ make
(when bootstrapping): After you have bootstrapped Gnuastro from the version-controlled source, you may confront the following (or a similar) error when converting images (for more on bootstrapping, see Bootstrapping):
convert: attempt to perform an operation not allowed by the
security policy `gs' error/delegate.c/ExternalDelegateCommand/378.
This error is a known issue105 with ImageMagick
security policies in some operating systems.
In short, imagemagick
uses Ghostscript for PDF, EPS, PS and XPS parsing.
However, because some security vulnerabilities have been found in Ghostscript106, by default, ImageMagick may be compiled without Ghostscript library.
In such cases, if allowed, ImageMagick will fall back to the external gs
command instead of the library.
But this may be disabled with the following (or a similar) lines in /etc/ImageMagick-7/policy.xml
(anything related to PDF, PS, or Ghostscript).
<policy domain="delegate" rights="none" pattern="gs" /> <policy domain="module" rights="none" pattern="{PS,PDF,XPS}" />
To fix this problem, simply comment such lines (by placing a <!--
before each statement/line and -->
at the end of that statement/line).
If your problem was not listed above, please file a bug report (Report a bug).
If you configure Gnuastro with the --disable-shared option, then the libraries will be statically linked to the programs and this problem will not exist, see Linking.
https://wiki.archlinux.org/title/ImageMagick
GNU Astronomy Utilities 0.23 manual, July 2024.