расставляй правильно приоритеты и не отвлекайся на мелочи

Собираем GD под Linux

Эта статья относится к серии помоги себе сам, когда в первую очередь смысл ее написания сводится к тому, что-бы описать для себя любимого последовательность четких действий по достижению конкретной цели. Сегодняшняя цель — это установка графической библиотеки GD на Linux системе, использование которой широко применяется в таких инструментах как PHP, rrdtool и других различных приложений работающих с графикой, хотя насчет PHP разработчики настоятельно советуют пользоваться Bundled (встроенной в дистрибутив) версией GD, не знаю почему, но я всегда ставлю более свежие библиотеки и пока проблем с ними не имел.

Большая часть работы типична для обычной сборки продуктов из исходных кодов, но кое-где есть небольшие отклонения. Так-же при описании действий я принимаю во внимание то, что Вы знаете зачем существует такая полезная команда, как ldconfig.

Первым делом проверяем, что для динамической линковки у нас правильно прописаны пути к будущим shared библиотекам. Ищем в файле /etc/ld.so.conf строчку:

/usr/local/lib

Теперь поехали:

Первенцем ставим freetype http://www.freetype.org/

./configure; make; make install

ldconfig

ldconfig -p | grep libfree

libfreetype.so.6 (libc6) => /usr/local/lib/libfreetype.so.6

libfreetype.so (libc6) => /usr/local/lib/libfreetype.so

Ставим fontconfig http://fontconfig.org/release/

./configure; make; make install

ldconfig

ldconfig -p|grep libfontconfig

libfontconfig.so.1 (libc6) => /usr/local/lib/libfontconfig.so.1

libfontconfig.so.1 (libc6) => /usr/lib/libfontconfig.so.1

libfontconfig.so (libc6) => /usr/local/lib/libfontconfig.so

Ставим libpng http://www.libpng.org/pub/png/libpng.html

Копируем в корень из директории scripts makefile.linux и переименовываем его в makefile

make; make install

ldconfig

ldconfig -p | grep libpng

libpng12.so.0 (libc6) => /usr/local/lib/libpng12.so.0

libpng12.so (libc6) => /usr/local/lib/libpng12.so

libpng.so.3 (libc6) => /usr/local/lib/libpng.so.3

libpng.so (libc6) => /usr/local/lib/libpng.so

Ставим jpg http://libjpeg.sourceforge.net/

./configure; make; make install; make install-lib

ldconfig

ldconfig -p|grep jpeg

libjpeg.so.62 (libc6) => /usr/lib/libjpeg.so.62

Ставим Postscript Type 1 (T1lib) ftp://sunsite.unc.edu/pub/Linux/libs/graphics/

./configure; make without_doc; make install;

ldconfig

ldconfig -p|grep t1

libt1.so.5 (libc6) => /usr/local/lib/libt1.so.5

libt1.so (libc6) => /usr/local/lib/libt1.so

Ставим gd http://www.libgd.org/

./configure

Support for PNG library: yes

Support for JPEG library: yes

Support for Freetype 2.x library: yes

Support for Fontconfig library: yes

Support for Xpm library: no

Support for pthreads: yes

Заранее видим, что будет поддерживать GD, а чего нет. Нет X11 поэтому нет xpm (ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html), но оно мне и не нужно (если кто-то из Вас захочет поставить xpm Вам следует познакомиться с imake). Едем далее:

make; make install

ldconfig

ldconfig -p|grep libgd

libgd.so.2 (libc6) => /usr/local/lib/libgd.so.2

libgd.so (libc6) => /usr/local/lib/libgd.so

На этом месте все готово. Теперь, к примеру, можно привязать наши свежие библиотеки из GD к PHP, примерно вот так:

./configure … —with-gd=/usr/local —with-freetype-dir=/usr/local —with-t1lib=/usr/local …

Вызываем phpinfo() и в секции GD получаем такую замечательную картинку:

И напоследок еще несколько ссылок на полезные библиотеки:

TIFF ftp://ftp.remotesensing.org/pub/libtiff/

FreeType1 http://sourceforge.net/project/showfiles.php?group_id=3157&package_id=3068

LibArt http://www.levien.com/libart/

Ответить
Обязательные поля помечены *