为什么在我尝试安装 GD::Polygon 时得到 "Could not find gdlib-config in the search path",即使安装了 gdlib-config?

Why do I get "Could not find gdlib-config in the search path" when I try to install GD::Polygon, even though gdlib-config is installed?

我正在尝试通过 运行ning 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 在哪里可以找到这个库?

好吧,简短的回答是:我通过 yum 而不是 cpan 安装了 GD。

sudo yum install perl-GD

如果您仍然想通过 cpan 安装它,您应该在您的 PATH 中包含 gdlib-config(不仅仅是文件夹,例如 /usr/local/bin 或任何地方)。

使用 yum 安装 Perl 包绝对比使用 cpan

更好

我同意使用包管理器。 你没有提到你使用哪个 OS 。 在UbuntuLinux上,/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;

干杯

顺便说一下,CPAN 安装程序似乎只需要 "devel" 版本的 libgd 来构建软件包。我尝试将它安装在旧的 cygwin 平台上,最后它与 "libgd-devel" 组件一起工作。

我尝试使用以下代码安装 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