Building an Ubuntu Linux Development Environment

This is the documentation for one of my current development environments. This development environment is geared towards full-stack web development using Ubuntu Desktop 12.04 LTS. Since my web server runs Ubuntu Server 12.04 LTS this gives me an matching server stack. I feel this will reduce the likelihood of issues arising from differences in the operating systems and installed software. I always recommend matching trying to match your production and development environments as closely as possible.

After the installation has completed and you have rebooted your machine you'll want to make sure you have all of the latest updates. I prefer updating using the command line.


sudo apt-get update
sudo apt-get upgrade

LAMP Stack

Installing the LAMP stack (Linux, Apache, MySQL, PHP) is extremly simple in Ubuntu.


sudo apt-get install lamp-server^   

See Building A Lamp Stack On Ubuntu for detailed information.

Applications

There are a few ways to install application on Ubuntu Linux; APT (via the command line), .deb packages, manual installs and the Ubuntu Software Center.

APT based installs

Apt is a commandline based package manager, when possible I prefer Apt to other methods of installation.

Terminator

Terminator is a terminal window emulator that allows multiple tabs and multiple windos within a tab.


sudo apt-get install terminator

Filezilla

This is my prefered FTP client.


sudo apt-get install fillezilla

Gimp

GIMP (GNU Image Manipulation Program) is a UX based, open source alternative to Photoshop.


sudo add-apt-repository ppa:otto-kesselgulasch/gimp
sudo apt-get update && sudo apt-get install gimp

Vim

Vim is my prefered command line editor.


sudo apt-get install vim

Git

Git is my version control system of choice.


sudo apt-get install git-core

Installation of .deb Packages

.deb packages are typically downloaded from the developers website and are installed by clicking the package from your ~/Downloads directory. Some packages invoke the Ubuntu Software Center to complete the installation and others use custom wizards. If your used to working with .exe files on a Windows platform, you'll have no trouble with these.

Google Chrome

Google Chrome is my browser of choice, I always a build by getting my favorite browser installed.
https://www.google.com/intl/en/chrome/browser/

Pencil

Pencil is a great cross platform alternative to Visio, no development platform should be without it.
http://pencil.evolus.vn/

Dropbox

A quick and easy way to sync an share files across mulitple systems and users.
https://www.dropbox.com/install?os=lnx

Manually Installed Packages

This will typically involve downloading some sort of an archived package and making something executable then running some sort of a build or install script.

Komodo Editor

Java and Netbeans

See Installing Oracle Java and Netbeans on Ubuntu for more details.

I have stoped using Oracle's version of java due to overwhelming security concerns. I have switched away from Netbeans because it doesn't play nice with OpenJDK (and it is really, really heavy).

TrueCrypt and Lastpass

See Installing TrueCrypt and LastPass on Ubuntu Linux for more details.

Packages Installed using the Ubuntu Software Center

Think of this an App Store for Ubuntu Linux, I use this only as a last resort.