How do you update your system Perl?
Although I'm an advocate of configuring and installing your own perl while leaving the system perl alone, I'd like to have a list of the various ways particular distros and package managers do it for the system perl.
- The package manager program (e.g. yum, apt-get)
- The package name(s) to get the standard distribution, including the docs, ExtUtils::MakeMaker, and everything else
- Does that package manager allows you to configure, per-package, the installation location.
- Discovering module packages (what is the name, version of the module, etc)
- Your distro version, if it matters (do some distros change package managers)?
I can make a chart here if people chime in with what they know about their system. I've seen scattered hints, but no where that pulls this all together for the various major distros.
I too tend to leave system Perl alone and use perlbrew, local::lib and friends for development, I use Gentoo as my main distro...
1. Package manager: Paludis (command line client is cave)
2. Package name: dev-lang/perl
3. I *think* it's possible but highly non-trivial
4. There is a convention for naming distro packaged modules, although it's not as strictly observed as Debian's, e.g. DateTime::Locale is dev-perl/DateTime-Locale - 'cave show dev-perl/DateTime-Locale' spits out various bits of meta data about available versions of the module including name, version, homepage etc.
5. Gentoo is a rolling release (not versioned), there is a choice of package managers of which Paludis/cave is a popular non-standard choice, Portage/emerge is default, although package names and available meta information don't vary across package managers
Hth
did anyone ever tell you that commenting with OpenID is broken? at least it doesn't work with my typekey, very annoying and a definite turn off. Had to register extra for here -- it only says
An error occurred: The sign-in attempt was not successful; please try again.
found quite some google results on that. Hope that can be fixed but looking at the bug tracker nobody cares?
Anyway let me do what I originally wanted and add a nice hint. For all those suseies out there, you can use
zypper wp perl(ExtUtils::MakeMaker)
to find out if there is any package providing the makemaker (happens to be in base perl package, of course). Caveat, it only works for repositories that you have configured, it won't tell you about remote repos. Unfortunately the "webpin" has been down forever so at the moment there is no way (known to me) query this.
The naming scheme though is usually following the perl-ExtUtils-MakeMaker pattern, so try
http://software.opensuse.org/search?q=MooseX-Declare
You will most definitely want to add the devel:languages:perl repository tree, which can be conveniently done using the 1click web installer, too.
Another very nice thing imho is the GUI package manager, check the Patterns/ Perl development. The command line to look at it is
zypper if -t pattern devel_perl
and don't forget to install the perl-doc package!
Not knowing anything about SUSE, I think I'm more confused after reading that than when I started. How do you update perl and which particular packages do you have to install to get the standard distro?
As for the OpenID stuff, I just post here. I don't run the joint.
Use ArchLinux on my laptop and on my Linode.
I let pacman manage and update my system perl as it sees fit. In addition, I have added a few optional packages such as CGI::Simple via pacman. Otherwise, I keep my own perls and module directories.
See also Perl Package Guidelines.
On Windows, I occasionally install the most recent version of ActivePerl. I use ppm to keep packages up-to-date and add modules to the system Perl. In addition, from time-to-time, I'll update my Strawberry and Cygwin perls as well as (much more rarely) build my own.
On my Mac, I am using perlbrew exclusively.
dpkg, dpkg-*
The dpkg tools are low-level package tools that AFAIK work only on single packages that you have on hand. These are the tools used to build packages from a source tree into a .deb file, then install that .deb file. Or to install downloaded .deb files (like dropbox_1.4.0_amd64.deb) that come from outside of the Debian repositories. Not recommended for normal use.
apt-get, apt-etc
The apt tools are the standard-ish tools for installing packages. Apt incorporates the Debian (or other) repositories and provides things like dependency checking, upgrading of installed packages, searching for packages, etc. It uses dpkg on the backside.
aptitude
This is a super-apt that incorporates a bunch of different apt-cmd functions into one application. It also has both cli and curses interface and adds some protection against shooting-in-the-foot and oh-you-may-want-this-also recommendations.
synaptic
Roughly the GUI version of aptitude. Very easy to use for searching package names, viewing details, selecting for installation/removal, etc.
others
I'm not sure if there are any others...
perl-base
The core system Perl that's needed for the system itself.
perl
The package you install when you the user want some Perl. It has dependencies on
perl-modules
A nice selection of extra modules including EU::MM
perl-doc
The docs. There is also a perl-doc-html that you can install for the pretty versions.
I'm not really sure. I would guess that dpkg may have a 'relocate' functionality to it, but I've never tried. Debian already splits some things out into a wide @INC
I'm not terribly sure of their logic.Modules are usually Foo::Bar -> libfoo-bar-perl, but some app-like things get real names (perltidy, cpanminus). Searching with aptitude or synaptic is pretty easy "aptitude search '.*-perl' and there is a 'Section: perl' in the package info that I'm sure there's some fancier way to search more specifically. With 'aptitude show package' you can find dependencies and version information, synaptic displays the version. I haven't had the need to find older versions of a module.
Debian sid, but AFAIK applies to all of Debian. Ubuntu has some differences in the core/doc packages.
There is also
dh-make-perl
that will package up simple Perl modules, even downloading them from CPAN.with the caveat:
For building modules you need the
build-essential
which gets you cc, make, libc-dev. And for finding missing things 'apt-file find -F <missing-file>' can find the package that provides the file you need (usually a libfoobar-dev package).the perl package in openSUSE is named "perl". It is installed by default. perl-doc is suggested by perl and can be installed separately. You can check version using the package manager, or you can check the package website. security updates are provided via patches. HTH