Установка Perl и ImageMagick в режиме non-root 4:03 | 2 декабря 2008 г. | Arty
О том, что с ImageMagick у меня будут проблемы, я и не догадывался, когда писал свой первый перловый движок под Windows ещё на первой версии Денвера. Кто ж мог предположить, что в будущем пойдут звонки от админов-линуксоидов с вопросами о том, как сиё чудо установить, чтоб работало. А я и понятия не имел что им ответить, кроме как посетовать на их компетентность. Сейчас вопрос с серверами, где нет ImageMagick и не могут поставить, решается просто - "ребята, либо ставите сами, либо платите 200 у.е. и я переписываю админку под другие модули, либо платите 200 у.е., даёте рутовый SSH и наш админ вам всё настроит". Как ни странно, после такой постановки вопроса, на любого админа находит прозрение.
Так всё это и происходило, до тех пор, пока не попросили как-то протестировать буржуйскую хост-площадку на предмет профпригодности. Доступ по SSH был, но естественно пользовательский. Прав для установки того же ImageMagick (PerlMagick) не хватало. Можно было написать в техподдержку, но можно было и не писать. Дело было вечером, делать было есть чего, но... решил пойти мимо техподдержки и установить-таки хост собственноручно.
Итак, если кто не в курсе или заблуждается, напомню, что ImageMagick, это вовсе не модуль для Perl, который можно установить стандартными способами, скачав дистрибутив с CPAN. ImageMagick - это серверное ПО, позволяющее работать с изображениями. Модуль же для Perl, который зовётся PerlMagick - это только интерфейс для вызова методов ImageMagick. Отсюда понятно, почему нельзя без root-а установить весь компект.
Приступим. Первое, что понадобится - это сам Perl. Выбираем нужный дистрибутив по адресу http://perl.com/CPAN/src/. Я остановил свой выбор на perl-5.8.8.tar.gz. Далее, либо скачиваем и распаковываем архив на сервере вручную (тогда пропускаем первые 2-3 команды), либо используем wget и tar:
wget http://perl.com/CPAN/src/perl-5.8.8.tar.gz
tar zvxf perl-5.8.8.tar.gz
cd perl-5.8.8
sh Configure -de -Dprefix=/path/to/where/i/want/my/perl
make
make test
make install
Здесь и далее, нужно заменить "/path/to/where/i/want/my/perl" на путь к папке, где будет установлен Perl. "make test" может подвиснуть, ничего страшного, можно просто прервать. Вся процедура может занять несколько минут, после чего мы имеем рабочую версию Perl и можем её использовать. Для этого в своих скриптах нужно указывать путь к перл как "#!/path/to/where/i/want/my/perl/bin/perl" вместо классического "#!/usr/bin/perl".
Теперь настало время установить ImageMagick. Стоить отметить немаловажный факт - установка некоторых комбинаций версий Perl и ImageMagick заканчивается неудачей. Дело тут скорее в ImageMagick. Советую не устанавливать последнюю версию.
По аналогии с установкой Perl, выбираем страну/дистрибутив по адресу http://www.imagemagick.org/script/download.php. Распаковываем и устанавливаем, указав при этом путь для ImageMagick и путь к Perl:
wget ftp://ftp.fu-berlin.de/unix/X11/graphics/ImageMagick/ImageMagick-6.4.2-6.tar.gz
tar zvxf ImageMagick-6.4.2-6.tar.gz
cd ImageMagick-6.4.2-6
./configure --prefix=/path/to/where/i/want/my/ImageMagick --with-perl=/path/to/where/i/want/my/perl/bin/perl
make
make install
Всё. Осталось найти, куда установился модуль. У меня он установился по адресу /path/to/where/i/want/my/perl/lib/site_perl/5.8.8/i686-linux/. Теперь, чтобы использовать "свои" Perl и ImageMagick, первые строки скрипта будут выглядеть так:
#!/path/to/where/i/want/my/perl/bin/perl
use lib ("/path/to/where/i/want/my/perl/lib/site_perl/5.8.8/i686-linux/");
use Image::Magick;
Выглядит всё это немного громоздко, зато работает. Конечно, помимо ImageMagick понадобится устанавливать ещё модули. Есть 2 варианта.
Первый - находим, скачиваем и устанавливаем вручную:
wget url_of_repository/module.tar.gz
tar zvxf module.tar.gz
cd module
perl Makefile.PL PREFIX=/path/to/where/i/want/my/perl/lib/5.8.8
make
make install
Второй - поручаем весь процесс CPAN.
Для начала CPAN надо сконфигурировать. Конфигарутор запускается автоматически при первом запуске:
/path/to/where/i/want/my/perl/bin/perl -MCPAN -e 'shell' ... Are you ready for manual configuration? [yes]
Подтверждаем "yes" и дальше отвечаем на несложные вопросы. Главное, не пропустить следующее:
Parameters for the 'perl Makefile.PL' command? Typical frequently used settings:
PREFIX=~/perl non-root users (please see manual for more hints)
Your choice: []
"Non-root users" - это как раз про нас. Здесь просят указать путь к библиотекам недавно установленного Perl:
PREFIX=/path/to/where/i/want/my/perl/lib/5.8.8
Всё остальное настраиваем в соответствии с личными предпочтениями. После того, как установка завершена, рекомендую обновить CPAN:
cpan> install Bundle::CPAN
|