Provided by: cpanminus_1.7047-1_all bug

NAME

       cpanm - get, unpack build and install modules from CPAN

SYNOPSIS

         cpanm Test::More                                 # install Test::More
         cpanm MIYAGAWA/Plack-0.99_05.tar.gz              # full distribution path
         cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz  # install from URL
         cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz   # install from a local file
         cpanm --interactive Task::Kensho                 # Configure interactively
         cpanm .                                          # install from local directory
         cpanm --installdeps .                            # install all the deps for the current directory
         cpanm -L extlib Plack                            # install Plack and all non-core deps into extlib
         cpanm --mirror http://cpan.cpantesters.org/ DBI  # use the fast-syncing mirror
         cpanm --from https://cpan.metacpan.org/ Plack    # use only the HTTPS mirror

COMMANDS

       (arguments)
           Command  line  arguments can be either a module name, distribution file, local file path, HTTP URL or
           git repository URL. Following commands will all work as you expect.

               cpanm Plack
               cpanm Plack/Request.pm
               cpanm MIYAGAWA/Plack-1.0000.tar.gz
               cpanm /path/to/Plack-1.0000.tar.gz
               cpanm http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-0.9990.tar.gz
               cpanm git://github.com/plack/Plack.git

           Additionally, you can use the notation using "~" and "@" to specify version for a given  module.  "~"
           specifies  the  version requirement in the CPAN::Meta::Spec format, while "@" pins the exact version,
           and is a shortcut for "~"== VERSION"".

               cpanm Plack~1.0000                 # 1.0000 or later
               cpanm Plack~">= 1.0000, < 2.0000"  # latest of 1.xxxx
               cpanm Plack@0.9990                 # specific version. same as Plack~"== 0.9990"

           The version query including specific version or range will be sent to MetaCPAN to search for previous
           releases. The query will search for BackPAN archives by default, unless you specify  "--dev"  option,
           in which case, archived versions will be filtered out.

           For a git repository, you can specify a branch, tag, or commit SHA to build. The default is "master"

               cpanm git://github.com/plack/Plack.git@1.0000        # tag
               cpanm git://github.com/plack/Plack.git@devel         # branch

       -i, --install
           Installs  the  modules. This is a default behavior and this is just a compatibility option to make it
           work like cpan or cpanp.

       --self-upgrade
           Upgrades itself. It's just an alias for:

             cpanm App::cpanminus

       --info
           Displays the distribution information in "AUTHOR/Dist-Name-ver.tar.gz" format in the standard out.

       --installdeps
           Installs the dependencies of the target distribution but won't build itself. Handy if you want to try
           the application from a version controlled repository such as git.

             cpanm --installdeps .

       --look
           Download and unpack the distribution and then open the directory  with  your  shell.  Handy  to  poke
           around the source code or do manual testing.

       -h, --help
           Displays the help message.

       -V, --version
           Displays the version number.

