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
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.
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 is a terminal window emulator that allows multiple tabs and multiple windos within a tab.
sudo apt-get install terminator
This is my prefered FTP client.
sudo apt-get install fillezilla
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 is my prefered command line editor.
sudo apt-get install vim
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 is my browser of choice, I always a build by getting my favorite browser installed.
Pencil is a great cross platform alternative to Visio, no development platform should be without it.
A quick and easy way to sync an share files across mulitple systems and users.
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.
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.