'br}
'br}
{\
cpan - easily interact with CPAN from the command line
# with arguments and no switches, installs specified modules cpan module_name [ module_name ... ]
# with switches, installs modules with extra behavior cpan [-cfgimtTw] module_name [ module_name ... ]
# with just the dot, install from the distribution in the # current directory cpan .
# without arguments, starts CPAN.pm shell cpan
# dump the configuration cpan -J
# load a different configuration to install Module::Foo cpan -j some/other/file Module::Foo
# without arguments, but some switches cpan [-ahrvACDlLO]
This script provides a command interface (not a shell) to s-1CPAN.s0 At the moment it uses s-1CPANs0.pm to do the work, but it is not a one-shot command runner for s-1CPANs0.pm.
Creates a s-1CPANs0.pm autobundle with CPAN::Shell->autobundle.
Shows the primary maintainers for the specified modules.
Runs a `make clean` in the specified module's directories.
Show the Changes files for the specified modules
Show the module details.
Force the specified action, when it normally would have failed. Use this to install a module even if its tests fail. When you use this option, -i is not optional for installing a module when you need to force it:
% cpan -f -i Module::Foo
Turn off s-1CPANs0.pm's attempts to lock anything. You should be careful with this since you might end up with multiple scripts trying to muck in the same directory. This isn't so much of a concern if you're loading a special config with f(CW*(C`-j*(C', and that config sets up its own work directories.
Downloads to the current directory the latest distribution of the module.
s-1UNIMPLEMENTEDs0
Download to the current directory the latest distribution of the modules, unpack each distribution, and create a git repository for each distribution.
If you want this feature, check out Yanick Champoux's f(CW*(C`Git::CPAN::Patch*(C' distribution.
Print a help message and exit. When you specify f(CW*(C`-h*(C', it ignores all of the other options and arguments.
Install the specified modules.
Load f(CW*(C`local::lib*(C' (think like f(CW*(C`-I*(C' for loading lib paths).
Load the file that has the s-1CPANs0 configuration data. This should have the same format as the standard CPAN/Config.pm file, which defines f(CW$CPAN::Config as an anonymous hash.
Dump the configuration in the same format that s-1CPANs0.pm uses. This is useful for checking the configuration as well as using the dump as a starting point for a new, custom configuration.
List all installed modules with their versions
List the modules by the specified authors.
Make the specified modules.
Show the out-of-date modules.
Ping the configured mirrors
Find the best mirrors you could be using (but doesn't configure them just yet)
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
Run a `make test` on the specified modules.
Do not test modules. Simply install them.
Upgrade all installed modules. Blindly doing this can really break things, so keep a backup.
Print the script version and s-1CPANs0.pm version then exit.
Print detailed information about the cpan client.
s-1UNIMPLEMENTEDs0
Turn on cpan warnings. This checks various things, like directory permissions, and tells you about problems you might have.
# print a help message cpan -h
# print the version numbers cpan -v
# create an autobundle cpan -a
# recompile modules cpan -r
# upgrade all installed modules cpan -u
# install modules ( sole -i is optional ) cpan -i Netscape::Booksmarks Business::ISBN
# force install modules ( must use -i ) cpan -fi CGI::Minimal URI
f(CW*(C`cpan*(C' splits this variable on whitespace and prepends that list to f(CW@ARGV before it processes the command-line arguments. For instance, if you always want to use f(CW*(C`local:lib*(C', you can set f(CW*(C`CPAN_OPTS*(C' to f(CW*(C`-I*(C'.
The script exits with zero if it thinks that everything worked, or a positive number if it thinks that something failed. Note, however, that in some cases it has to divine a failure by the output of things it does not control. For now, the exit codes are vague:
1 An unknown error
2 The was an external problem
4 There was an internal problem with the script
8 A module failed to install
* one shot configuration values from the command line
Most behaviour, including environment variables and configuration, comes directly from s-1CPANs0.pm.
This code is in Github:
git://github.com/briandfoy/cpan_script.git
Japheth Cleaver added the bits to allow a forced install (-f).
Jim Brandt suggest and provided the initial implementation for the up-to-date and Changes features.
Adam Kennedy pointed out that exit() causes problems on Windows where this script ends up with a .bat extension
brian d foy, f(CW*(C`<bdfoy@cpan.org>*(C'
Copyright (c) 2001-2013, brian d foy, All Rights Reserved.
You may redistribute this under the same terms as Perl itself.