OPTIONS

       You can specify the default options in "PERL_CPANM_OPT" environment variable.

       -f, --force
           Force install modules even when testing failed.

       -n, --notest
           Skip the testing of modules. Use this only when you just want to save time for installing hundreds of
           distributions to the same perl and architecture you've already tested to make sure it builds fine.

           Defaults to false, and you can say "--no-notest" to override when it is set in the default options in
           "PERL_CPANM_OPT".

       --test-only
           Run  the  tests  only, and do not install the specified module or distributions. Handy if you want to
           verify the new (or even old) releases pass its unit tests without installing the module.

           Note that if you specify this option with a module  or  distribution  that  has  dependencies,  these
           dependencies will be installed if you don't currently have them.

       -S, --sudo
           Switch  to the root user with "sudo" when installing modules. Use this if you want to install modules
           to the system perl include path.

           Defaults to false, and you can say "--no-sudo" to override when it is set in the default  options  in
           "PERL_CPANM_OPT".

       -v, --verbose
           Makes the output verbose. It also enables the interactive configuration. (See --interactive)

       -q, --quiet
           Makes  the  output even more quiet than the default. It only shows the successful/failed dependencies
           to the output.

       -l, --local-lib
           Sets the local::lib compatible path to install modules to. You don't need to set this if you  already
           configure  the shell environment variables using local::lib, but this can be used to override that as
           well.

       -L, --local-lib-contained
           Same with "--local-lib" but with --self-contained set.  All non-core dependencies will  be  installed
           even if they're already installed.

           For instance,

             cpanm -L extlib Plack

           would  install  Plack  and all of its non-core dependencies into the directory "extlib", which can be
           loaded from your application with:

             use local::lib '/path/to/extlib';

           Note that this option does NOT reliably work with perl installations  supplied  by  operating  system
           vendors  that  strips  standard  modules  from perl, such as RHEL, Fedora and CentOS, UNLESS you also
           install packages supplying all the modules that have been  stripped.   For  these  systems  you  will
           probably want to install the "perl-core" meta-package which does just that.

       --self-contained
           When examining the dependencies, assume no non-core modules are installed on the system. Handy if you
           want to bundle application dependencies in one directory so you can distribute to other machines.

       --exclude-vendor
           Don't  include  modules  installed  under the 'vendor' paths when searching for core modules when the
           "--self-contained" flag is in effect.  This restores the behaviour from before version 1.7023

       --mirror
           Specifies the base URL for the CPAN mirror to use, such as  "http://cpan.cpantesters.org/"  (you  can
           omit the trailing slash). You can specify multiple mirror URLs by repeating the command line option.

           You  can  use  a local directory that has a CPAN mirror structure (created by tools such as OrePAN or
           Pinto) by using a special URL scheme "file://". If  the  given  URL  begins  with  `/`  (without  any
           scheme), it is considered as a file scheme as well.

             cpanm --mirror file:///path/to/mirror
             cpanm --mirror ~/minicpan      # Because shell expands ~ to /home/user

           Defaults to "http://www.cpan.org/".

       --mirror-only
           Download the mirror's 02packages.details.txt.gz index file instead of querying the CPAN Meta DB. This
           will  also  effectively  opt out sending your local perl versions to backend database servers such as
           CPAN Meta DB and MetaCPAN.

           Select this option if you are using a local mirror of CPAN, such as minicpan when you're offline,  or
           your own CPAN index (a.k.a darkpan).

       --from, -M
             cpanm -M https://cpan.metacpan.org/
             cpanm --from https://cpan.metacpan.org/

           Use the given mirror URL and its index as the only source to search and download modules from.

           It  works  similar  to  "--mirror"  and  "--mirror-only"  combined,  with  a small difference: unlike
           "--mirror" which appends the URL to the list of mirrors,  "--from"  (or  "-M"  for  short)  uses  the
           specified  URL  as  its  only source to download index and modules from. This makes the option always
           override the default mirror, which might have been set via global options such  as  the  one  set  by
           "PERL_CPANM_OPT" environment variable.

           Tip: It might be useful if you name these options with your shell aliases, like:

             alias minicpanm='cpanm --from ~/minicpan'
             alias darkpan='cpanm --from http://mycompany.example.com/DPAN'

       --mirror-index
           EXPERIMENTAL: Specifies the file path to "02packages.details.txt" for module search index.

       --cpanmetadb
           EXPERIMENTAL: Specifies an alternate URI for CPAN MetaDB index lookups.

       --metacpan
           Prefers MetaCPAN API over CPAN MetaDB.

       --cpanfile
           EXPERIMENTAL: Specified an alternate path for cpanfile to search for, when "--installdeps" command is
           in use. Defaults to "cpanfile".

       --prompt
           Prompts  when  a  test  fails  so that you can skip, force install, retry or look in the shell to see
           what's going wrong. It also prompts when one of the dependency failed if  you  want  to  proceed  the
           installation.

           Defaults  to  false,  and you can say "--no-prompt" to override if it's set in the default options in
           "PERL_CPANM_OPT".

       --dev
           EXPERIMENTAL: search for a newer developer release as well. Defaults to false.

       --reinstall
           cpanm, when given a module name in  the  command  line  (i.e.  "cpanm  Plack"),  checks  the  locally
           installed  version  first  and skips if it is already installed. This option makes it skip the check,
           so:

             cpanm --reinstall Plack

           would reinstall Plack even if your locally installed version is latest, or even  newer  (which  would
           happen if you install a developer release from version control repositories).

           Defaults to false.

       --interactive
           Makes  the  configuration  (such  as  "Makefile.PL"  and  "Build.PL")  interactive, so you can answer
           questions in the distribution that requires custom configuration or Task:: distributions.

           Defaults to false, and you can say "--no-interactive" to  override  when  it's  set  in  the  default
           options in "PERL_CPANM_OPT".

       --pp, --pureperl
           Prefer  Pure  perl  build of modules by setting "PUREPERL_ONLY=1" for MakeMaker and "--pureperl-only"
           for Build.PL based distributions. Note that not all of the CPAN modules support this convention yet.

       --with-recommends, --with-suggests
           EXPERIMENTAL: Installs dependencies declared as "recommends" and "suggests"  respectively,  per  META
           spec.  When  these dependencies fail to install, cpanm continues the installation, since they're just
           recommendation/suggestion.

           Enabling this could potentially  make  a  circular  dependency  for  a  few  modules  on  CPAN,  when
           "recommends" adds a module that "recommends" back the module in return.

           There's  also  "--without-recommend"  and  "--without-suggests" to override the default decision made
           earlier in "PERL_CPANM_OPT".

           Defaults to false for both.

       --with-develop
           EXPERIMENTAL: Installs develop phase  dependencies  in  META  files  or  "cpanfile"  when  used  with
           "--installdeps". Defaults to false.

       --with-configure
           EXPERIMENTAL:  Installs  configure  phase  dependencies in "cpanfile" when used with "--installdeps".
           Defaults to false.

       --with-feature, --without-feature, --with-all-features
           EXPERIMENTAL: Specifies the feature to enable, if a module supports optional features per  META  spec
           2.0.

               cpanm --with-feature=opt_csv Spreadsheet::Read

           the features can also be interactively chosen when "--interactive" option is enabled.

           "--with-all-features" enables all the optional features, and "--without-feature" can select a feature
           to disable.

       --configure-timeout, --build-timeout, --test-timeout
           Specify  the  timeout  length (in seconds) to wait for the configure, build and test process. Current
           default values are: 60 for configure, 3600 for build and 1800 for test.

       --configure-args, --build-args, --test-args, --install-args
           EXPERIMENTAL: Pass arguments for configure/build/test/install  commands  respectively,  for  a  given
           module to install.

               cpanm DBD::mysql --configure-args="--cflags=... --libs=..."

           The argument is only enabled for the module passed as a command line argument, not dependencies.

       --scandeps
           DEPRECATED:  Scans  the  depencencies  of  given  modules  and output the tree in a text format. (See
           "--format" below for more options)

           Because this command doesn't actually install any distributions, it will be useful that by typing:

             cpanm --scandeps Catalyst::Runtime

           you can make sure what modules will be installed.

           This command takes into account which modules you already have installed in your system. If you  want
           to  see what modules will be installed against a vanilla perl installation, you might want to combine
           it with "-L" option.

       --format
           DEPRECATED: Determines what format to display the scanned  dependency  tree.  Available  options  are
           "tree", "json", "yaml" and "dists".

           tree    Displays the tree in a plain text format. This is the default value.

           json, yaml
                   Outputs  the  tree  in  a  JSON  or  YAML  format. JSON and YAML modules need to be installed
                   respectively. The output tree is represented as a recursive tuple of:

                     [ distribution, dependencies ]

                   and the container is an array containing the root elements. Note that there may  be  multiple
                   root nodes, since you can give multiple modules to the "--scandeps" command.

           dists   "dists"  is  a  special output format, where it prints the distribution filename in the depth
                   first order after the dependency resolution, like:

                     GAAS/MIME-Base64-3.13.tar.gz
                     GAAS/URI-1.58.tar.gz
                     PETDANCE/HTML-Tagset-3.20.tar.gz
                     GAAS/HTML-Parser-3.68.tar.gz
                     GAAS/libwww-perl-5.837.tar.gz

                   which means you can install these distributions in this  order  without  extra  dependencies.
                   When combined with "-L" option, it will be useful to replay installations on other machines.

       --save-dists
           Specifies  the  optional  directory  path  to  copy downloaded tarballs in the CPAN mirror compatible
           directory structure i.e. authors/id/A/AU/AUTHORS/Foo-Bar-version.tar.gz

           If the distro tarball did not come from CPAN, for example from a local file or from GitHub,  then  it
           will be saved under vendor/Foo-Bar-version.tar.gz.

       --uninst-shadows
           Uninstalls the shadow files of the distribution that you're installing. This eliminates the confusion
           if you're trying to install core (dual-life) modules from CPAN against perl 5.10 or older, or modules
           that used to be XS-based but switched to pure perl at some version.

           If  you  run  cpanm as root and use "INSTALL_BASE" or equivalent to specify custom installation path,
           you SHOULD disable this option so you won't accidentally uninstall dual-life modules  from  the  core
           include path.

           Defaults  to  true  if  your  perl  version  is  smaller  than  5.12,  and  you can disable that with
           "--no-uninst-shadows".

           NOTE: Since version 1.3000 this flag is turned off by default for perl newer than  5.12,  since  with
           5.12 @INC contains site_perl directory before the perl core library path, and uninstalling shadows is
           not necessary anymore and does more harm by deleting files from the core library path.

       --uninstall, -U
           Uninstalls a module from the library path. It finds a packlist for given modules, and removes all the
           files included in the same distribution.

           If you enable local::lib, it only removes files from the local::lib directory.

           If you try to uninstall a module in "perl" directory (i.e. core module), an error will be thrown.

           A  dialog  will  be prompted to confirm the files to be deleted. If you pass "-f" option as well, the
           dialog will be skipped and uninstallation will be forced.

       --cascade-search
           EXPERIMENTAL: Specifies whether to cascade search when you specify  multiple  mirrors  and  a  mirror
           doesn't have a module or has a lower version of the module than requested. Defaults to false.

       --skip-installed
           Specifies  whether  a  module  given  in the command line is skipped if its latest version is already
           installed. Defaults to true.

           NOTE: The "PERL5LIB" environment variable have to be correctly set for  this  to  work  with  modules
           installed using local::lib, unless you always use the "-l" option.

       --skip-satisfied
           EXPERIMENTAL:  Specifies  whether a module (and version) given in the command line is skipped if it's
           already installed.

           If you run:

             cpanm --skip-satisfied CGI DBI~1.2

           cpanm won't install them if you already have CGI (for whatever versions) or  have  DBI  with  version
           higher  than  1.2.  It  is  similar  to "--skip-installed" but while "--skip-installed" checks if the
           latest version of CPAN is installed, "--skip-satisfied" checks if a requested version (or not,  which
           means any version) is installed.

           Defaults to false.

       --verify
           Verify  the  integrity of distribution files retrieved from CPAN using CHECKSUMS file, and SIGNATURES
           file (if found in the distribution). Defaults to false.

           Using this option does not verify the integrity of the CHECKSUMS file, and it's  unsafe  to  rely  on
           this option if you're using a CPAN mirror that you do not trust.

       --report-perl-version
           Whether  it  reports  the  locally  installed perl version to the various web server as part of User-
           Agent. Defaults  to  true  unless  CI  related  environment  variables  such  as  "TRAVIS",  "CI"  or
           "AUTOMATED_TESTING" is enabled. You can disable it by using "--no-report-perl-version".

       --auto-cleanup
           Specifies the number of days in which cpanm's work directories expire. Defaults to 7, which means old
           work directories will be cleaned up in one week.

           You can set the value to 0 to make cpan never cleanup those directories.

       --man-pages
           Generates man pages for executables (man1) and libraries (man3).

           Defaults  to true (man pages generated) unless "-L|--local-lib-contained" option is supplied in which
           case it's set to false. You can disable it with "--no-man-pages".

       --lwp
           Uses LWP module to download stuff over HTTP. Defaults to true, and you can say "--no-lwp" to  disable
           using LWP, when you want to upgrade LWP from CPAN on some broken perl systems.

       --wget
           Uses  GNU  Wget  (if  available)  to download stuff. Defaults to true, and you can say "--no-wget" to
           disable using Wget (versions of Wget older than 1.9 don't support  the  "--retry-connrefused"  option
           used by cpanm).

       --curl
           Uses  cURL (if available) to download stuff. Defaults to true, and you can say "--no-curl" to disable
           using cURL.

           Normally with "--lwp", "--wget" and "--curl" options set to true (which is the default)  cpanm  tries
           LWP, Wget, cURL and HTTP::Tiny (in that order) and uses the first one available.

ENVIRONMENT VARIABLES

       PERL_CPANM_HOME
           The  directory  cpanm  should  use  to  store  downloads  and build and test modules. Defaults to the
           ".cpanm" directory in your user's home directory.

       PERL_CPANM_OPT
           If set, adds a set of default options to every cpanm command. These options come first,  and  so  are
           overridden by command-line options.

SEE ALSO

       App::cpanminus

COPYRIGHT

       Copyright 2010- Tatsuhiko Miyagawa.

AUTHOR

       Tatsuhiko Miyagawa

perl v5.36.0                                       2023-08-14                                          CPANM(1p)