How do you manage additional modules for your Perl installation?
Hello, I have several developer systems, where Perl is used heavily. The Perl modules that are delivered with SUSE or are available at the usual package repositories are not sufficient, more are needed. I would like to install additional packages that originate from CPAN and have the following features: -- to be able to query the system for installed packages and their version number. (This is not identical to query for a Perl module and its version number.) Something like rpm -q. -- to search for existing uninstalled packages. -- keep the Perl installations on all systems synchronized -- if possible, do not destroy the rpm -V verification for installed SUSE packages. Maybe there is a RPM repository of Perl packages that is as substantial as ActiveState's repository? The problem is that the amount of Perl RPM packages that I found out there is rather restricted, not even Email::* is there. (Functronics has a few, but that is still restricted.) As long as there is no such repository, I have the following two possibilities, AFAICS: -- Use CPAN.pm to install new packages and rsync to synchronize the changes to /usr/lib/perl5 at all systems. -- But what do I do about changes in /usr/bin? -- And, how do I query for installed packages and bundles? -- CPAN::WAIT is supposed to support searching -- does that work? -- Leave SUSE perl as it is and install a completely different Perl system (e.g., from ActiveState) in /opt or /usr/local. There I would have ppm, ActiveState's Perl Package Manager. Synchronization So, how do you handle Perl module updates? Do you just install it systemwide and don't care about knowing what is installed? Or is there any possibility that I missed? Cheers, and thanks in advance for any answer, Joachim -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Joachim Schrod Email: jschrod@acm.org Roedermark, Germany
Joachim Schrod wrote:
I have several developer systems, where Perl is used heavily. The Perl modules that are delivered with SUSE or are available at the usual package repositories are not sufficient, more are needed.
Hello Joachim, I think this is a common situation and I'm sorry I don't have a general answer. I think you will have better luck getting one on a Perl site and would specifically suggest <http://www.perlmonks.org/>. I asked a related question there a while ago and was pointed to these two threads that might help you: <http://www.perlmonks.org/?node_id=442165> <http://www.perlmonks.org/?node_id=552697> I take it you've already asked your developers for their opinions? A few comments of mine are below:
I would like to install additional packages that originate from CPAN and have the following features: -- to be able to query the system for installed packages and their version number. (This is not identical to query for a Perl module and its version number.) Something like rpm -q. -- to search for existing uninstalled packages. -- keep the Perl installations on all systems synchronized -- if possible, do not destroy the rpm -V verification for installed SUSE packages.
First, I believe there are two requirements for Perl that need to be considered: (A) Perl scripts that are packaged for the OS distribution, especially including those distributed by SUSE. I always use the pre-packaged perl and modules from SUSE for this requirement. (B) Perl programs and modules that your developers write. These will typically need additional or more up-to-date modules. I always use CPAN to install additional modules, not the SUSE packages. I use Perl's tools, not RPM. If I was a large shop, I would probably also put the Perl modules in Subversion. Perl's library search methods (PERL5LIB, @INC etc) and the difference between where CPAN and distro-packaged modules are installed allow you to make sure that the appropriate versions of library modules are used by each program. It is possible to run two separate versions of perl itself, but I have never found this to be necessary. It is simpler to run everything on the perl that SUSE supply, if at all possible.
Maybe there is a RPM repository of Perl packages that is as substantial as ActiveState's repository? The problem is that the amount of Perl RPM packages that I found out there is rather restricted, not even Email::* is there. (Functronics has a few, but that is still restricted.)
As long as there is no such repository, I have the following two possibilities, AFAICS: -- Use CPAN.pm to install new packages and rsync to synchronize the changes to /usr/lib/perl5 at all systems. -- But what do I do about changes in /usr/bin? -- And, how do I query for installed packages and bundles? -- CPAN::WAIT is supposed to support searching -- does that work?
I would use this system. Perl Monks can help with detailed questions. AFAIK, there are means to track all changes outside /usr/lib/perl5. It is also a very good idea to use a staging machine, I believe, to test the configuration.
-- Leave SUSE perl as it is and install a completely different Perl system (e.g., from ActiveState) in /opt or /usr/local. There I would have ppm, ActiveState's Perl Package Manager. Synchronization
I would avoid ActiveState. I have never used it but the number of times it comes up on mailing lists in the same sentence as 'problem' would make me nervous. It's useful on M$ systems, I understand, but I wouldn't try to use it on Linux. But if you're still keen, you should look at Randy Kobe's PPM repository <http://theoryx5.uwinnipeg.ca/ppms/>. HTH, Dave
participants (2)
-
Dave Howorth
-
Joachim Schrod