Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Packaging perl modules for installation

by Anonymous Monk
on Sep 27, 2004 at 20:10 UTC ( #394329=perlquestion: print w/replies, xml ) Need Help??

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

I have a strict production environment. It is running a standard Perl installation. That is, it has no CPAN modules installed. I would like to package CPAN module installations into our release procedures. I can use PPM or anything else to install packages on on development machine.

For production I would mike to just copy the correct files to the proper Perl directories in production. Is there one static directory that collects all CPAN files that get downloaded? Is this directory or directories guaranteed to have the same name and location in hierarchy for different Perl versions?

Maybe there is an easier way to package an installation. Does anyone have other suggestions? Since production is a locked down environment PPM is out of the question. I can use PPM or anything else in a development environment and then package up the modules for installation though. Any ideas?


  • Comment on Packaging perl modules for installation

Replies are listed 'Best First'.
Re: Packaging perl modules for installation
by jZed (Prior) on Sep 27, 2004 at 20:50 UTC
    If some of the modules you are using are XS modules and the machines have different perl versions, then you may not be able to simply copy files even if you knew the @INC locations.

    Since production is a locked down environment PPM is out of the question.

    Do you mean that using PPM to retrieve remote files is out of the question or that using PPM at all is out of the question? Assuming all your machines are the same platform and can all use binary compatible XS modules, and assuming it's just the remote access that is stopping you, you can download the .ppds onto your development machine, write a script that successively calls PPM on all of the local .ppds, then distribute the script + .ppds to all the production machines. Running the script on each machine will use that machine's perl and @INC to do the local install but won't have to connect to the internet.

    You could also do something similar with, but that would assume that is configured on all of the production machines.

      I can use PPM on a non-production machine so I think your solution will work. Thanks jZed.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://394329]
Approved by Arunbear
Front-paged by Courage
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2023-12-11 03:26 GMT
Find Nodes?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?

    Results (41 votes). Check out past polls.