Introduction to Ghostscript
Ghostscript is a versatile
processor for PostScript data with the ability to render PostScript
to different targets. It is a mandatory part of the cups printing
stack.
This package is known to build and work properly using an LFS 12.2
platform.
Package Information
Additional Downloads
If you wish, you can download additional fonts.
Ghostscript Dependencies
Recommended
Cups-2.4.10 (required for building the
“cups” device
backend, which is needed by cups-filters), Fontconfig-2.15.0 (required if you are
installing any of the suggested fonts), FreeType-2.13.3, Little
CMS-2.16, libjpeg-turbo-3.0.1, libpng-1.6.43, libtiff-4.6.0,
and OpenJPEG-2.5.2
Optional
Cairo-1.18.0, GTK+-3.24.43, libidn-1.42, libpaper-2.2.5, libwebp-1.4.0,
and a graphical
environment
Installation of Ghostscript
Note
The Ghostscript build system is
not user-friendly. In order to use system copies of various
graphics libraries, you must do it using unconventional methods.
Ghostscript includes (old) copies
of several libraries. Some of these seem to have been patched to
fix known vulnerabilities, but others of these copies are less-well
maintained. To ensure that any future fixes are applied throughout
the whole system, it is recommended that you first install the
released versions of these libraries and then configure
Ghostscript to link to them.
If you have installed the recommended dependencies on your system,
remove the copies of freetype,
lcms2, libjpeg, libpng, and openjpeg:
rm -rf freetype lcms2mt jpeg libpng openjpeg
Fix building this package with gcc-14 and libidn:
sed -e '186 s/NewPassword =/*NewPassword =/' \
-e '187 s/NewLen =/*NewLen =/' \
-i pdf/pdf_sec.c
Compile Ghostscript:
rm -rf zlib &&
./configure --prefix=/usr \
--disable-compile-inits \
--with-system-libtiff &&
make
To compile the shared library libgs.so
, run the following additional command as
an unprivileged user:
make so
This package does not come with a test suite. A set of example
files may be used for testing, but it is only possible after
installation of the package.
Now, as the root
user:
make install
If you built the shared library, install it with:
make soinstall &&
install -v -m644 base/*.h /usr/include/ghostscript &&
ln -sfvn ghostscript /usr/include/ps
Now make the documentation accessible from a standard place:
mv -v /usr/share/doc/ghostscript/10.03.1 /usr/share/doc/ghostscript-10.03.1 &&
rmdir /usr/share/doc/ghostscript &&
cp -r examples/ -T /usr/share/ghostscript/10.03.1/examples
If you have downloaded the fonts, unpack them to /usr/share/ghostscript
and ensure the ownership
of the files are root
: root
.
tar -xvf ../ghostscript-fonts-std-8.11.tar.gz -C /usr/share/ghostscript --no-same-owner &&
tar -xvf ../gnu-gs-fonts-other-6.0.tar.gz -C /usr/share/ghostscript --no-same-owner &&
fc-cache -v /usr/share/ghostscript/fonts/
You can now test the rendering of various postscript and pdf files
from the /usr/share/ghostscript/10.03.1/examples
. To do
this, run the following command (in a X11 session):
gs -q -dBATCH /usr/share/ghostscript/10.03.1/examples/tiger.eps
Command Explanations
rm -rf zlib :
zlib was installed as part of LFS.
--disable-compile-inits
:
This option makes gs
and libgs.so
slightly smaller.
--with-system-libtiff
:
Remove this option if you've not installed libtiff-4.6.0.
install -v -m644
base/*.h... : Some packages (ImageMagick is one) need the Ghostscript interface headers in place to link
to the shared library. These commands install the headers.
ln -sfvn ghostscript
/usr/include/ps: Some packages expect to find the
interface headers in an alternate location.
mv -v
/usr/share/doc/ghostscript/10.03.1
/usr/share/doc/ghostscript-10.03.1: This moves the
documentation to where it is expected to be found.
--disable-cups
: This option will save a
tiny amount of space by not linking gs and libgs.so
to the Cups-2.4.10 libraries if you have installed
those.
Contents
Installed Programs:
dvipdf, eps2eps, gs, gsbj, gsc (from
soinstall), gsdj, gsdj500, gslj, gslp, gsnd, gsx (from
soinstall), lprsetup.sh, pdf2dsc, pdf2ps, pf2afm, pfbtopfa,
pphs, printafm, ps2ascii, ps2epsi, ps2pdf, ps2pdf12, ps2pdf13,
ps2pdf14, ps2pdfwr, ps2ps, ps2ps2, and unix-lpr.sh
Installed Library:
libgs.so
Installed Directories:
/usr/include/ghostscript,
/usr/share/ghostscript, and
/usr/share/doc/ghostscript-10.03.1
Short Descriptions
gs
|
is an interpreter for Adobe Systems' PostScript(tm) and
Portable Document Format (PDF)
|
libgs.so
|
provides Ghostscript
functionality to other programs, such as GSView, ImageMagick, and libspectre
|
Ghostscript provides many
different scripts used to convert PostScript, PDF, and other
formats. Please refer to the HTML documentation or the man pages
for information about the capabilities provided.