Recipe: Installing ImageMagick Perl Bindings on Mac OSX
Ideally, one would expect that this works the orthodox way using MacPorts:
$ port install p5-perlmagick
The first problem here is ImageMagick itself, as it depends on xorg-libX11 and that expects xproto which I do not have. And do not care to have.
Luckily the port supports variants:
ImageMagick @6.5.1-0 (graphics, devel)
Variants: darwin_6, graphviz, ..., no_x11, perl, ....
So if you do not care about display images with ImageMagick, then you can suppress building of X11 specific parts:
Now I thought that a followup
will add Perl binding support, but instead I was confronted with pretty unfriendly checksum problems:
Portfile checksum: PerlMagick-6.32.tar.gz md5 a341de8299859630ca82b74ee7173204
Distfile checksum: PerlMagick-6.32.tar.gz md5 6b6e7ee0cdda9610e97e2ffa281a780b
....
Error: Target org.macports.checksum returned: Unable to verify file checksums
That looks pretty suspicious as I am not the only one to report this. What is equally suspicious is that the port has version 6.32
p5-perlmagick @6.32 (perl)
and the latest version on CPAN is 6.40. What is even more suspicious is that that is marked as UNAUTHORIZED RELEASE , there are no earlier versions unless you go to the Backpan, and even then there is a version gap.
Anyway, the installation via cpan also fails
cpan[1]> install Image::Magick
...
# lots of compilation warnings and errors
# ... error: too few arguments ...
indicating that there is a version mismatch between what the current ImageMagick offers and what the Perl bindings expect.
But then I noticed that the MacPorts port also has a Perl variant:
And voila, the bindings are there. Once I had found my own solution, it was easy to find it with Google (inside the comments).
So much about post-mortem search engines.
- rho's blog
- Login to post comments
- Printer-friendly version

port install ImageMagick +no_x11 +perl for MAC OS X
When I do this, and I try to write a Perl script with:
use Image::Magick;
I just get told that:
Can't locate Image/Magick.pm in @INC (@INC contains: /Library/Perl/Updates/5.8.8/darwin-thread-multi-2level /Library/Perl/Updates/5.8.8 /System/Library/Perl/5.8.8/darwin-thread-multi-2level /System/Library/Perl/5.8.8 /Library/Perl/5.8.8/darwin-thread-multi-2level /Library/Perl/5.8.8 /Library/Perl /Network/Library/Perl/5.8.8/darwin-thread-multi-2level /Network/Library/Perl/5.8.8 /Network/Library/Perl /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level /System/Library/Perl/Extras/5.8.8 /Library/Perl/5.8.6 /Library/Perl/5.8.1 .) at ./perlmagick.pl line 2.
When I type:
perl -e "print join(\"\n\", @INC);"
The output is:
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level
/opt/local/lib/perl5/site_perl/5.8.9
/opt/local/lib/perl5/site_perl
/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level
/opt/local/lib/perl5/vendor_perl/5.8.9
/opt/local/lib/perl5/vendor_perl
/opt/local/lib/perl5/5.8.9/darwin-2level
/opt/local/lib/perl5/5.8.9
Which I notice these paths are not mentioned on the initial @INC fail.
How do I get my Perl install to find the Image::Magick module? I've spent 3 full days on just this one issue (I'm not unix Guru)
Re: port install ImageMagick
But you now see that it pays off to become one! :-)
I see two options:
And then rearrange your PERLLIB environment variable.
\rho