The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
=head1 NAME

Carton::Doc::Install - Install the dependencies

=head1 SYNOPSIS

  carton install [--deployment] [--path=PATH]

=head1 DESCRIPTION

Install the dependencies for your application. This command has two
modes and the behavior is slightly different.

=head2 DEVELOPMENT MODE

=over 4

=item carton install

If you run C<carton install> without any arguments and if I<cpanfile>
exists, carton will scan dependencies from I<cpanfile> and install
the modules.

=back

In either way, if you run C<carton install> for the first time
(i.e. I<carton.lock> does not exist), carton will fetch all the
modules specified, resolve dependencies and install all required
modules from CPAN.

If I<carton.lock> file does exist, carton will still try to install
modules specified or updated in I<cpanfile>, but uses I<carton.lock>
for the dependency resolution, and then cascades to CPAN.

carton will analyze all the dependencies and their version
information, and it is saved into I<carton.lock> file. It is important
to add I<carton.lock> file into a version controlled repository and
commit the changes as you update your dependencies.

=head2 DEPLOYMENT MODE

If you specify the C<--deployment> command line option or the
I<carton.lock> exists and I<cpanfile> does not exist, carton will
fetch all remote modules and use the dependencies specified in the
I<carton.lock> instead of resolving dependencies.

=head1 CONSERVATIVE UPDATE

B<WARNINGS: following commands are not implemented>

If you want to update to the latest version of CPAN, you can either
use C<carton update> command, or specify the required version either
in your I<cpanfile>.

 > carton update URI

 > cat cpanfile
 requires 'URI', 1.51;

Any of those will upgrade URI to the latest one from CPAN, and the
version specified in the I<carton.lock> will be bumped.

=head1 OPTIONS

=over 4

=item --deployment

Force the deployment mode and carton will ignore I<cpanfile> contents.

=item --path

Specify the path to install modules to. Defaults to I<local> in the current directory.

=back