До сиx пор ищешь правду и смысл жизни? Может ты пропустил основы: помогать, сострадать и любить?

Собираем 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 получаем такую замечательную картинку:

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

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