# How to Create Local Debian Repository

<section id="bkmrk-why-to-create-a-priv">## Why to create a private Debian repository ?

So that to gain more control while updating and upgrading your `.deb` files, to be able to install exactly the files you used in your test environment, and, what is also important – to avoid so called “dependency hell”.

Follow the steps below to create a local Debian repository, that is recognized by Apt. Apt will use .deb files from the private repository and resolve the associated dependencies when you run the command to install the packages.

## 1. Install the dpkg-scanpackages tool

To do so, run the following command as root:

```
apt-get install dpkg-dev

```

## 2. Then, create repository directory and place packages there:

```
mkdir /path/to/repository
cp /path/to/packages /path/to/repository

```

## 3. Run “dpkg-scanpackages”

Switch to the repository directory and invoke the `dpkg-scanpackages` there:

```
cd /path/to/repository
dpkg-scanpackages -m . > Packages

```

This creates the `Packages` file holding the metadata for all packages in the newly created repository.

It is also possible to create a gzipped version of the `Packages` file - `Packages.gz`:

```
cd /path/to/repository
dpkg-scanpackages -m . | gzip > Packages.gz

```

## 4. Create a Debian configuration file for the repository

The configuration file (for example `myrepo.list`) should be placed under the `/etc/apt/sources.list.d/` directory and may look like:

```
deb [trusted=yes] file:/path/to/repository /

```

In the case when you’d like to share your repository over the network, e.g. to put it under `http://your-site.com`, the configuration file may look like:

```
deb [trusted=yes] http://your-site.com/your/repository/ /

```

or just use RpmDeb capabilities to create, host and distribute your packages worldwide without the neccessity to set up and maintain infrastructure.

</section>