So what version of PPM do you have?
I have always found the following to work best, especially with the latest version of ppm (version 3)
always ppm>search module
then describe module
then install module
If there is a version compatible with your perl/platform, then it'll get installed.
In this case, no such module available. Here is a session I just experienced using ppm3
ppm> s Email
Searching in Active Repositories
1. Log-Dispatch [1.80] Uniform logging interface to multiple ou
+tputs
2. Email-Find [0.02] Find RFC 822 email addresses in plain te
+xt
3. CGI-Untaint-email [0.03] validate an email address
4. Email-Valid [0.13] Check validity of Internet email address
+es
ppm> d 2
====================
Package 2:
Name: Email-Find
Version: 0.09
Author: MIYAGAWA Tatsuhiko (miyagawa@bulknews.net)
Title: Email-Find
Abstract: Find RFC 822 email addresses in plain text
Prerequisites:
1. Email-Valid 0.0
2. MailTools 0.0
3. Test-Simple 0.0
Available Platforms:
1. i686-linux-thread-multi
====================
ppm> rep desc 1
Describing Active Repository 1:
Name: win
Location: http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServe
+r
Type: PPMServer 2.0
ppm> rep desc 2
Describing Active Repository 2:
Name: PPM
Location: http://www.ActiveState.com/cgibin/PPM/ppmserver.plex?urn:/PP
+MServer
Type: PPMServer 2.0
ppm> rep desc 3
Describing Active Repository 3:
Name: crazy
Location: http://crazyinsomniac.perlmonk.org/perl/ppm
Type: Webpage
ppm> rep desc 4
Describing Active Repository 4:
Name: PPM3
Location: http://ppm-ia.ActiveState.com/PPM/ppmserver.plex?urn:/PPM/Se
+rver/SQL
Type: PPMServer 3.0
ppm> rep desc 5
Describing Active Repository 5:
Name: rto
Location: http://rto.dk/packages/
Type: Webpage
ppm> rep desc 6
Describing Active Repository 6:
Name: xray
Location: http://www.xray.mpe.mpg.de/~ach/ptk/ppm
Type: Webpage
ppm>
So what did I do next? well I went to http://search.cpan.org and downloaded it, and installed it (I had all the prerequisited and such).
Then, out of the goodness of my heart, I put all this stuff up on my PPM package repository.
So if you do a ppm> rep add crazy http://crazyinsomniac.perlmonk.org/perl/ppm you can use ppm to get and install it.
At my repository you can also find the following useful tidbit
=pod
one time, ppm was giving me grief, and would not install
a local copy of Wx, so I cracked it open, and I came up with
the following (I had extracted the tarball, and in my current
directory I had the blib directory, which is practically all
that a ppm package contains, so I typed 'perl' and then
pasted the following in. I could turn it into
a nice commandline program ... maybe I will sometime soon ;).
=cut
#!/usr/bin/perl -w
use Cwd;
use strict;
use Config;
use ExtUtils::Install;
use ActivePerl::DocTools;
my %current_package;
######################################################################
+####################
#$current_package{'NAME'} = 'Wx';
print "Enter the package name :";
$current_package{'NAME'} = <STDIN>;
chomp($current_package{'NAME'});
######################################################################
+###########
my $inst_archlib = $Config{installsitearch};
my $inst_root = $Config{prefix};
my $packlist = MM->catfile("$Config{installsitearch}/auto",
split(/-/, $current_package{'NAME'}), ".packlist");
# copied from ExtUtils::Install
my $INST_LIB = MM->catdir(MM->curdir,"blib","lib");
my $INST_ARCHLIB = MM->catdir(MM->curdir,"blib","arch");
my $INST_BIN = MM->catdir(MM->curdir,'blib','bin');
my $INST_SCRIPT = MM->catdir(MM->curdir,'blib','script');
my $INST_MAN1DIR = MM->catdir(MM->curdir,'blib','man1');
my $INST_MAN3DIR = MM->catdir(MM->curdir,'blib','man3');
my $INST_HTMLDIR = MM->catdir(MM->curdir,'blib','html');
my $INST_HTMLHELPDIR = MM->catdir(MM->curdir,'blib','htmlhelp');
my $inst_script = $Config{installscript};
my $inst_man1dir = $Config{installman1dir};
my $inst_man3dir = $Config{installman3dir};
my $inst_bin = $Config{installbin};
my $inst_htmldir = $Config{installhtmldir};
my $inst_htmlhelpdir = $Config{installhtmlhelpdir};
my $inst_lib = $Config{installsitelib};
while (1) {
my $cwd = getcwd();
$cwd .= "/" if $cwd =~ /[a-z]:$/i;
eval {
ExtUtils::Install::install({
"read" => $packlist, "write" => $packlist,
$INST_LIB => $inst_lib, $INST_ARCHLIB => $inst_archlib,
$INST_BIN => $inst_bin, $INST_SCRIPT => $inst_script,
$INST_MAN1DIR => $inst_man1dir, $INST_MAN3DIR => $inst_man
+3dir,
$INST_HTMLDIR => $inst_htmldir,
$INST_HTMLHELPDIR => $inst_htmlhelpdir},0,0,0);
};
# install might have croaked in another directory
chdir($cwd);
# Can't remove some DLLs, but we can rename them and try again
+.
if ($@ && $@ =~ /Cannot forceunlink (\S+)/) {
my $oldname = $1;
$oldname =~ s/:$//;
my $newname = $oldname . "." . time();
unless (rename($oldname, $newname)) {
return 0;
}
}
# Some other error
elsif($@) {
return 0;
}
else { last; }
}
|