# Preparing to Use Toaster

This chapter describes how you need to prepare your system in order to use Toaster.

## Setting Up the Basic System Requirements

Before you can use Toaster, you need to first set up your build system to run the Yocto Project. To do this, follow the instructions in the "The Build Host Packages" and "Yocto Project Release" sections in the Yocto Project Quick Start.

## Establishing Toaster System Dependencies

Toaster requires extra Python dependencies in order to run. A Toaster requirements file named `toaster-requirements.txt` defines the Python dependencies. The requirements file is located in the `bitbake` directory, which is located in the root directory of the Source Directory (e.g. `poky/bitbake/toaster-requirements.txt`). The dependencies appear in a `pip`, install-compatible format.

### Set Up a Python Virtual Environment

Set up a Python virtual environment that allows you to maintain a dedicated Python executable and its own set of installed modules. Doing so separates the executable from Python and the modules provided by the operating system. This separation avoids any version conflicts.

Creating a virtual environment is not absolutely necessary. However, doing so is highly recommended.

Follow these steps to set up your virtual environment. These steps assume a Ubuntu distribution:

1. Install `virtualenv`: Install the supported `python-virtualenv` package from your distribution rather than using `pip`.

            $ sudo apt-get install python-virtualenv

2. Create and Activate a Virtual Environment:

            $ virtualenv venv
            $ source venv/bin/activate

After setting up a virtual environment in which to run Toaster, you must initialize that virtual environment each time you want to start Toaster. Use the following to initialize the environment just before you start Toaster:

         $ source venv/bin/activate

### Install Toaster Packages

You need to install the packages that Toaster requires. Use this command:

         $ pip install -r bitbake/toaster-requirements.txt