NAME¶
carton-install - Install the dependencies
SYNOPSIS¶
carton install [--deployment] [--path=PATH] [modules...]
DESCRIPTION¶
Install the dependencies for your application. This command has two modes and
the behavior is slightly different.
DEVELOPMENT MODE¶
- carton install (no arguments)
- If you run "carton install" without any arguments
and if cpanfile exists, carton will scan dependencies from
cpanfile and install the modules.
In either way, if you run "carton install" for the first time (i.e.
carton.lock does not exist), carton will fetch all the modules
specified, resolve dependencies and install all required modules from CPAN.
If
carton.lock file does exist, carton will still try to install modules
specified or updated in
cpanfile, but uses
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
carton.lock file. It is important to add
carton.lock file into a version controlled repository and commit the
changes as you update your dependencies.
DEPLOYMENT MODE¶
If you specify the "--deployment" command line option or the
carton.lock exists and
cpanfile does not exist, carton will
fetch all remote modules and use the dependencies specified in the
carton.lock instead of resolving dependencies.
CONSERVATIVE UPDATE¶
"carton install" doesn't update the modules already installed into
local library path as long as the version is satisfied.
For example, one day you install URI-1.50 from CPAN:
> carton install URI
Successfully installed URI-1.50
Few weeks later, URI module is updated to 1.51 on CPAN. If you run the
"carton install URI" again:
> carton install URI
You have URI (1.50)
because you haven't specified the version number, carton won't update the module
in your local library path.
WARNINGS: following commands are not implemented
If you want to update to the latest version of CPAN, you can either use
"carton update" command, or specify the required version either in
your
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
carton.lock will be bumped.
OPTIONS¶
- --deployment
- Force the deployment mode and carton will ignore
cpanfile contents.
- --path
- Specify the path to install modules to. Defaults to
local in the current directory.