Set Up A Basic Developer Environment

Before you begin

Before doing this, you might want to install the Development Release first.

Setup Launchpad Account

First thing you need to do is set up a launchpad account. We do most of our planning, task management, and team management on launchpad. Some launchpad teams have special privileges. The link for creating an account is:

To use launchpad fully, you'll need a GPG key, which is your virtual ID. To handle source on launchpad you'll need a SSH key (which is sort of like an actual key to a lock).

Create a GPG Key

GPG Stands for Gnu Privacy Guard.

Initially, you are required to have a GPG key in order to sign the launchpad Code of Conduct. As a developer you will be using the GPG key to sign things like changes to Ubuntu source packages. Other people will know you were the one who made the change to a package from looking at your gpg signature.

This key is your virtual identity, so be careful with it!

First, make sure you have installed gnupg:

$ sudo apt-get install gnupg

Creating the GPG key in a terminal

To create a GPG key, use this command in a terminal:

$ gpg --gen-key

Follow the instructions carefully. Choosing the default options is fine. Make sure to type in your real name and the email you want to have associated with your key. Choose a secure passphrase. If you loose the passphrase, there is no way to retrieve it.

Publish your key

Once you are done, you will need to publish your key to a server in order for it to be usable. First, you need to find out what your public ID is. To see all the GPG keys in your system, do:

$ gpg --list-keys

In this example, the public ID is F06EFAE2

pub   2048R/F06EFAE2 2012-11-12
uid                  Kaj Ailomaa (Debian/Ubuntu signing key) <>
sub   2048R/140030E5 2012-11-12

Now, publish your GPG key using your public ID:

$ gpg --send-keys <KEY ID>

It may take up to an hour before your key is published and ready to be used. There are alternative key servers to publish to, which may be quicker.

Your gpg keys end up in ~/.gnupg

Read more about GPG at the Ubuntu Community Wiki.

Create a SSH Key

SSH stands for Secure Shell. It's a method for connecting securely to remote places.

As a developer, you will need a SSH client in combination with a SSH key in order upload changes to Ubuntu source.

First, make sure you have install the SSH client:

$ sudo apt-get install openssh-client

Creating the SSH Key in a Terminal

To create a SSH key in a terminal:

$ ssh-keygen -t rsa

You can now find your keys in ~/.ssh/

Read more about SSH at the Ubuntu Community Wiki

Finish Setting Up Launchpad

Add the GPG key

First, get the fingerprint for your gpg key. In a terminal, do:

gpg --fingerprint

GPG will display a message similar to:

pub 1024D/12345678 2007-01-26
Key fingerprint = 0464 39CD 2486 190A 2C5A 0739 0E68 04DC 16E7 CB72
Geoffrey Hayes (My OpenPGP key) <>
sub 2048g/ABCDEF12 2007-01-26

Highlight and copy only the numeric fingerprint: 0464 39CD 2486 190A 2C5A 0739 0E68 04DC 16E7 CB72 in the example above.

In your launchpad profile page ( ), edit the OpenPGP Keys field. You will be asked to login, as a safety measure.

Under Import an OpenPGP key, paste your fingerprint. Now, click Import Key. (Remember, the key needs to be published before this will work.

Add the ssh key

First, let's get your public key. If you created it with the default file name, you can retrieve your public key with (notice that you have both a public and a secret key in ~/.ssh/):

cat ~/.ssh/

Copy the entire text that appers to your clipboard.

In your launchpad profile page ( ), edit the SSH Keys field. You will be asked to login, as a safety measure.

Paste the public key into the Add an SSH key field.

Sign Code of Conduct

In order for you to be able to upload source to launchpad, you will need to have signed the Code of Conduct. For this you need your gpg key. Go to for instructions on how to sign it.

Set up Debian variables

When building Debian source packages, the build tools will look for two variables. DEBEMAIL and DEBFULLNAME.

In your ~/.bashrc, add this (replace with your name and email):


These variables will be in effect next time you open a new Terminal shell.

Set up bazaar

Bazaar is a source version control system used in launchpad. First make sure you have installed it:

sudo apt-get install bzr

Then, add your name and email to ~/.bazaar/bazaar.conf by doing (replace with your name and email):

bzr whoami "John Doe <>"

Set up git

git is another, very powerful source version control system, and to be able to get source from github, or Debian source repositories, you will need to use git.

First, install git:

sudo apt-get install git

Then, let git know who you are (replace with your name):

git config --global "John Doe"
git config --global

Each git repo may have a .gitconfig file with your personal settings, but this is a global file, which you will find in ~/.gitconfig

Install some build tools

Get some tools needed for packaging.

sudo apt-get install ubuntu-dev-tools germinate python3-germinate fakeroot debhelper packaging-dev

CategoryUbuntuStudioDev CategoryUbuntuStudio

UbuntuStudio/SetupDeveloperEnvironment (last edited 2015-11-09 12:16:45 by zequence)