---
title: "Using separate build and install commands"
date: "2024-02-14T06:18:38+00:00"
summary: "Optimize your Drupal site installation with separate build and install commands. Learn how to use Drupal Starter Kits to streamline your workflow, reduce redundancy, and customize your setup for different use cases."
image:
type: "page"
url: "/drupal-starter-kits/using-separate-build-and-install-commands"
id: "a00e1280-c8a1-40da-b7d1-c0c929eb6051"
---

Rebranding notice!

Acquia announces rebranding of its “Acquia CMS” offering, which includes a collection of Drupal modules. “Acquia CMS” is now referred to as “Drupal Starter Kits”.

The `./vendor/bin/acms acms:install` command builds Composer dependencies each time the command is invoked, irrespective of whether the dependencies are already installed. Therefore, with this command, the system performs redundant activities.

To prevent redundancy and optimize the build process, you can leverage the following commands:

*   [Drupal Starter Kits build command](#build-command): `./vendor/bin/acms acms:build`
*   [Drupal Starter Kits install command](#install-command): `./vendor/bin/acms site:install`

These commands are created as splits from the `./vendor/bin/acms acms:install` command. With the split commands, you can perform tasks based on your specific use case.

Drupal Starter Kits build command
---------------------------------

This command enables you to build your codebase once with Composer dependencies. The commands prompts you to answer questions that it can leverage to create the `build.yml` file. This file is then reused by the [Drupal Starter Kits install command](#install-command). Therefore, you do not need to execute Composer commands repeatedly.

To use the [Drupal Starter Kits build command](#build-command):

1.  Run `./vendor/bin/acms acms:build`.
    
    ![cms_starter-kit-build-command.jpeg](https://acquia.widen.net/content/kylrjd7iel/jpeg/cms_starter-kit-build-command.jpeg?position=c&color=ffffffff&quality=80&u=r1vkzh)
    
2.  Select the starter kit according to your use case.
3.  When prompted, enter your answers.
4.  Wait until Composer builds your project with the selected starter kit.
    
    ![cms_starter-kit-build-command-1.jpeg](https://acquia.widen.net/content/3f6c2jy3xk/jpeg/cms_starter-kit-build-command-1.jpeg?position=c&color=ffffffff&quality=80&u=r1vkzh)
    

Benefits
--------

### New customers

You can build your project once with the specific starter kit and use the generated `build.yml` file to install sites elsewhere.

### Existing customers

The [Drupal Starter Kits build command](#build-command) provides the `--generate` option to generate a `build.yml` file from the existing project architecture. The [Drupal Starter Kits install command](#install-command) can use this file to install the site anywhere.

    ./vendor/bin/acms acms:build --generate --uri <site_name>

Note

*   The `--generate` option creates a `build.yml` file without execution of Composer dependencies. It only prompts for questions for selecting the specific starter kit.
*   If you do not provide the `–uri` parameter, the command uses **default** as the default site name.
*   If you provide the `–uri` parameter, the command adds or updates information in the `acms/build.yml` with the specified uri.

![cms_starter-kit-build-command-2.jpeg](https://acquia.widen.net/content/l9ql5qixbj/jpeg/cms_starter-kit-build-command-2.jpeg?position=c&color=ffffffff&quality=80&u=r1vkzh)

Drupal Starter Kits install command
-----------------------------------

The `./vendor/bin/acms site:install` command installs the site by reading the `build.yml` file. This command checks the `acms/build.yml` file in the project root directory. If the `build.yml` file does not exist, the command checks in the `vendor/acquia/acquia-cms-starterkit/acms/build.yml` path and installs the site with default options.

*   If you do not provide the `–uri` parameter, the command checks for the default key in the `acms/build.yml` file and installs the site.
*   If you provide the `–uri` parameter and the `acms/build.yml` file exists, the command installs a site for the specified uri. If the specified uri does not exist in the `acms/build.yml` file, the command falls back to default and installs from default.

Note

The [Drupal Starter Kits install command](#install-command) leverages all the options provided by the `drush site:install` command. For example, `–uri`.

**Installing site from default**:

![cms_starter-kit-install-command.jpeg](https://acquia.widen.net/content/ojuh4dqnrk/jpeg/cms_starter-kit-install-command.jpeg?position=c&color=ffffffff&quality=80&u=r1vkzh)

**Installing site from given uri**:

![cms_starter-kit-install-command-1.jpeg](https://acquia.widen.net/content/vqjofipi6y/jpeg/cms_starter-kit-install-command-1.jpeg?position=c&color=ffffffff&quality=80&u=r1vkzh)