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

Dear Brothers and Sisters in Perl!

A most strange thing happened with my PPM-program after trying to install XML::LibXML. The install did not work because I did not have the right version of iconv.dll and libxml, but I do not think that is the cause.

After that failed install, all further installs now stop with the following error message:

F:\>ppm install XML::LibXML::Common Downloading XML-LibXML-Common-0.13...done Unpacking XML-LibXML-Common-0.13...ppm install failed: Could not open +'C:\data\tmp\ppm-lwux0j/XML-LibXML-Common-0.13/blib/lib/XML/LibXML/Co +mmon.pm': No such file or directory

So it seems that after downloading the PPD file and the data-file, it just somehow never makes it to the temporary directory where it can be unpacked.

I did a clean re-install of my Activestate Perl 8.2.2 in another directory and there PPM works perfectly. But of course it would take days to bring this clean install up-to-date with my previous install (and I do not have the time now).

Does anybody has any bright ideas what went wrong and how to repair it?

CountZero

PS: I am using Windows XP Professional. libxml and iconv are now installed and working, but PPM still refuses to work properly.

Update 1: I have poked around in the ActivePerl/PPM/Client module and it does download the .tgz file into the temporary directory, but if fails to extract the files in it. I wrote a short script using Archive::Tar and copying the lines that extract the files and that has no problem extracting the contents of the archive file. I'm really stumped!

Update 2: Thanks to all your suggestions, it seemed most likely that there was some wrong interaction between my versions of Archive::Tar and the PPM-scripts and modules, so I copied them all over from the clean install I made before and now it works!

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

Replies are listed 'Best First'.
Re: PPM stopped working after trying to install XML::LibXML
by mwah (Hermit) on Nov 04, 2007 at 21:44 UTC

    what did your ppm4.log say about this action? (it's located in C:\Documents and Settings\CountZero\Local Settings\Temp)

    After 'ppm install XML::LibXML::Common', here it says:

    On unpacking, it seems to try to create a directory: Created D:/Perl/site/etc/ppm-site-dirty. Maybe rights are not set properly?

    Regards

    mwa

      Here is what the log says:

      2007-11-04T22:43:39 <6> [ppm:81] ppm install XML::LibXML::Common 2007-11-04T22:43:39 <7> [Client.pm:429] http://ppm4.activestate.com/MS +Win32-x86/5.8/822/package.xml is still fresh 2007-11-04T22:43:39 <7> [Client.pm:429] http://theoryx5.uwinnipeg.ca/p +pms/package.xml is still fresh 2007-11-04T22:43:39 <7> [Client.pm:429] http://trouchelle.com/ppm/pack +age.xml is still fresh 2007-11-04T22:43:40 <7> [Client.pm:836] Want XML::LibXML::Common >= 0 2007-11-04T22:43:40 <7> [Client.pm:711] Feature XML::LibXML::Common no +t found in site 2007-11-04T22:43:40 <7> [Client.pm:711] Feature XML::LibXML::Common no +t found in perl 2007-11-04T22:43:40 <7> [Client.pm:719] Module XML::LibXML::Common not + found in @INC 2007-11-04T22:43:40 <7> [Client.pm:711] Feature XML::LibXML::Common no +t found in site 2007-11-04T22:43:40 <7> [Client.pm:711] Feature XML::LibXML::Common no +t found in perl 2007-11-04T22:43:40 <7> [Client.pm:719] Module XML::LibXML::Common not + found in @INC 2007-11-04T22:43:40 <5> [ppm:1114] Installing into site 2007-11-04T22:43:43 <6> [Web.pm:63] GET http://theoryx5.uwinnipeg.ca/p +pms/x86/XML-LibXML-Common.tar.gz ==> 200 OK (40159 bytes in 2.92 sec +- 13 KB/s) 2007-11-04T22:52:31 <3> [ppm:85] ppm install: Could not open 'C:\data\ +tmp\ppm-P6gd5t/XML-LibXML-Common-0.13/blib/lib/XML/LibXML/Common.pm': + No such file or directory at C:/data/Perl/lib/ActiveState/ModInfo.pm + line 144. ...propagated at C:\data\Perl\bin/ppm line 998, <STDIN> li +ne 1.

      It does not seem to be a matter of rights not set properly (see update 1 above), since a script I wrote can do the extraction. Anyhow, I'm running now as "Admin" with full rights, but still no luck.

      CountZero

      A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

        Do the directories C:\data\tmp, for the temp files, and C:\data\Perl\etc, for ppm-site-dirty, exist?

        Is it just installation of this particular package that's a problem, or is there now a problem with any package, including one from ActiveState's repository?

        I deinstalled XML::LibXML::Common - and during reinstall, I tried to provoke an installation error (by messing around with temporary files on which Perl/lib/ActiveState/ModInfo.pm::parse_version()" is called (which produces your error). In the end, I *didn't* manage to prevent XML::LibXML::Common from installing ;-)

        So there has to be some other crazy stuff in the way ...

        Regards

        mwa