Установка нескольких подверсий Gtk2 для компиляции Gimp из SVN
Здравствуйте. Возникла необходимость установить Gimp из SVN. В дистрибутиве fedora 16 последняя версия Gimp — 2.6.12, а мне необходима 2.8 (RC). Чтобы ее собрать, мне пришлось скомпилировать и установить в ~/.local тулкит Gtk2 версии 2.24.10 (в федоре последняя версия — 2.24.8). Ну и попутно пришлось собрать несколько других библиотек, например, gegl и babl (в федоре они также более ранней версии). Собственно, я пытаюсь сконфигурировать Gimp таким образом:
#!/bin/bash
export BABL_CFLAGS="-I/home/user/.local/include/babl-0.1"
export BABL_LIBS="-L/home/user/.local/lib -lbabl-0.1 -lm"
export GEGL_CFLAGS="-I/home/user/.local/include/gegl-0.2"
export GEGL_LIBS="-L/home/user/.local/lib -lgegl-0.2"
export GTK_CFLAGS="-I/home/user/.local/include/gtk-2.0 -I/home/user/.local/lib/gtk-2.0/include"
export GTK_LIBS="-L/home/user/.local/lib -lgtk-x11-2.0 -lgdk-x11-2.0"
export CFLAGS="`pkg-config --cflags gobject-2.0 gmodule-2.0 gio-2.0 atk cairo gdk-pixbuf-2.0 gio-2.0 pangoft2`"
export LIBS="`pkg-config --libs gobject-2.0 gmodule-2.0 gio-2.0 atk cairo gdk-pixbuf-2.0 gio-2.0 pangoft2`"
export LD_LIBRARY_PATH="/home/user/.local/lib:/home/user/.local/lib/babl-0.1:/home/user/.local/lib/gegl-0.2:/home/user/.local/lib/gtk-2.0/2.10.0/engines:/home/user/.local/lib/gtk-2.0/2.10.0/immodules:/home/user/.local/lib/gtk-2.0/2.10.0/printbackends:/home/user/.local/lib/gtk-2.0/modules"
./configure --prefix=/home/user/.local
Да, мне пришлось написать целый скрипт, который запускал бы ./configure. Все зависимости отслеживаю из .pc-файлов (эти файлы содержат необходимые для pkg-config данные). Итак, скрипт конфигурирования без проблем находит babl, gegl, ну и другие данные, далее скрипт пытается быстренько скомпилировать простейшую Gtk2-программку на си. И вот, скрипт успешно компилирует и линкует Gtk2-программу, но запустить он ее не может, потому что получаемая программа пытается подключить библиотеку Gtk2 из стандартной комплектации федоры, а она там версии 2.24.8. А мне нужно, чтобы она подключала ее из моего ~/.local/libs, так как там она посвежее версией будет (2.24.10). Вот последние строки вывода скрипта конфигурирования:
checking for GTK+ - version >= 2.24.10... no
*** Could not run GTK+ test program, checking why...
*** The test program compiled, but did not run. This usually means
*** that the run-time linker is not finding GTK+ or finding the wrong
*** version of GTK+. If it is not finding GTK+, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location Also, make sure you have run ldconfig if that
*** is required on your system
***
*** If you have an old version installed, it is best to remove it, although
*** you may also be able to get things to work by modifying LD_LIBRARY_PATH
configure: error: Test for GTK+ failed. See the file 'INSTALL' for help.
В моем скрипте (первый блок кода) я безуспешно пытаюсь шаманить с LD_LIBRARY_PATH, но почему-то не выходит. Извращением с несколькими версиями Gtk2 я занимаюсь потому, что не хочу засорять систему своими компиляциями. Собственно, пожалуйста посоветуйте, как заставить минипрограммку на си подключать библиотеки из ~/.local/lib.