Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Fedora上安装Perl Image::Magick_Perl_Imagemagick - Fatal编程技术网

在Fedora上安装Perl Image::Magick

在Fedora上安装Perl Image::Magick,perl,imagemagick,Perl,Imagemagick,我正在通过cpan安装Image::Magick,我一直收到这个错误。我试过了,也试过了。我已经修改了安装日志。我读过一些关于缺少ImageMagick.h文件的信息,但除此之外我什么都不知道。显然,自2007年以来,这一直是一个普遍的问题 [gandalf@Durmstrang ~]$ cpan -if Image::Magick "/usr/bin/perl" "/usr/share/perl5/vendor_perl/ExtUtils/xsubpp" -typemap "/usr/sh

我正在通过cpan安装Image::Magick,我一直收到这个错误。我试过了,也试过了。我已经修改了安装日志。我读过一些关于缺少ImageMagick.h文件的信息,但除此之外我什么都不知道。显然,自2007年以来,这一直是一个普遍的问题

[gandalf@Durmstrang ~]$ cpan -if Image::Magick

"/usr/bin/perl" "/usr/share/perl5/vendor_perl/ExtUtils/xsubpp"  -typemap "/usr/share/perl5/ExtUtils/typemap" -typemap "typemap"  Magick.xs > Magick.xsc && mv Magick.xsc Magick.c
gcc -c  -I/usr/local/include/ImageMagick-6 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/libxml2 -I"/usr/include/ImageMagick-6" -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/freetype2 -g -O2 -Wall -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic   -DVERSION=\"6.89\" -DXS_VERSION=\"6.89\" -fPIC "-I/usr/lib64/perl5/CORE"  -D_LARGE_FILES=1 -DHAVE_CONFIG_H Magick.c
Magick.xs: In function ‘XS_Image__Magick_ComplexImages’:
Magick.xs:3475:5: error: unknown type name ‘ComplexOperator’
     ComplexOperator
     ^
Magick.xs:3510:8: error: ‘UndefinedComplexOperator’ undeclared (first use in this function)
     op=UndefinedComplexOperator;
        ^
