Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Strawberry and CPAN

by Cody Pendant (Prior)
on Jan 09, 2008 at 00:39 UTC ( [id://661216]=perlquestion: print w/replies, xml ) Need Help??

Cody Pendant has asked for the wisdom of the Perl Monks concerning the following question:

Can someone diagnose what's going on here, when I try to install Image::Magick using Strawberry Perl and CPAN?
Writing Makefile for Image::Magick !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ERROR: Cannot copy 'Magick.pm' to 'blib\lib\Image\Magick.pm': No such file or directory !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! at -e line 1 dmake.EXE: Error code 130, while making 'pm_to_blib' JCRISTY/PerlMagick-6.32.tar.gz C:\strawberry\c\bin\dmake.EXE -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible Failed during this command: JCRISTY/PerlMagick-6.32.tar.gz : make NO

Some modules have installed just fine, others have this error message.

Is it about permissions? Is it because it doesn't know what to do with tar.gz files? I'm not used to using CPAN on Windows having used ActivePerl all these years.



Nobody says perl looks like line-noise any more
kids today don't know what line-noise IS ...

Replies are listed 'Best First'.
Re: Strawberry and CPAN
by xdg (Monsignor) on Jan 09, 2008 at 01:18 UTC

    PerlMagick seems to have some really ugly custom Makefile.PL code. For Windows, the README says to use "perl Makefile.nt" and then "nmake install" -- which clearly assumes an ActiveState/MSVC/nmake setup. Moreover, I can't even replicate your error with my own Strawberry. Are you running 5.10.0 or 5.8.8 Alpha 2?

    -xdg

    Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

      It's the 5.10.0 version.


      Nobody says perl looks like line-noise any more
      kids today don't know what line-noise IS ...

        I agree with Syphilis, below, that it would help to know other modules that this has happened on for comparision.

        Could you please post the generated Makefile? I'm curious to see if anything strange is in it.

        -xdg

        Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

Re: Strawberry and CPAN
by syphilis (Archbishop) on Jan 09, 2008 at 06:15 UTC
    Some modules have installed just fine, others have this error message.

    Probably better if you can name one of these "others" ... if you could nominate one that's more straightforward than Image::Magick, then it would increase the likelihood of finding a solution.

    Cheers,
    Rob
      Well for a start, I installed Bundle::CPAN and they all installed except for IO::Zlib, which had exactly the same error:
      ERROR: Cannot copy 'Zlib.pm' to 'blib\lib\IO\Zlib.pm': No such file or directory [snip] dmake.EXE: Error code 130, while making 'pm_to_blib' [snip] Failed during this command: TOMHUGHES/IO-Zlib-1.09.tar.gz : make NO


      Nobody says perl looks like line-noise any more
      kids today don't know what line-noise IS ...
      Then I tried Perl::Critic which has an almost comically-long list of dependencies and it failed almost all of them:
      ADAMK/Test-Object-0.07.tar.gz : make NO ADAMK/Class-Inspector-1.18.tar.gz : make NO ADAMK/Test-ClassAPI-1.04.tar.gz : make NO DCONWAY/Hook-LexWrap-0.20.tar.gz : make NO ADAMK/Test-SubCalls-1.07.tar.gz : make NO ADAMK/Task-Weaken-1.02.tar.gz : make NO RDF/Clone-0.28.tar.gz : make NO ADAMK/PPI-1.201.tar.gz : make NO JJORE/B-Keywords-1.08.tar.gz : make NO DARREN/String-Format-1.14.tar.gz : make NO VPARSEVAL/List-MoreUtils-0.21.tar.gz : make NO GAAS/IO-String-1.08.tar.gz : make NO ROODE/Readonly-1.03.tar.gz : make NO
      with the same error. Can't copy, dmake error 130, pm_to_blib, <whatever>.tar.gz make : no.


      Nobody says perl looks like line-noise any more
      kids today don't know what line-noise IS ...
        ROODE/Readonly-1.03.tar.gz                   : make NO

        What happens if you try to install just Readonly (by itself) using CPAN - does the same error persist ?

        Readonly-1.03 builds fine for me on Strawberry-5.10. However, I don't use CPAN.pm (which is probably where the problem lies).

        Since *every* module you build has to copy a pm to blib, it's especially odd that this problem affects only *some* modules.

        Cheers,
        Rob
      Makefile.PL from Perl::Magick: and the Makefile.nt version:


      Nobody says perl looks like line-noise any more
      kids today don't know what line-noise IS ...
Re: Strawberry and CPAN
by Anonymous Monk on Jan 12, 2008 at 20:11 UTC
    I can't speak for the other modules failing, but I myself have been struggling with Strawberry Perl + Image::Magick lately. I finally just gave up and set up a Linux virtual machine.

    The single biggest complication is that the Image Magick applications and library apparently have to be compiled from source, and the perl module is installed supplementally during this process. On a *nix system, this is a normal configure, make, make install. On win32, however...

    I even tried installing a full copy of MinGW and MSYS, and building it from within MSYS...still with no luck though. I wish I could offer more than just commiseration.

Re: Strawberry and CPAN
by ggvaidya (Pilgrim) on Feb 19, 2009 at 06:27 UTC

    Fix: You could do all of the following, or - as syphilis points out below - run the ppm utility which is available with Strawberry Perl. ppm install ImageMagick.ppd works a treat. Thank you, syphilis! Lengthy, unnecessary, somewhat inaccurate suggestions continue below.

    A "quick-fix" which worked for me is to install PerlMagick using the ImageMagick installer (which fails, since Strawberry Perl doesn't have a ppm utility). But the PerlMagick files are stored in ImageMagick's folder, and you can copy them from ${ImageMagick's folder}/PerlMagick/blib directly into C:/Strawberry/perl/lib). I guess CPAN will have problems if anything depends on I::M, but none of the modules I need do, so this works for me.

    Those paths are from memory, so please message me if I ought to correct any of them.

        .. And the packages name is: Image-Magick.
        >ppm install Image-Magick
        works great.
Re: Strawberry and CPAN
by EvanCarroll (Chaplain) on Aug 01, 2008 at 19:30 UTC
    The problem here is often ImageMagick not being installed. You have to install it first. Then you can install Image::Magick. The build system should handle this better. I just had this problem.
    D:\dbsync>cpanp install Image::Magick [MSG] No 'C:\Documents and Settings\BradKing\Application Data\.cpanplu +s\custom-s ources' dir, skipping custom sources Installing Image::Magick (6.004000) Running [C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\bin\cpanp- +run-perl.b at C:\DOCUME~1\BradKing\APPLIC~1\CPANPL~1\510~1.0\build\PerlMagick-6.4 +0\Makefile .PL ]... Note (probably harmless): No library found for -lMagickCore Note (probably harmless): No library found for -lMagickWand Writing Makefile for Image::Magick [ERROR] MAKE failed: Bad file descriptor [ERROR] Unable to create a new distribution object for 'Image::Magick' + -- cannot continue *** Install log written to: C:\Documents and Settings\BradKing\Application Data\.cpanplus\instal +l-logs\Ima ge-Magick-6.004000-1217616167.log Error installing 'Image::Magick' Problem installing one or more modules


    Evan Carroll
    I hack for the ladies.
    www.EvanCarroll.com

      Update: In a fit, I decided to focus on something that I can try to zero in on. ppm install Image-Magick which netted me mkdir D:\: Permission denied; The device is not ready at C:/strawberry/perl/site/lib/PPM.pm line 333

      I know I don't have a valid D:\ drive and I can find the offending PPM.pm file and line. Navigating there, I found the following at lines 332 and 333.

      my $install_dir = "$options{'BUILDDIR'}/$current_package{'NAME'}-$ +$"; File::Path::rmtree($install_dir,0,0);

      A quick debug showed $option{'BUILDER'} was set to an impossible directory on the D:\ drive. A quick search turned up $options{'BUILDDIR'} = $elem->{BUILDDIR}; near line 1766.

      Seeing as how it's 12:30AM and this is night #2 at this, I decided to just modify the variable right then and there. It's a kludge and probably won't hold up in production but a quick match to see if the drive letter exists and a Q&D substitution got me going. Whooohooo! Image::Magick installed without a hitch.

      I'll leave this comment here for archival purposes. I tried a lot of solutions out there, but none actually suggested going in and seeing what PPM.pm was actually doing. Since I got Image::Magick installed and working with the above method, I did not bother going any further with resolving any of the other problems with cpan or the alternate alternate ppm install method.

      I get the same issue.

      Windows XP SP3
      Strawberry Perl 5.10.0.6 (Also tried it with the most recent ActivePerl as of this writing)
      Image Magick 6.5.6-5-Q16 Precompiled Windows Dynamic DLL.


      This is maddeningly frustrating since I had this functioning on a prior Perl install. The old install was so old, that that particular distribution of Perl no longer exists. So I switched to Strawberry.

      Using Cpan, I get the above error noted by Evan. If I attempt the ppm install Image-Magick I get the following error: mkdir D:\: Permission denied; The device is not ready at C:/strawberry/perl/site/lib/PPM.pm line 333 (Note: D:\ is my DVD-ROM drive). So I tried ppm install ImageMagick.ppd and I get the following failure: Can't locate object method "rvalidate" via package "PPM::XML::PPD::html" at C:/strawberry/perl/site/lib/PPM.pm line 1687.

      I could fall back to using the Linux box since it has a functioning Perl and Image::Magick install but I really don't want to dig through my closet to figure out where it is and attach a monitor/keyboard/USB drive to it.

      I'm tired of banging my head on this. What is it that I'm missing? How can I capture the output from cpan for analyzing? (tried piping but I get only partial output, not enough to analyze).

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://661216]
Approved by neniro
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (5)
As of 2024-04-23 18:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found