2016-06-21 7 views
2

Я пытаюсь установить GD::Polygon, запустив cpan install GD::Polygon, но я получаю следующее сообщение об ошибке:Почему я получаю «Не могу найти gdlib-config в пути поиска», когда я пытаюсь установить GD :: Polygon, хотя gdlib-config установлен?

**UNRECOVERABLE ERROR** 
Could not find gdlib-config in the search path. Please install libgd 
2.0.28 or higher. 

я вручную установить LibGD-2.2.1 из исходных текстов (./configure, make, make install), и теперь, когда я бегу whereis gdlib-config я вижу, что он действительно установлен:

gdlib-config: /usr/local/bin/gdlib-config 

Как я могу сказать cpan, где найти эту библиотеку?

+3

Является ли 'gdlib-config' в вашей' PATH'? – ThisSuitIsBlackNot

+1

также ... Вы пытались в новом окне терминала, чтобы гарантировать, что PATH был соответствующим образом обновлен? – stevieb

+0

@ThisSuitIsBlackNot/usr/local/bin находится в моей PATH ... должен ли я конкретно включать gdlib-config тоже? –

ответ

2

Ну, короткий ответ: я установил GD через yum вместо cpan.

sudo yum install perl-GD 

Если вы все еще хотите, чтобы установить его через cpan, вы должны включать в себя gdlib-config на вашем PATH (не только папки, например /usr/local/bin или там, где она есть).

Установка пакетов Perl с yum это окончательно лучше, чем с cpan

+1

'yum' (и' apt-get') имеют преимущество перед 'cpan' для модулей Perl, которые необходимо интегрировать с библиотеками не Perl, поскольку они могут управлять зависимостями и устанавливать предварительно скомпилированные объекты, которые протестированы и известны для совместимости с вашей системой. Вы отказываетесь от гибкости работы с несистемными 'perl' или модификацией исходного кода модуля, если вы занимаетесь такими вещами. – mob

+1

Я не могу заставить это работать с apt-get: 'apt-get install perl-GD', дает: E: Не удается найти пакет perl-GD. Я не могу поверить, как сложно это настроить на сервере, используя более поздние версии Perl:/ –

+3

@AndrewNewby: вы ищете 'sudo apt-get install libgd-gd2-perl' – Nicorr

1

Я согласен пойти с помощью менеджера пакетов. Вы не упомянули, какую ОС вы используете. В Ubuntu Linux/usr/local/bin также находится на пути пользователя root. Вы можете проверить, является ли файл исполняемым.

Также убедитесь, что скрипт, выполняющий компиляцию в Perl, не испортит переменную PATH.

Я использую perlbrew и не запускаюсь как root, используя cpan для установки вещей. Примечание: на Ubuntu 16.10 и 17.04 отсутствует gdlib-config, потому что, похоже, демонстрантеры его удалили.

Чтобы получить его, вы можете скомпилировать источник здесь: https://launchpad.net/ubuntu/+archive/primary/+files/libgd2_2.1.1.orig.tar.gz

со следующим патчем применяется:

diff webpimg.c.org libgd-gd-2.1.1-patched-16.10plus/src/webpimg.c 
714c714 
<  vpx_img_wrap(&img, IMG_FMT_I420, 
--- 
>  vpx_img_wrap(&img, VPX_IMG_FMT_I420, 
716,721c716,721 
<  img.planes[PLANE_Y] = (uint8*)(Y); 
<  img.planes[PLANE_U] = (uint8*)(U); 
<  img.planes[PLANE_V] = (uint8*)(V); 
<  img.stride[PLANE_Y] = y_stride; 
<  img.stride[PLANE_U] = uv_stride; 
<  img.stride[PLANE_V] = uv_stride; 
--- 
>  img.planes[VPX_PLANE_Y] = (uint8*)(Y); 
>  img.planes[VPX_PLANE_U] = (uint8*)(U); 
>  img.planes[VPX_PLANE_V] = (uint8*)(V); 
>  img.stride[VPX_PLANE_Y] = y_stride; 
>  img.stride[VPX_PLANE_U] = uv_stride; 
>  img.stride[VPX_PLANE_V] = uv_stride; 

ура

+0

См. также этот отчет об ошибке: https://rt.cpan.org/Public/Bug/Display.html?id=121121 –

0

Кстати, мне кажется, что CPAN инсталлятор просто необходим «devel» версия libgd для сборки пакета. Я попытался установить его на старую пластину cygwin и, наконец, работать с компонентом «libgd-devel».