---
name: "Carton::Doc::Install"
section: "3pm"
platform: "linux"
package: "carton"
version: "1.0.35-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Carton::Doc::Install"
---

# Carton::Doc::Install(3pm)

Install the dependencies

## NAME

Carton::Doc::Install - Install the dependencies

## SYNOPSIS

```
  carton install [--deployment] [--cached] [--path=PATH] [--without develop]
```

## DESCRIPTION

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

### DEVELOPMENT MODE

- carton install

  If you run `"carton install"` without any arguments and if *cpanfile* exists, carton will scan dependencies from *cpanfile* and install the modules.

If you run `"carton install"` for the first time (i.e. *cpanfile.snapshot* does not exist), carton will fetch all the modules specified, resolve dependencies and install all required modules from CPAN.

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

carton will analyze all the dependencies and their version information, and it is saved into *cpanfile.snapshot* file. It is important to add *cpanfile.snapshot* 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 *cpanfile.snapshot* exists, carton will only use the dependencies specified in the *cpanfile.snapshot* instead of resolving dependencies.

## OPTIONS

- \--deployment

  Force the deployment mode. See "DEPLOYMENT MODE" above.

- \--cached

  Locate distribution tarballs in `"vendor/cache"` rather than fetching them from CPAN mirrors. This requires you to run `"carton bundle"` prior to the deployment and commit or sync the content of `"vendor"` directory to the other host you run `"carton install"` on.

- \--cpanfile

  Specify the alternate path for cpanfile. By default, `"carton install"` will look for the file `"cpanfile"` in the current directory, then upwards till the root directory, in case the command runs from a sub directory.

  Carton assumes the directory where your cpanfile (or altenate path) exists as a project root directory, and will look for the snapshot file as well as install directory (`"local"`) and `"vendor/cache"` relative to it.

- \--path

  Specify the path to install modules to. Defaults to *local* in the directory relative to where `"cpanfile"` is.

  **NOTE**: this option, as of version 1.0, is not preserved across multiple runs of `"carton install"` or other commands such as `"carton` `list"` or `"carton exec"`. You can choose to set the path in `"PERL_CARTON_PATH"` environment variable to persist it across commands.

- \--without

  By default, `"carton install"` will install all the phases for dependencies, including `"develop"`. You can specify phases or features to exclude, in the comma separated list.

  ```
    carton install --deployment --without develop
  ```

  **NOTE**: `"--without"` for the initial installation (without cpanfile.snapshot) is not supported at this moment.
