当我尝试安装GD :: Polygon时,为什么我会在搜索路径中找到“找不到gdlib-config”,即使安装了gdlib-config?

时间:2016-06-21 14:51:43

标签: perl gd cpan gdlib

我正在尝试运行cpan install GD::Polygon来安装GD::Polygon,但我收到以下错误:

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

我从源代码(./configuremakemake install)手动安装了libgd-2.2.1,现在当我运行whereis gdlib-config时,我发现它确实安装了:

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

如何判断cpan在何处找到此库?

4 个答案:

答案 0 :(得分:2)

嗯,简短的回答是:我通过yum代替cpan安装了GD。

sudo yum install perl-GD

如果您仍希望通过cpan进行安装,则应在PATH上添加gdlib-config(不仅仅是文件夹/usr/local/bin或其中的任何位置)。

使用yum安装Perl软件包明显优于cpan

答案 1 :(得分:1)

我同意使用包管理器。 您没有提到您使用的操作系统。 在Ubuntu Linux上,/ usr / local / bin也在root用户的路径中。 您可以仔细检查文件是否可执行。

还要确保执行Perl编译的脚本不会弄乱PATH变量。

我使用perlbrew并且不以root身份运行,使用cpan来安装东西。 注意:在Ubuntu 16.10和17.04上缺少gdlib-config,因为debian维护者似乎删除了它。

要获得它,您可以在这里编译源代码: 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;

欢呼声

答案 2 :(得分:1)

我尝试使用以下代码安装 libbgd。将 libgd-2.2.5/bin 路径添加到 $PATH 后,它起作用了。

wget https://github.com/libgd/libgd/releases/download/gd-2.2.5/libgd-2.2.5.tar.gz
tar zxvf libgd-2.2.5.tar.gz
cd libgd-2.2.5
./configure -prefix=/home/yourname/local
make
make install
make installcheck

答案 3 :(得分:0)

顺便说一句,CPAN安装程序似乎只需要一个“开发”版本的libgd来构建软件包。我尝试将它安装在旧的cygwin平台上,最后它与“libgd-devel”组件一起使用。