Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

How does your distro handle Perl module installation ?

by szabgab (Priest)
on Jan 09, 2005 at 21:49 UTC ( #420754=perlquestion: print w/ replies, xml ) Need Help??
szabgab has asked for the wisdom of the Perl Monks concerning the following question:

After asking the monks what do they think about a Larger Perl distributions I have started to work on one.

Before going too much in the wrong direction I'd like to have a view on how various Perl distributions on different Operating systems (or OS Distributions) handle the process of installing (and uninstalling) the core Perl distribution and Perl modules from CPAN. As I don't have a wide experience with OS-es I'd appreciate your help in collecting this information.

To start with something I describe what I know. Or rather what I think I know. Please correct me where I am wrong and add more descriptions, or just point to pages where I can find the description.

ActiveState

ActiveState basically has 3 Perl distributions for 3 platforms:

  • Win32
  • Linux
  • Solaris

ActiveState on Win32

I have only used their Win32 distribution
  1. They take the standard Perl distributions
  2. sometimes apply some patches to the core
  3. add a few platform independent CPAN modules
  4. add a few Win32 specific modules
  5. make the installation location independent, that is, you can install it anywhere on your hard disk

They provide easy installation of additional pre-compiled CPAN modules via a command line tool called ppm. There are certain CPAN modules they don't distribute (e.g. the encryption related ones and those that fail their build system) for what you can usually find alternate ppm repositories.

ActiveState on Linux and Solaris

Are they different ?

Mandrake Linux

They have separated the core perl installation into several packages. (but what packages ?) The provide install/uninstal of Perl Modules via their standard RPM packaging.
How often do they update the RPMs from CPAN ?

Debian GNU/Linux

Debian (stable) has split the standard perl into 3 packages:

  • perl-base
  • perl-modules
  • perl-doc
Then for every CPAN module they also create a .deb package that you can install/uninstall with the standard Debian tools such as aptitude.
I am not sure how exactly is the core perl separated into the 3 packages. I don't know how often the .debs are updated from CPAN and if all the CPAN modules can be found as .debs

Perl source

Let me also describe the standard perl for the sake of completeness. The source code of the standard Perl distribution can be downloaded from CPAN compiled and installed anywhere on your hard disk. Then one can use the CPAN.pm module to install further modules.

Solaris

Read these messages starting here: How perl is shoehorned into Solaris

What about

  • FreeBSD
  • OpenBSD
  • OpenBSD
  • RedHat
  • Cygwin
  • AIX
  • WinCE
  • NetWare
  • IndigoPerl
  • ...

just to name a few ?

BTW there is a mailing list called perl-dist dealing with perl distributions. So if this subject is of interest to you, you might want to join it.

Comment on How does your distro handle Perl module installation ?
Re: How does your distro handle Perl module installation ?
by gaal (Parson) on Jan 09, 2005 at 22:21 UTC
    For Debian, apt-get install dh-make-perl and use the following to create and install a .deb:

    dh-make-perl --cpan Your::Module --build --install

    It makes .debs for simple packages easy, and for the hard ones, well, possible :-)

      What benefits does this give over just installing thru the CPAN shell?
        What benefits does this give over just installing thru the CPAN shell?
        Debian's package management system is, in a word, beautiful. I have a cron job run every night to pull over the list of the latest packages. Then, when I want to make sure that my system is up to date, I run 'apt-get upgrade', and all packages that have a newer version out there get upgraded. I'm not sure that I'd want this in an enterprise environment, but for me personally, it's a Good Thing. Also, with apt, you can have programs that use perl modules have apt dependencies for them.

        thor

        Feel the white light, the light within
        Be your own disciple, fan the sparks of will
        For all of us waiting, your kingdom will come

        A big advantage of doing it this way is you can create a standard install to roll out across multiple servers, all with the same versions of CPAN modules.

        The packages on the debian archive are usually out of date but with this tool (which I didn't actually know about until now), managing production enviroments becomes so much easier.

        In addition to the other replies: Once you make this .deb, you can install (and uninstall!) it on machines even if they are not connected to the internet or if they don't have a compiler installed. (In production environments, this is often the case.)
Re: How does your distro handle Perl module installation ?
by exussum0 (Vicar) on Jan 09, 2005 at 22:22 UTC
    You now install freebsd from either a package or /usr/ports, which is a method for creating packages as well. From the early adopters page on freebsd 5...
    Perl has been removed from the base system, and should be installed either from a pre-built package or from the Ports Collection. Building Perl as a part of the base system created a number of difficulties which made updates problematic. The base system utilities that used Perl have either been rewritten (if still applicable) or discarded (if obsolete). sysinstall(8) will now install the Perl package as a part of most distribution sets, so most users will not notice this change.
    The dependencies seem to solely be on shell and c. Maybe c++, but I haven't looked for the c++ to be definite. It's not in a move to distance itself from perl, just to have smaller number of tight dependencies. Thought I have to say, /usr/ports has a nice configuration management when it comes to installing perl modules. It's not as large as CPAN though.

    Mac OSX just comes with perl. It does get upgraded through software update. It comes with a few scripting languages by default. tcsh, python and ruby (aside from perl).

    ----
    Give me strength for today.. I will not talk it away..
    Just for a moment.. It will burn through the clouds.. and shine down on me.

      Just a note about Perl on Mac OS X.

      Apple does not update the Perl distribution during the lifecycle of a given major version of the system. For example, under Jaguar 10.2.6 it was the same Perl 5.6.0 that it was under 10.2.0 (which was used since 10.0). Similarly, under Panther (10.3.x) it's Perl 5.8.1 RC3.

      The source of the Perl Apple include in Mac OS X can be found on their opensource site.

Re: How does your distro handle Perl module installation ?
by Courage (Parson) on Jan 10, 2005 at 01:23 UTC
    here are my few bits of knowledge on question:

    1. AS does packaging of Perl (and Tcl, for one I know) much in more regular basis than earlier. It was 2 years between consequent releases 561 and 580, but now they released 584 and 586 versions quite soon after official release.
    2. Linux installation of AS perl has quite similar logic as on Win32, but they provide both RPM and TGZ versions
    3. cygwin... those are quite recent versions, I have it installed but don't know many. However interesting to note, perlTk could be built with X, and this is quite interesting to see...
    4. personally, recently I was pleased by RedHat binaries of Perl because they provided PPC linux binaries, which I was not able to cross-compile, but now, thank to them, I have GCC (to compiler newer perls) and recent perl (they also provide 586) on my PPC linux.
      so please consider their binaries as good quality ones.
      my PPC linux, BTW, is satellite receiver, I am very happy for it to run perl :):)
    5. WinCE binaries are available at SF site http://perlce.sf.net but those binaries are far from perfect, unfortunately. I even think WinCE port needs some kind of rework, but this is true for many WinCE ports (including tcl)

    Best regards,
    Courage, the Cowardly Dog

