Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.


Installing Modules

How do I add PPM repositories? by missbarbell
Posted: 24 Apr 03 (Edited 6 Feb 05)

If you are using PPM (Perl Package Manager) from ActiveState, you may only be using ActiveState own repository to grab and install CPAN modules. However, there are many more repositories around the world, which hold many modules and packages that ActiveState haven't yet loaded into their repository.

By adding these extra repositories, when you type 'install <package>', instead of just looking in the ActiveState repository, PPM will search all the repositories in your list to find '<package>'. Below are instructu=ions of how to add the 11 most widely used repositories to your version of PPM.

PPM version 3:

The latest version of PPM now uses a different syntax to add repositories, so if using an older version see the next section.

Start your copy of PPM, either from the command line or via Start->Run and typing in PPM3. You should then get a nice black command window (the DOS window), which you should enter the following:

PPM> rep add DevelopHelp
PPM> rep add Roth
PPM> rep add PTK
PPM> rep add Theory
PPM> rep add Dada
PPM> rep add Jenda
PPM> rep add rto
PPM> rep add OpenInteract
PPM> rep add GA
PPM> rep add EPN
PPM> rep add JMC

You can search what repositories you have via the command 'rep' as in:

PPM> rep

to get a list of the repositories you have listed, the active one will be marked with a leading '*'. Then type

PPM> rep set X

where X is the number of the repository you want to search.

PPM> help rep

will give you more commands.

PPM older versions:

Older versions of PPM use a different syntax to the current release.

Start your copy of PPM, either from the command line or via Start->Run and typing in PPM. You should then get a nice black command window (a la DOS), which you should enter the following:

PPM> set repository DevelopHelp
PPM> set repository Roth
PPM> set repository PTK
PPM> set repository Theory
PPM> set repository Dada
PPM> set repository Jenda
PPM> set repository rto
PPM> set repository OpenInteract
PPM> set repository GA
PPM> set repository EPN
PPM> set repository JMC
PPM> set save

Installing non-ActiveState modules:

You can now access a larger number of PPM packaged modules, including mod_perl [1]:

PPM> install mod_perl

and Template Toolkit:

PPM> install AppConfig
PPM> install Template-Toolkit

[1] Further information about installing mod_perl can be seen at:

Known Issues:

There are some issues with the latest version of PPM, which can be read at:

Browsing ActiveState's repository:

To search through ActiveState's repository to see whether the module you require has been uploaded into their repository, go to:

Install Repositories from scripts

The first script,, installs the PPM::Repositories module. You should also be able to do this via PPM itself (or cpan or cpanp).


#!/usr/bin/perl -w
use strict;

use PPM

PPM::InstallPackage("package" => 'PPM-Repositories');

The second script,, reads through the current list of known PPM repositories, and adds those that are active and removes that are no longer used. I tend to use this whenever the PPM::Repositories module gets updated.


#!/usr/bin/perl -w
use strict;

use PPM;
use PPM::Repositories;

my @list = PPM::ListOfRepositories();
my %list = map {$_ => 1} @list;

for my $rep ( keys %Repositories ) {
    if($list{$rep}) {
        if(!$Repositories{$rep}->{Active}) {
            PPM::RemoveRepository(    "repository" => $rep,
                                    "save" => 1);
    } else {
        if($Repositories{$rep}->{Active}) {
            PPM::AddRepository(        "repository" => $rep,
                                    "location" => $Repositories{$rep}->{location},
                                    "save" => 1);

You should now have all the active PPM repositories loaded. Happy installing.

Back to Perl FAQ Index
Back to Perl Forum

My Archive


Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close