CPANPLUS::FAQ - Frequently Asked Questions about CPANPLUS |
CPANPLUS::FAQ - Frequently Asked Questions about CPANPLUS
This is the Frequently Asked Questions list for the CPANPLUS kit. More accurately, it's a very thin placeholder for where the FAQ will soon be.
The most up-to-date version of the FAQ can be found at the website http://cpanplus.sourceforge.net. This version of the FAQ may contain updates between code releases.
You can use the Setup.pm module, which will replace your existing configuration:
perl -MCPANPLUS::Configure::Setup -e 'CPANPLUS::Configure::Setup->init()'
For more information, refer to the CPANPLUS::Configure::Setup manpage.
CPANPLUS uses lazy loading, so index files are only fetched when you
start to use them (this means that if you leave the shell running for
5 days, they will only be fetched for your first search, not for one
you run several days later). If they are older than one day at that
time, they will be fetched. You can force a reload with the Backend method
$cp->reload_indices(update_source => 1);
, or the command x
in
the default shell.
The CPANPLUS bugs mailing list archive is available at http://www.geocrawler.com/lists/3/SourceForge/18022/.
Work-arounds to known bugs will probably be available in the most recent FAQ.
You only need one installation of CPANPLUS for all versions of Perl. As of version 0.04, CPANPLUS keeps different directories under its home directory for each version of Perl:
.cpanplus/ authors/ id/ # tarballs live here 5.6.0/ build/ 5.7.3/ build/
This prevents conflicts. You can install CPANPLUS for both versions of Perl and then point them at the same home directory for CPANPLUS. You can then invoke the CPANPLUS for a particular version with the -M command-line syntax:
perl5.6.0 -MCPANPLUS -e 'shell'
There is a caveat: 5.6.x and 5.7.x and higher are not binary compatible, which means that if you have the same version of storable for both Perl installs, storable will be confused and most likely read the stored source files incorrectly. This is not a problem if you have different versions of storable, because different source files are kept for each version of storable used.
You can also install just one version of CPANPLUS for one version of Perl, and, where appropriate, in the Backend methods, send another Perl binary as an argument:
perl => /home/kane/myperl/perl
to override the Perl you invoked the script with.
CPANPLUS currently only supports proxies with LWP::UserAgent. You will need to set your environment variables accordingly. For example, to use an ftp proxy:
$ENV{ftp_proxy} = 'foo.com';
Refer to the LWP::UserAgent manpage for more details.
The easiest way is to create a wrapper for shell which includes the modifications you desire. For instance:
#!/usr/bin/perl
BEGIN { $ENV{ftp_proxy} = 'current.domain.org'; }
use CPANPLUS; shell();
In versions before 0.04, CPANPLUS was designed to fetch initial files
exclusively from ftp.cpan.org on the assumption this site would always
be available. If CPANPLUS hangs during the initial fetch, it could
mean that ftp.cpan.org is unavailable. This is only a problem for
installation, as your own host list will be used once CPANPLUS is
installed. A work-around is to edit Config.pm-orig in lib/CPANPLUS
in the CPANPLUS directory. Under the hash key _ftp
there's a key urilist. Near that should be the line
'host' =
'ftp.cpan.org'>. Simply replace this host with another one.
The CPANPLUS interface will only be backwards-compatible with itself after version 1.0. This gives us a chance to correct and expand without being locked to an interface in early versions. Two things that have notably changed since the first version are the configuration and some Backend return values.
If it has to do with installing modules, most likely! Keep in mind that while the default shell may not be able to do something like ``install all modules in the POE namespace'', you can easily make something of the sort, using the CPANPLUS::Backend manpage.
The default shell is designed to be what the developers wanted in a shell.
If it doesn't do what you want, consider writing your own with the CPANPLUS::Backend manpage, and possibly releasing it in the CPANPLUS::Shell::* namespace. You can also change your default shell to be any other CPANPLUS shell you have installed.
Reliably under 5.005_03.
FreeBSD, Linux, Win32 Solaris, VMS, Darwin (Mac OS X) and Cygwin.
None.
Set makemakerflags
to something like this:
LIB=~/perl/lib INSTALLMAN1DIR=~/perl/man/man1 INSTALLMAN3DIR=~/perl/man/man3
Of course you should replace 'perl' with the appropriate directory.
Also, be sure never to use UNINST=1 in makeflags
.
Currently, it is not possible to have multiple setup files, so all users will use the same repository and configuration.
To do this you need to ensure that you have an up-to-date listing of modules so that if the most recent version of a module isn't found in the local mirror, CPANPLUS will try to get it from the external mirror.
In your setup, list only complete mirrors. This way you will get a current listing from one of them when you start CPANPLUS.
Next, add your local mirror at runtime so that it becomes the new first choice.
In this example a CD from another server on the network is added (leave off the host argument if it is on the local machine):
my $cb = new CPANPLUS::Backend; my $conf = $cb->configure_object;
$conf->_set_ftp(urilist => [ { path => '/mnt/cdrom', scheme => 'file', host => '//server', }, @{ $conf->_get_ftp('urilist') } ]);
Thanks to Nick Clark for asking this at the 2002 German Perl Workshop.
Ann Barcomb <kudra@cpan.org>.
The CPAN++ interface (of which this document is a part of) is copyright (c) 2001, 2002 Jos Boumans <kane@cpan.org>. All rights reserved.
This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.
the CPANPLUS::Backend manpage, the CPANPLUS::Shell::Default manpage, the CPANPLUS manpage, the CPANPLUS::Config manpage, the CPANPLUS::Configure::Setup manpage, http://cpanplus.sourceforge.net
CPANPLUS::FAQ - Frequently Asked Questions about CPANPLUS |