Re: How does your distro handle Perl module installation ?
by Errto (Vicar) on Jan 10, 2005 at 04:35 UTC
    The "perl" package on Fedora and Red Hat linux is just the Perl core, the standard documentation, and all modules that are considered core (with their XS portions precompiled, obviously). Shortcuts are created for perldoc, cpan, h2xs, etc. Certain other Perl modules are provided by separate RPMS with names such as perl-DBI, perl-DateManip, etc.
Re: How does your distro handle Perl module installation ?
by ikegami (Pope) on Jan 10, 2005 at 08:25 UTC

    "ActiveState on Win32" made "the installation location independent, that is, you can install it anywhere on your hard disk."

    Not quite. PPM (among others?) will fail unless you fix the paths in Config.pm. At least, that's the case for ActivePerl 5.6.1 (build 633, IIRC)

    Update: Oops, misread, yes, it can be installed anywhere. You can even move it after it's been installed if you update the paths in Config.pm (simple search and replace), and you fix the .pl file association (if you have one).

Re: How does your distro handle Perl module installation ?
by castaway (Parson) on Jan 10, 2005 at 08:57 UTC
    gentoo linux comes with a nice little script called 'g-cpan.pl' which creates its own portage packaging for CPAN modules that it hasnt seen yet, you just call "g-cpan.pl DBD::SQLite" or whichever module you require, and it will either tell you that the module already exists as a portage package (in which case you need to go type "emerge DBD-SQLite"), or it installs the module for you, creating a local package as it goes.

    My other distro, SuSE, has rpms of several modules, but doesnt keep them uptodate (new versions in new distro releases, but not inbetween, as far as Ive noticed).. I produce my own new RPMs of actual perl versions, and install modules by hand or with CPANPLUS on there.

    C.

Re: How does your distro handle Perl module installation ?
by stefp (Vicar) on Jan 11, 2005 at 10:39 UTC
    MandrakeSoft takes Perl very seriously because it is at the heart of the install process of their distro. So here what Garcia-Suarez, a Perl pumpking who works at MandrakeSoft, said to me on #perlfr, modulo what has been "lost in translation". I have filled a few blanks too.

    The Mandrake distro is divided in 2 "media". The main media is supported by MandrakeSoft; contrib is not. Additionally, there is update that contains security update. Finally, there is plf, that contains rpms packaged by the Penguin liberation Front. These packages have a dubious or incompatible legal status that makes them ineligible for distribution by Mandrakesoft.

    The core of Perl is split in 4 rpms: perl-base, perl-doc, perl, perl-devel. The perl-base rpm contains a minimum perl distro useful in the boot process where the whole Perl would be too big. The perl rpm is the rest of core perl minus perl-doc, that contains the doc and perl-devel that contains the C headers.

    Rafael is the packager of Perl and of 119 Perl modules as testified by: rpmmon -q rgarciasuarez@mandrakesoft.com | grep perl- | wc -l
    Other Perl modules are packaged by other people. The policy is to update immediately the update media when there is a security update for a perl module. Also, cooker, the experimental distro is fairly up to date. I am using cooker and does urpmi.update -a; urpmi --auto-select to keep my host up to date and I regularly see Perl related updates in the logs.

    There is a lot of stuff that is proper to Mandrake but can be of a larger interest. For example the MDK::Common package contained in the rpm perl-MDK-common. The urpmi command is a Perl script that is updated by rgs almost daily (but this is relevant only for people under cooker).

    Also, in the next major release MandrakeSoft will probably distribute the non threaded version of Perl as default. The rational is that threaded Perl is slow and buggy.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (8)
As of 2014-10-23 03:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (123 votes), past polls