Magick.xs:3510:8: note: each undeclared identifier is reported only once for each function it appears in
Magick.xs:3516:31: error: ‘MagickComplexOptions’ undeclared (first use in this function)
         in=ParseCommandOption(MagickComplexOptions,MagickFalse,(char *)
                               ^
Magick.xs:3524:13: error: ‘ComplexOperator’ undeclared (first use in this function)
         op=(ComplexOperator) in;
             ^
Magick.xs:3524:30: error: expected ‘;’ before ‘in’
         op=(ComplexOperator) in;
                              ^
Magick.xs:3548:38: error: expected ‘;’ before ‘in’
                 op=(ComplexOperator) in;
                                      ^
Magick.xs:3563:5: warning: implicit declaration of function ‘ComplexImages’ [-Wimplicit-function-declaration]
     image=ComplexImages(image,op,exception);
     ^
Magick.xs:3563:10: warning: assignment makes pointer from integer without a cast [enabled by default]
     image=ComplexImages(image,op,exception);
          ^
Magick.xs: In function ‘XS_Image__Magick_Mogrify’:
Magick.xs:9824:11: warning: implicit declaration of function ‘RotationalBlurImageChannel’ [-Wimplicit-function-declaration]
           image=RotationalBlurImageChannel(image,channel,geometry_info.rho,
           ^
Magick.xs:9824:16: warning: assignment makes pointer from integer without a cast [enabled by default]
           image=RotationalBlurImageChannel(image,channel,geometry_info.rho,
                ^
Magick.xs:10895:11: warning: implicit declaration of function ‘CannyEdgeImage’ [-Wimplicit-function-declaration]
           image=CannyEdgeImage(image,geometry_info.rho,geometry_info.sigma,
           ^
Magick.xs:10895:16: warning: assignment makes pointer from integer without a cast [enabled by default]
           image=CannyEdgeImage(image,geometry_info.rho,geometry_info.sigma,
                ^
Magick.xs:10916:11: warning: implicit declaration of function ‘HoughLineImage’ [-Wimplicit-function-declaration]
           image=HoughLineImage(image,(size_t) geometry_info.rho,(size_t)
           ^
Magick.xs:10916:16: warning: assignment makes pointer from integer without a cast [enabled by default]
           image=HoughLineImage(image,(size_t) geometry_info.rho,(size_t)
                ^
Magick.xs:10939:11: warning: implicit declaration of function ‘MeanShiftImage’ [-Wimplicit-function-declaration]
           image=MeanShiftImage(image,(size_t) geometry_info.rho,(size_t)
           ^
Magick.xs:10939:16: warning: assignment makes pointer from integer without a cast [enabled by default]
           image=MeanShiftImage(image,(size_t) geometry_info.rho,(size_t)
                ^
make: *** [Magick.o] Error 1
  JCRISTY/PerlMagick-6.89-1.tar.gz
  /usr/bin/make -- NOT OK
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible

问题是CPAN不知道非Perl依赖项

Perl Image::Magick模块只是C库的包装器。在构建Perl模块之前,需要先安装该库

$ sudo yum install ImageMagick
它可能还需要ImageMagick的开发包

$ sudo yum install ImageMagick-devel
但是安装已经为Fedora打包的RPM版本可能更容易,它将自动引入任何其他需求

$ sudo yum install ImageMagick-perl

问题是CPAN不知道非Perl依赖项

Perl Image::Magick模块只是C库的包装器。在构建Perl模块之前,需要先安装该库

$ sudo yum install ImageMagick
它可能还需要ImageMagick的开发包

$ sudo yum install ImageMagick-devel
但是安装已经为Fedora打包的RPM版本可能更容易,它将自动引入任何其他需求

$ sudo yum install ImageMagick-perl

在Fedora、CentOS、Ubuntu和其他软件中,通过cpan程序安装Image::Magick遇到了这种类型的挑战,几年来,Image::Magick的安装脚本一直很敏感,如果你四处搜索的话。对于桌面Linux,甚至通过ApacheCPanel,情况都是如此。也有类似的例子,但至少在Ubuntu,他们并没有解决所有的问题。有时,为了正确地执行此操作,必须首先使用ImageMagick删除相关库以重置链接。所有建议的解决方案都围绕在使用“cpan”之前安装其他东西。然而,我发现,最好的方法不是从源代码处编译,而是在二进制ImageMagick应用程序可用时安装该应用程序,以及cpan前后的相关库,如Ubuntu中所示,但适用于Fedora它应该类似或大致相同:

sudo apt-get install perlmagick
sudo apt-get install ImageMagick
sudo cpan install Image::Magick
sudo apt-get install libperl-dev
为完整起见,如果无法找到正确的二进制文件,则必须注意按照上所示预安装所有相关库,然后在Ubuntu中的“sudo-i”或Fedora中的等效文件后,在临时文件夹中执行此命令集将替换上面的第2行:

wget http://www.imagemagick.org/download/ImageMagick.tar.gz
tar xvfz ImageMagick.tar.gz
cd Imag*
./configure --with-perl
make
make install

此安装完成后,继续执行上面的第3行。将命令的开头调整为适合其他linuxes形式的形式。在此之后,一个perl程序使用Image::Magick;一开始应该能够完美地调整jpg图像的大小等。

在Fedora、CentOS、Ubuntu等领域,通过cpan程序安装Image::Magick遇到了这种挑战,几年来,Image::Magick的安装脚本一直很敏感,似乎有人四处搜索。对于桌面Linux,甚至通过ApacheCPanel,情况都是如此。也有类似的例子,但至少在Ubuntu,他们并没有解决所有的问题。有时,为了正确地执行此操作,必须首先使用ImageMagick删除相关库以重置链接。所有建议的解决方案都围绕在使用“cpan”之前安装其他东西。然而,我发现,最好的方法不是从源代码处编译,而是在二进制ImageMagick应用程序可用时安装该应用程序,以及cpan前后的相关库,如Ubuntu中所示,但适用于Fedora它应该类似或大致相同:

sudo apt-get install perlmagick
sudo apt-get install ImageMagick
sudo cpan install Image::Magick
sudo apt-get install libperl-dev
为完整起见,如果无法找到正确的二进制文件,则必须注意按照上所示预安装所有相关库,然后在Ubuntu中的“sudo-i”或Fedora中的等效文件后,在临时文件夹中执行此命令集将替换上面的第2行:

wget http://www.imagemagick.org/download/ImageMagick.tar.gz
tar xvfz ImageMagick.tar.gz
cd Imag*
./configure --with-perl
make
make install

此安装完成后,继续执行上面的第3行。将命令的开头调整为适合其他linuxes形式的形式。在此之后,一个perl程序使用Image::Magick;一开始应该能够完美地调整jpg图像的大小等。

谢谢。我相信,如果您只使用perl系统,这是可行的。谢谢。我相信,如果您只使用perl系统,那么这种方法是有效的。