Невозможно установить модуль 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

установить пакет, который позаботится о зависимости, которую вы пропустили.

Другие вопросы по тегам