Невозможно установить модуль cpan GD
Так как мне не удалось установить Image::Magick на свой Ubuntu-сервер Ubuntu без графического интерфейса пользователя Ubuntu 14.04.2 LTS (читайте об этом здесь), я попытался установить другой инструмент управления изображениями, который можно использовать из perl-скрипта: GD. Но я также не смог установить его:
~# cpan install GD
Reading '/root/.cpan/Metadata'
Database was generated on Thu, 21 May 2015 22:17:02 GMT
Running install for module 'GD'
Checksum for /root/.cpan/sources/authors/id/L/LD/LDS/GD-2.56.tar.gz ok
Configuring L/LD/LDS/GD-2.56.tar.gz with Build.PL
Configuring for libgd version 2.1.1-dev@.
Checking for stray libgd header files...none found.
Unknown option: installdirs
Usage: perl Build.PL [options]
Configure GD module.
Options:
-options "JPEG,FT,PNG,GIF,XPM,ANIMGIF" feature options, separated by commas
-lib_gd_path path path to libgd
-lib_ft_path path path to Freetype library
-lib_png_path path path to libpng
-lib_jpeg_path path path to libjpeg
-lib_xpm_path path path to libxpm
-lib_zlib_path path path to libpng
-ignore_missing_gd Ignore missing or old libgd installations and try to compile anyway
If no options are passed on the command line. The program will
attempt to autoconfigure itself with the gdlib-config program (present
in GD versions 2.0.27 or later). Otherwise it will prompt for these
values interactively.
Warning: No success on command[/usr/bin/perl Build.PL --installdirs site]
LDS/GD-2.56.tar.gz
/usr/bin/perl Build.PL --installdirs site -- NOT OK
Я думаю, что проблема начинается с Checking for stray libgd header files...none found.
, но я понятия не имею, что я сделал неправильно, или что я мог сделать, чтобы сделать это лучше.
Пожалуйста помоги!!
дополнение (2015-09-02)
У меня есть подсказка для установки libgd-gd2-perl (см. Ответ от цыплят):
apt-get install libgd-gd2-perl
Я следовал этой инструкции (как root), но она ничего не изменила. Когда я казнил cpan install GD
У меня точно такие же сообщения, как указано выше.
дополнение (2015-09-28)
Еще один совет - установить libgd-perl:
apt-get install libgd-perl
Когда я сделал, предыдущий установленный пакет libgd-gd2-perl
был автоматически удален После завершения установки я попытался установить GD с помощью команды
cpan install GD
И в конце я получил точно такое же сообщение об ошибке, как в мае и три недели назад:
Warning: No success on command[/usr/bin/perl Build.PL --installdirs site]
LDS/GD-2.56.tar.gz
/usr/bin/perl Build.PL --installdirs site -- NOT OK
2 ответа
Это известная и открытая ошибка, читайте здесь, и я могу воспроизвести эту ошибку.
Отсюда я скопировал следующее, все кредиты идут на @Schwern.
Build.PL
пытается вызвать функцию под названиемprompt
но его не существует Это потому, что они недавно переключили системы сборки с ExtUtils::MakeMaker (Makefile.PL) на Module::Build (Build.PL), но не полностью преобразовали программу. Я сообщил об ошибке.Большинство людей не замечают этого, потому что подсказка необходима, только если GD не может настроить себя. Это делается путем поиска программы gdlib-config. Если это не может быть найдено или не работает, он запросит у вас конфигурацию gdlib. Лучше позволить gdlib-config позаботиться об этом. Лучший способ решить эту проблему - убедиться, что gdlib-config находится где-то в вашей переменной PATH и что
gdlib-config --all
работает.В противном случае замените все экземпляры
prompt
сModule::Build->prompt
и это должно работать.
И вот проблемный код в Build.pl
my $PREFIX = $lib_gd_path;
if( ! defined($lib_gd_path) )
{
warn "\n";
$PREFIX = prompt('Where is libgd installed?','/usr/lib');
}
и здесь
my ($JPEG, $FT, $XPM, $GIF,$ANIMGIF,$UNCLOSEDPOLY,$FONTCONFIG,$PNG,$FTCIRCLE,$VERSION_33);
if( defined($options) )
{
$JPEG = $options =~ m/JPEG/i;
$FT = $options =~ m/FT|FREETYPE/i;
$XPM = $options =~ m/XPM/i;
$GIF = $options =~ m/GIF/i;
$PNG = $options =~ m/PNG/i;
$ANIMGIF = $GIF && $options =~ m/ANIMGIF/i;
$VERSION_33= $options =~ m/VERSION_33/i;
$UNCLOSEDPOLY = $options =~ m/UNCLOSEDPOLY/i;
$FONTCONFIG = $options =~ m/FONTCONFIG/i;
$FTCIRCLE = $options =~ m/FTCIRCLE/i;
}
else
{
warn "\nPlease choose the features that match how libgd was built:\n";
$JPEG = lc prompt('Build JPEG support?','y') eq 'y';
$PNG = lc prompt('Build PNG support?','y') eq 'y';
$FT = lc prompt('Build FreeType support?','y') eq 'y';
$GIF = lc prompt('Build GIF support?','y') eq 'y';
$ANIMGIF = $GIF && lc prompt('Build support for animated GIFs?','y') eq 'y';
$XPM = $^O !~ /^freebsd|MSWin32$/ && lc prompt('Build XPM support?','y') eq 'y';
}
и так далее.
Пытаться:
sudo apt-get install libgd-gd2-perl
установить пакет, который позаботится о зависимости, которую вы пропустили.