Установка модуля Image::Magick для Perl установленного в Perlbrew
- Подробности
- Просмотров: 2843
После установки Perl в perlbrew, обычно дело идёт к установке модулей через CPAN. Но иногда сделать это невозможно, например модуль Image::Magick не получится устновить с CPAN. Обычно он устанавливается через пакетный менеджер операционной системы к системному Perl'у. Но в perlbrew так сделать тоже не получится...
В таком случае не остаётся ничего другого, как установить молуль с исходников ImageMagick. Но в нашем случае нам нужно действовать акуратно...
Создадим дополнительные директории в нашем perlbrew.
$ cd /opt/perbrew
$ mkdir -p custom/build custom/dist
Директория /opt/perlbrew указана для примера. Теперь нужно скачать исходники ImageMagick. Заходим на страницу с архивами, берём самую свежую и кладём в /opt/perlbrew/custom/dist. Далее нужно исходники распаковать. Но для сборки нужно создать директорию под конкретную версию Perl. Нужно это для того, чтобы не пришлось чистить каталог сборки при установке Image::Magick к другой версии Perl.
$ cd build
$ mkdir perl-5.14-webdev
$ cd perl-5.14.webdev
$ tar -xvf ../../dist/ImageMagick-6.8.9-7.tar.xz
$ cd ImageMagick-6.8.9-7
Далее нужно сконфигурировать сборщик. Делается при помощи хитрой команды:
LDFLAGS=-L/opt/perlbrew/perls/perl-5.14-webdev/lib/5.14.4/x86_64-linux-thread-multi/CORE \
./configure --prefix /opt/perlbrew/custom/perl-5.14-webdev/imagick \
--with-perl=/opt/perlbrew/perls/perl-5.14-webdev/bin/perl \
--enable-shared --with-threads
Краткое пояснение по путям и флагам:
LDFLAGS=-L(путь к Perl CORE) \
./configure --prefix (путь, где расположатся файлы ImageMagick) \
--with-perl=(путь к главному бинарнику Perl) \
--enable-shared --with-threads(или --without-threads в зависимости от флагов сборки Perl)
Это вручную слишком много писать, поэтому я предпочитаю это запихнуть в bash-скрипт. Далее собираем и устанавливаем:
$ make install
После установки мы получаем рабочий модуль Image::Magick в нашем Perl. Только для работы в ним необходимо добавить путь поиска библиотек ImageMagick в окружении.
$ export LD_LIBRARY_PATH="/opt/perlbrew/custom/perl-5.14-webdev/imagick/lib:$LD_LIBRARY_PATH"
Теперь с консоли мы можем запускать любые Perl-программы, которые используют Image::Magick.
Дополнение: Использование Image::Magick CGI-скриптами.
Тут нужно проделать тоже самое, о чём было написано выше, только средствами Веб-сервера. Например для Apache.
SetEnv LD_LIBRARY_PATH /opt/perlbrew/custom/perl-5.14-webdev/imagick/lib
Эту команду можно использовать в секции Directory или VirtualHost.