Re: Puzzled by ppm
by wrog (Friar) on Feb 27, 2012 at 00:30 UTC
|
The most recent version of the modules exist in \Perl\site\lib, but the version ppm says I have is the version in \Perl\lib. What's the default setting for @INC (perl -V should tell you)?
When looking for a module, the directories in @INC are searched in order. Once said module is found, the remaining directories are ignored. So if \Perl\lib is in front of \Perl\site\lib then whatever is in \Perl\lib takes precedence and the only way anything will change is if you install the upgraded version in \Perl\lib which you need to tell PPM to do explicitly (I believe upgrade --precious does this) and which, depending on what you're upgrading, may possibly break your perl installation, which is why the packager folks generally try to make this sort of thing hard to do by accident...
| [reply] [d/l] [select] |
|
Thanks for the suggestion, but perl -V shows:
@INC:
C:/Perl/site/lib/MSWin32-x86-multi-thread
C:/Perl/site/lib
C:/Perl/lib
.
Also, it's only the listed modules that are affected, not all of them.
"Its not how hard you work, its how much you get done."
| [reply] [d/l] |
|
some searching seems to indicate that PPM itself (or at least the older pre-version-4 PPM) sets aside certain modules and makes sure to only load a given set of versions that are known to work together — best guess here is that when PPM runs, it messes with @INC so that the lib directory is in front of the site/lib directory so that it's sure of getting the versions that are known to work. Apparently, using the --precious flag will indeed do an install into the lib directory so that PPM will see it, but that- you don't actually have to do this since for all ordinary programs, site/lib will take precedence anyway, and
- if you install something stupid/b0rken into lib that causes PPM to break, this will be difficult to fix.
Things to try
- perl -mArchive::Tar -e "print $Archive::Tar::VERSION"
- perl -IC:\Perl\lib -mArchive::Tar -e "print $Archive::Tar::VERSION"
If the first gives you 1.82 and the second gives you 1.48-r1, then you'll know that you're indeed getting the later version for ordinary code, the only way the earlier version is even seen is if you mess with @INC, and PPM is evidently messing with @INC and so you don't actually have to do anything (i.e., if you can live with PPM itself seeing the wrong version...)
Or, if you're feeling adventurous you could try upgrade --precious on Archive::Tar and see what happens.
| [reply] [d/l] [select] |
Re: Puzzled by ppm
by Anonymous Monk on Feb 27, 2012 at 00:19 UTC
|
I have Activestate perl 5.8.9 (build 827) ... That is an unsupported version of perl for any platform
If you have a contract with Activestate , well, then you know who to contact for support, otherwise upgrade to 5.14.2
| [reply] |
|
Would love to upgrade, but must stay in sync with Perl version at work.
"Its not how hard you work, its how much you get done."
| [reply] |
Re: Puzzled by ppm
by syphilis (Archbishop) on Feb 28, 2012 at 06:33 UTC
|
You might also try ppm area sync and see if that does anything useful. (I really don't know if it does :-)
Cheers, Rob | [reply] [d/l] |
|
| [reply] |
|
That's interesting. What does ppm area list report ? It so happens that I have build 827 (in a largely-unmeddled-with form) and for me it reports that I have 2 areas:
site*: C:/_32/ap827/site/lib
and
perl: C:/_32/ap827/lib
I then get:
C:\_32>ppm area sync
Syncing site PPM database with .packlists...done
Syncing perl PPM database with .packlists...done
Do you have a 'user' area that hasn't been assigned a value ?
Cheers, Rob | [reply] [d/l] [select] |
|
|
|
|
|
|
|
| [reply] |
Re: Puzzled by ppm
by MidLifeXis (Monsignor) on Apr 05, 2013 at 17:26 UTC
|
I also ran across this. The cause appears to be modules were installed into C:\Perl\installdir, and my path at the time of the install as c:\perl\installdir. I made the two (PATH and the actual directory name) the same, removed site, and reinstalled my packages, and voila, all is well with the world.
Note that I did not start noticing this until _after_ I installed a module and reopened ppm-shell. Does not mean that it didn't have an issue, just that I did not notice it.
| [reply] [d/l] [select] |