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 Live110.
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 configuration111, 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 issue112 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 Ghostscript113, 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).
$ make dist: Complains about "Numeric user ID too large" and aborts. This is a problem related to the way that GNU Automake calls GNU Tar on some operating systems.
For more information see bug 65578114.
Until this bug is fixed, you can build the tarball by following the steps below:
## Generate the build directory; ready to be packaged. $ ./developer-build -a -c -d -C ## Go to the build directory: $ cd build
Open and edit the Makefile to add --format=posix to the definition of the am__tar.
So, the line
am__tar = $${TAR-tar} chof - "$$tardir"
becomes
am__tar = $${TAR-tar} --format=posix chof - "$$tardir"
Finally, create the tarball:
$ make dist
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
https://security.archlinux.org/package/ghostscript
GNU Astronomy Utilities 0.24 manual, November 2025.