我正在尝试运行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.
我从源代码(./configure
,make
,make install
)手动安装了libgd-2.2.1,现在当我运行whereis gdlib-config
时,我发现它确实安装了:
gdlib-config: /usr/local/bin/gdlib-config
如何判断cpan
在何处找到此库?
答案 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”组件一起使用。