Virtually the Best Web Dev PC on the Planet

ubuntu penguin logo

This all-in-one reference guide steps out how to set up Linux Ubuntu Jaunty with all the trimmings for a fun box and a second-to-none web development system.

Er, hold on guv …

Isn't this guide a bit dated?


Unless you are still using Jaunty, this post is outdated because Ubuntu Karmic Koala 9.10 has superceded Jaunty 9.04, as have versions 10.04 through to 12.10, for that matter. Then again, most of the tutorials, last updated for Ubuntu's Karmic 9.10, do still apply.

For the 22-part guide for Karmic, which you can use as a general reference as opposed to a concrete guide, scroll down to the bottom of this tutorial, and happy tweaking.

guv (17th Feb 2013)

Here's the deal:-

  • 9.04 on a sole partition
  • performance tweaks ..
  • .. & enhanced usability
  • top software & multimedia picks
  • detailed security, ssh & Firefox configuration guides
  • software & Firefox addon guides for web developers
  • Nginx web server configured to reflect my remote VPS
  • Virtualbox serving up guest OS'es from within Ubuntu

Setup Unmanaged VPS (4 Noobs!) ... with vpsBible
Secure WordPress. Properly. ... with wpCop, the platform's dedicated security website
Olly 'the_guv' Connelly's site and 'WordPress 3 Ultimate Security' book.

What's the difference between the Desktop & Server editions?

Basically, the kernel. Server's is configured for the demands of a web server, Desktop's for those of a production environment. Otherwise:-

Ubuntu Desktop comes bundled with a suite of useful applications. Straight out of the box, you can surf the web, read email, create documents and spreadsheets, edit images, organise media and more. Desktop's graphic interface (GUI) makes it easy to see what you're doing.

Ubuntu Server is an OS that's cut to the bone. And there is no GUI.

Should I use Ubuntu Desktop or Server edition?

You could use either, whether for a local development requirement or to run your live web server (although it really would be a little eccentric to use Desktop for that.) Tailoring either is simply to add and delete whatever packages you want. For example, with Server, you can add a friendly GUI with a single command.

In practise, though, for most of us, we'd be better off using Desktop for home or office and, for 100% of us, using Server edition for a live server.

Installing Ubuntu Jaunty Jackalope 9.04

Run through this, step by step.

Burn an .iso Image to Bootable Disk

Download Jaunty's .iso image file here, whether in 32 or 64 bit. If you don't know how to burn an image to a disk, read this.

Now you'll have a bootable disk.

Mapping Out the Hard Drive

According to Ubuntu, “The install takes between 3-4gB hard drive space, and 8 – 10gB will be needed to run comfortably.” With my method, we're using the whole darn disk so, with my machine, for example, I'll have my setup rattling around a single logical partition of approaching 500gB, with a wee SWAP partition of a default-size few gB.

Inside Ubuntu's whopper slice, I'll be installing VirtualBox, ring-fencing about 30gB each for the guest operating systems I'll be running through that.

Jaunty Jackalope Installation

Last call: you have backed up your data, huh? Right, onward and upward.

  • Pop that disk into the tray and reboot the machine.
  • On rebooting, up pop the installation language options. Choose your setup lingo.
  • The Ubuntu CD menu opens. Choose “Install Ubuntu”. Things start loading up.
  • Click “Forward” on the “Welcome” screen and choose the OS language.)
  • Choose a timezone, click “Forward”.
  • Choose a keyboard layout, click “Forward”.
  • The partitioner kicks up.
  • On the “Prepare Disk Space” page, choose “Use the entire disk”.
  • On the “Personal Identification” screen, add the basic details and click “Forward”.
  • There's an installation summary on the “Ready to install” screen ..
  • And an “Advanced” tab. Most importantly, you can add a network proxy if you like, or just ignore it like me.
  • Back on the “Ready to install” screen, click “Install”.
  • Go make a cup of tea.
  • Your partitions will be formatted and Ubuntu installed. I guess you knew that.
  • When the “Installation Complete” dialogue box pops up, click “Restart now”.
  • When prompted, remove the disk from the tray and click “Enter” to reboot.
  • Up pops the login screen. Do.

*** Read this or my guide may not work ***

I like shortcuts, ‘cos I'm lazy like that. So ..

In the next section I'll be editing the bashrc file, which allows us to use simple command line aliases rather than having to remember and type long commands. (I suspect you'll like this.) If you do prefer to use the standard code, replace the aliases scattered around this tutorial with their corresponding syntax which can be found in the Edit bashrc for User-Friendly Terminal Syntax Shortcut Alias Whatnots section.

.. So, either way, you'd best read the next section πŸ˜‰

Some IFs

IF: you are scared of the command line interface and prefer using Synaptic Package Manager, else Applications > Add/Remove, or wonder why I use aptitude and not apt-get, read “apt-get vs aptitude vs Synaptic vs Add/Remove” just below here.

EDIT: 17th February 2013. Don't use aptitude because there are problems these days. Use apt-get instead. (And so much for “famous last words”!) πŸ™‚

apt-get vs aptitude vs Synaptic vs Add/Remove

apt-get An installation/removal method. As well as installing/removing packages, it installs automatically any dependency files.

aptitude Ditto apt-get. Except. When you remove with apt-get, it doesn't remember, and so doesn't remove, any dependency files. Aptitude remembers your installations, so when you remove something, it removes the dependencies too. There is a proviso to this advantage, and that is that any required dependencies are known by your machine prior to installation. To be safe, before installing with aptitude, run a quick “update”.

Synaptic The GUI equivalent of aptitude or apt-get, and includes other useful tools like the repository manager. I don't use it in this guide for installations. Why? Other than because it does the same thing, here are the steps involved:-

  • Open System > Administration > Synaptic Package Manager
  • Search for the program or package ***
  • Check the box “Mark for Installation”
  • Click the “Apply” button

*** Actually, this can be useful, as can the resulting package description.

Applications > Add/Remove A method not dissimilar to Synaptic. Again, it takes too long.

Using aptitude, on the other hand, and having amended our bashrc file:-

  • Open Applications > Services > Terminal (if it isn't already open)
  • Type install [package] or remove [package]

Result: As well as its great dependency file memory feature, aptitude = more time down the pub.

Linux. Built for speed .. and beer drinkers.

Edit bashrc for User-Friendly Terminal Syntax Shortcuts

Such is Linux, to make the most of it, we use the Terminal a whole lot. Let's make the experience a little less dour by editing the bashrc file. Open:-

.. and prompted, give the password you requested at the Ubuntu installation stage, if any.

Scroll to the bottom of the file and paste whatever you fancy from below, modifying the aliases to suit you:-

They're pretty self-explanatory but, to break down an example, this one is the shortcut to open this file, bashrc, for when we want more cool ‘cuts:-

  • alias ebrc tells bashrc we're issuing an alias directive, and that the alias itself will be “ebrc” (it could be mostly anything you like)
  • = well, it's an equal sign, obviously!
  • “nano ~/.bashrc” is the quoted, properly syntaxed command we would normally provide

So, instead of issuing nano ~/.bashrc, now all we need type is ebrc.

But. First, we must restart bashrc, by typing:-

In future, tho', with my example aliases above, instead of source ~/.bashrc, we just type ebrcupdate.

You may imagine, this bash thing is darnedly handy, especially when maneuvering about remote servers where you also have a jazzed up bashrc. I log into my VPS, for example, with this command:-

How handy is that? Especially for a bloke like me, who can barely remember which is the day of the week.

Got a personal favorite, or ten? Please share. I'll add the ones that aren't shortcuts to Viagra online.

Can't Access the Internet?

If you're using an ethernet cable, plug it in.

Wireless? Click the network icon, which is next to the speaker icon which is next to the date. On the resulting menu, click the name of your network (assuming your router is turned on), add your security key and click Connect.

If you notice the clock is wrong, BTW, just ignore it. It'll work itself out quickly enough.

Adding Repositories for Jaunty

Repositories store packages, online. Some are officially recognised and maintained, some are safer than others.

There are three ways to add extra repositories:-

  • using System > Administration > Synaptic > Settings > Repositories
  • by entering command line directives to the repositories file
  • by editing directly that file (/etc/apt/sources.list)

We'll do the latter. In each case, you need a key to use the repo, so we'll get that too.

About My Repository List

Essentially, this list opens up new package choices from Ubuntu's universe, multiverse, backport and Canonical’s partner sources, as well as adding repositories from some of the most useful vendors, with a slant for web developers. Some you may not want to bother with. I've included a line about what some of these things are for, and linked to where you can find out more.

My choices are are widely recognized as being safe. For sure I've had no problems and wouldn't recommend what I don't use. Nevertheless: Use them at your own risk!

For noobs out there, let me be specific, you are not downloading anything here, except the key to each repository you want to query and, when you update your records at the end of this exercise, the details of what packages are available from those repos (from which, if you like, you can download applications thereafter.)

Importing Repository Keys

Before you can see what's available in a repo, you have to unlock the resource. So, 10 repos? .. that's 10 keys. Let's get them. Look at the layout of my sources.list file. A typical entry reads:-

Note the line that begins # sudo apt-key adv. There is your repository-specific key-request command. So, minus the ‘commenting-out' #, for each repo you want, paste just that line into your Terminal, like this, hit return and it'll download, unlocking the repo:-

.. You can paste a bunch of them in one go, too, pasting something like this:-

For each, you'll receive back a message saying the key has been imported.

Editing /etc/apt/sources.list

Open and edit your repository file:-

.. delete its content, or copy that to somewhere else for now if you prefer, (then bin it in a moment anyway.)

Now paste your edited version of my list or, if you like, just copy the lot:-

Save the file.

Updating the Repository Records


Getting Errors?

Likely you're getting an error or three, reading something like:-

The reason you're getting that, is because you haven't imported the key, for whatever reason, but basically because you have been a thoroughly disorganized chap πŸ˜‰

Of the error message: that last line, ignore it.

Of the first line: there's a hexidecimal number, in this case 4FEC45DD06899068.

Remember our key-request command?:-

OK, swap that number on the end for the one in the error message, for each of the error messages, inputting them as before in the Terminal or, for this error:-

Then have another go:-

Upgrade Linux Ubuntu

Once you have repositories set up, with your system updated to reflect what upgrades, patches, packages, software, libraries and so on are available, it's time to upgrade.

Upgrading Ubuntu is a bit like running Windows Update (except you're not unwittingly downloading a bunch of spyware, bloatware, control_freakware, or just_generally_we_don't_care_about_buggering_up_your_PC_ware.)

.. Er, and it's quicker, to the point that you no longer take an enforced vacation while a service pack installs. Type:-

.. if a new kernel is amongst the new files, you'll be prompted to restart your PC.

It won't be possible to upgrade our Ubuntu version yet because, as it stands, Jaunty is the latest but, when Karmic Koala comes out in a month or so, you can upgrade the OS with the command:-

At this point, if you're new to Linux, you may be forgiven for allowing just a little bit of resentment to pass through you, for all those hours you've spent at Windows Update, not to mention their damn reboot demands.

Peace, love and penguins.

Some Miscellaneous Housekeeping

Just a few things I like to do to get things running, well, just so. Hey, let me know what tweaks you use to improve your desktop environment, usability & productivity.

Speed Up Ubuntu

Other than 1. removing unneccessary apps and 2. removing the graphical effects, you can 3. stop unnecessary services with sysvconfig:-

With that open, enable or disable, possibly quite a few, most likely from the following services:-

Service Description
apmd for laptops and/or if you use UPSi
apport notifies the ubuntu makers of your pc errors
avahi-daemon printer/scanner service
bluetooth for bluetooth
brltty for accessability
cups for printing
dns-clean dial-up modems
hotkey setup laptop thing
laptop-mode laptop thing
pcmciautils laptop thing
ppp-dns for old ADSL modems
readahead remove
readahead-desktop remove
rsync remove
samba for windows lan
saned for scanners
windbind for samba
wpa-ifupdown for wifi

Click OK > Finished > Quit

Restoring Backups

If you're migrating from a previous Ubuntu OS, you'll have backed up various folders, especially from your old /home/username directory. Just pull them into the new /home/username directory.

Speed Up Ubuntu Boot Time with GRUB

The GRUB menu is the thing that pops up on boot, asking which OS to load for dual or multi-boot machines, and in what operating mode (ie safemode/recovery/etc).

If you wanna be ultra careful, first, backup GRUB:-

By default, GRUB gives you 3 seconds to choose an OS. In effect this is a waste of time, as all you need do is to hold down the Escape key to enter the menu anyway. So, to make that 0 seconds, open the file:-

.. look for ..

.. changing the 3 to 0

Personalise Ubuntu's GRUB Boot Menu

If you do want the menu but prefer to change the default settings, maybe to reduce the countdown using a GUI, else to add a background logo or pretty color, the safest way is using Startup-Manager, a GUI tool.

Install the tool:-

Run it as root:-

.. and have a play.

Remember Running Applications on Reboot

Often we need to reboot but find it annoying to have to reopen our work.

System > Preferences > Startup Applications > Options > check “Automatically remember running applications when logging out”

Add Extra Fonts

Let's make our PC a bit more font-friendly. We'll add a directory and install some extras:-

.. followed by any of these ..

.. or just be lazy and have the lot:-

Add Launcher to Panel

A launcher is a shortcut to whatever, and the panel is the top bar on the desktop.

Being a shortcut kind of a guy, now I'll add a couple of these, and save wading through a menu. Personally, I do this for Tomboy notes, which I find invaluable, and the Terminal, which is essential, by navigating:-

Applications > Accessories > right click on Terminal/Tomboy/whatever else > Add this launcher to panel

File Management Preferences

This is a personal thing, not necessary at all. I just like my file management a little tweaked, so I open a folder, under the Places menu, and then:-

Edit > Preferences

On the Views tab:-

  • elect to View new folders using List View, to see more details
  • check to Show hidden and backup files

On the Behavior tab:-

  • check Single click to open items (why waste 2 clicks when you can use 1?)
  • uncheck Ask before emptying the Trash or deleting files

On the List Columns:-

  • check to add Group, Owner & Permissions

There are other handy options, especially for Media .. I'll leave those alone for now, until I've installed my preferred media players.

Speakers & System Beep

Another bit of house-keeping, for workstations anyhow .. to turn off those sodding annoying system beeps, goto:-

System > Preferences > Sound > uncheck “Play alert sounds”

But. Disabling the PC speaker, in favor of using external speakers, can be more tricky.

Try by opening:-

.. and appending the lines:-

Reboot your Ubuntu PC.

If that doesn't cut it, open:-

.. and add the lines:-

Reboot the box.

And if that doesn't work, as it didn't for me and you can't be arsed be mess around anymore, try:-

Opening the PC case and ripping out the bloody speaker wires.

I guarantee the last solution works πŸ˜›

Hack-Proofing Ubuntu

This section of the guide weighs the basic firewall & anti-virus options for sole Linux PCs & network clients. It analyses security concerns, linking to some of the finest reference about iptables and the overall topic.

(OK, it's dull as s-h-1-t, but if you have any doubt then skim through it, and I'll try to make it as painless as possible.)

Thing is, I can't bring myself to write up a tutorial like this, where effectively you're putting your business, to whatever extent, in my hands, without a word of caution.

Yes, Linux is safe, strikes me. Essentially it is, with a system where you as ‘root', else a priviledged Super User, would have to execute a virus or port-opener, to compromise things.

Then again, you know what? I've done that very thing in my silly-sod past, and who knows what clever hack-tactic may ensnare my inquisitive nature once again. Times change, knowledge develops, viruses evolve and ports may somehow be prised.

There are three trains of thought on this subject:-

  • Don't bother, the Linux permissions system is second-to-none, the rest is common sense
  • Use a Firewall to secure the ports, and don't ‘sudo execute' dodgy files
  • Use an anti-virus to help prevent the spread of any Windows-borne viruses to the Windows community, there's a fine fellow

I have sympathy with each. But ..

  • Don't bother: Never say never. At least, be aware.
  • Firewall: Well, I tend to agree with that. Then again, if you're behind, say, a decent router with a bundled firewall, you're sorted anyhow at no direct resource cost. And then again, again, you've already got Linux' in-built iptables, which is a configurable firewall. So why not just tighten that ruleset?
  • Windows anti-virus: If that's to protect the less aware Windows community then, bottom line, I'd say that lot needs to Google up (and for crying out loud stop wasting their wad on Symantic!) If it's to protect your Samba-networked Windows machines, you probably know the deal already. Aren't I mean? πŸ˜›

Fact is, different setups require different strategies, and a post such as this cannot provide anything other than a roundup of the options and a few pointers. Talking of which ..

Here are some options:-

Configure iptables

We're a little in the deep end here, to be honest. But like anything, it gets much simpler (just down the page, I promise) so take heart (as well as an aspirin.)

Installed by default, iptables can be tuned to your needs to provide super-strong defence, but the ruleset syntax requires some time to get to grips with. Some reference:-

  • Ubuntu kicks us off well with their Iptables how-to.
  • Scribd presents a flash animation introduction.
  • LinuxHomeNetworking do a great job of making this subject seem like something you actually might consider wanting to read about. OK, very vaguely. Hats off!
  • The Linux 2.4 Packet Filtering how-to provides a solid guide that doesn't, quite, make ones toes curl.
  • Oskar Andreasson is rightly recognised as a brilliant mind on the subject but his regularly updating Iptables Tutorial is somewhat of a choker to read, and best left 'till some understanding has been built up already. Nonetheless, this is the ultimate iptables guide, hands-down, from a guy that probably eats sudoku for breakfast, (if he didn't invent it, along with quantums, rockets and maybe China.)

Hmmn, let's apply the brakes a little. For the uninitiated, there is a better way!

UFW (Uncomplicated Firewall) Bundled with Ubuntu Jaunty

Not only does that sound appealing, but you've already got it, installed by default. It's just disabled until enacted.

Once enabled, you can input commands from the Terminal to create bespoke rules for the iptables, which as you may have gathered is rather easier than setting out the iptables ruleset directly. To make life even more uncomplicato – in fact pretty darn simple – there's a GUI called GUFW that can sit on top, effectively working as an iptables' dummy guide. Coupled with a little reading from above, playing with GUFW is a great way to gain fundamental understanding, fast.

I'm not gonna give you all the commands, because Ubuntu already did and these guides are terrific:-

  • UbuntuFirewall gives a general idea with a feature run-down and instructions for basic usage
  • Ubuntu Docs Firewall page expands on that in comprehensive, practically enjoyable detail and yes I realise I sound sad, as well as outlining a variety of alternative firewall solutions
  • The UFW Manual outlines all possible commands, with example usage

And for UFW's GUI, GUFW, check out:-

GUFW has a download link. Ignore that and, instead, type, imaginatively enough:-

And run it by typing the uniquely uncomplicated:-

Or, if you like, use the utterly uncomplicated menu:-

System > Configuration > Firewall Configuration

By contrast to ubergeek chessmaster Oskar Andreasson's scary iptable doctorate thesis, GUFW running on UFW really is for human beings, or more regular ones anyhow, with barely a whiff of intimidation. And the beauty, of course, is that the ABC knowledge of the one leads to a sincere interest in the geek alphabet soup of the other. Isn't that romantic?

Firewall with Firestarter

Not dissimilar to UFW, and again with its user-friendly GUI, Firestarter hooks into your pre-existing iptables.

While the tiniest bit more demanding, again Firestarter is pretty easy to use and there's a mighty simple manual to help. In fact, even if you go another route, but are a newbie and want some kind of iptable security solution, read that manual because it really is the Sesame Street of iptables.

To install it:-

And to run its wizard:-

When you're done configuring the wizard, a console will open and you can play with that too, for instance to start or stop the thing or see what ports are open. When you quit the Firestarter console and the panel icon disappears, it's firewall remains up, unseen. Even if you specifically stop the Firestarter firewall which, having configured and started it, you have to do from within the console or from the command line, you still have your iptables to protect you.

Anti-virus Protection

If you share via a Samba network, and think your colleagues may, shall we say, be a little Windozed (yeah, let's face it, I mean clueless), this option may prove valuable.

Look up AVG for Linux, for one.

And ClamAV is popular with Ubuntans (even if it does sound like an STD.) To install that:-

.. and add the repository:-

.. save that file, then add this key:-

Lastly, get it:-

And that really is quite enough about that. I mean, God's teeth! Are you still reading this? Well, I say, your stamina is estimable. Personally, I was asleep at the wheel.

Then again, I hope that's handy, not off-putting.

Source Compilation Tools

There are many compilers. So what the bejeebers are they?

Put simply, because I am plain simple, compilers compile source code packages into applications. Commonly, you download a package, along with some dependent modules perhaps and, at compilation stage, you issue a terminal command stating how you want the executable itself to behave. Other than those modular interests, for example, you may just want to tell the files where to live.

Let's install a commonly required compiler, “build-essential”. We'll need it later, for sure, when we configure the Nginx web server from it's source. We may need some others, like devscripts and fakeroot, but they're most likely to be installed automatically as dependency files. For now:-

Extend Linux by Installing Packages

With our repositories nicely set up, we're set to install some creamy warez. You won't want all this, but hopefully these choice picks give an idea or three.

Lemme know your suggestions. What have I missed or, of what's here, what shouldn't be?

Essential Packages

It can be hard to get by without these.

Software Description Installation Location
Java Runtime Environment (JRE) Many applications depend on this key framework. install sun-java6-jre sun-java6-plugin sun-java6-fonts to test type java -version
Adobe Air This Java-based platform is needed for running many rich internet applications, like TweetDeck. 32-bit
Download here.
cd /home/USERNAME/Desktop
chmod +x AdobeAIRInstaller.bin
sudo ./AdobeAIRInstaller.bin
Follow installer prompts.

Follow this guide, observing “John's comment”.

Applications > Accessories > Adobe Air Application Installer

System & Security Tools

Useful sys tools.

Software Description Installation Location
Ubuntu Tweak Configure Ubuntu to your heart's content, using just the one tool. install ubuntu-tweak Applications > System Tools > Ubuntu Tweak
Gtkorphan Find and delete unused dependencies. Gtkorphan is the GUI for deborphan which, when installed, does the same thing from the command line. install gtkorphan sudo gtkorphan
UFW The iptables manager UFW (Uncomplicated Firewall) is a default Jaunty install. GUFW is its handy GUI. I cover this, and the wider topic, in the section Hack-Proofing Ubuntu. install gufw System > Administration > Firewall Preferences
Clam AntiVirus Anti-virus with GUI, featuring email attachment scanning, a scalable multi-threaded daemon and a tool for auto updates. install clamtk Applications > System Tools > Virus Scanner
Clam AntiVirus (non-GUI) The command line equivalent. install clamav

Productivity Tools

Speed up common tasks with some of these tools:-

Software Description Installation Location
Gnome Do Mac-like desktop app-icons dock, with search and other productivity tools. install gnome-do Application > Accessories > Gnome Do
Nautilus-Dropbox Right click on item in Nautilus, using the Dropbox secure backup, sync and sharing services with 2Gb free space. install nautilus-dropbox right click in Nautilus
Globalmenu An OS X-style global menu alternative. Quite cool, esp if you went with Linux because you couldn't afford the Mac. install gnome-globalmenu
Nautilus Bundled Extras Make the Nautilus explorer more powerful, optional and personalised. Here is my pick of the crop:- see below
nautilus-actions Configure programs to launch. install nautilus-actions right click in Nautilus
nautilus-cd-burner Drag/drop files to burn to CD or DVD. install nautilus-cd-burner right click in Nautilus
nautilus-clamscan Adds a “Scan for viruses” item to the right-click menu. install nautilus-clamscan right click in Nautilus
nautilus-gksu Grant Super User privileges within Nautilus. install nautilus-gksu right click in Nautilus
nautilus-image-converter Mass-resize or rotate images. install nautilus-image-converter right click in Nautilus
nautilus-open-Terminal Open a terminal in arbitrary local folders. install nautilus-open-Terminal right click in Nautilus
nautilus-script-audio-convert Convert audio formats on the fly. install nautilus-script-audio-convert right click in Nautilus
nautilus-script-collection-svn Execute Subversion commands on selected files. install nautilus-script-collection-svn right click in Nautilus
nautilus-wallpaper Set your desktop wallpaper from the context menu. install nautilus-wallpaper right click in Nautilus

Or if you just want all the Nautilus Bundled Extras:-

Graphic Effects

You can already implement some striking effects (if your graphics card is up to the task) – System > Preferences > Appearance > Visual Effects > check Extra and reboot. Want more?

Software Description Installation Location
Simple CCSM This GUI ‘effects manager' customises what Jaunty has under the hood. Not only are the effects rather splendid, their functionality aids productivity. install simple-ccsm System > Preferences > Simple CompizConfig Settings Manager

Sound & video, players & codecs

Because, obviously, having AC-DC shrieking off in the background also aids productivity.

Software Description Installation Location
Players & Audio/Video Codecs These players cover the bases pretty nicely. install amarok gxine helix-player smplayer totem-gstreamer totem-mozilla vlc Applications > Sound & Video > [player]
A/V Codecs Bundle With this lot, you'll be able to open pretty much anything, encode, decode, and improve sound quality. Some media tag editors are included. install amarok-common easytag flac id3v2 ffmpeg ffmpeg2theora faac faad flac icedax id3tool lame liba52-dev libflac++6 libjpeg-progs libmad0 libmp4v2-0 libmpcdec3 libmpeg2-4 libmpeg3-1 libquicktime1 mencoder mpg123 mpeg2dec mpg321 mpeg3-utils mpegdemux mozilla-helix-player nautilus-script-audio-convert non-free-codecs sox tagtool toolame uudeview ubuntu-restricted-extras vorbis-tools
DVD support DVD doesn't play natively in Ubuntu. Here's the fix. install libdvdcss2 && sudo /usr/share/doc/libdvdread4/./
Gstreamer The streaming media framework. install gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-fluendo-mpegdemux gstreamer0.10-gnonlin gstreamer0.10-pitfdll gstreamer0.10-sdl gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-schroedinger gstreamer0.10-plugins-ugly-multiverse gstreamer-dbus-media-service gstreamer-tools
Boxee Media player with webTV support, said to be good but only for 32-bit systems. Free signup at

CD Burning & Ripping

Burning tip: Copy a cd or dvd to an .iso image by typing at the Terminal:-

Then, to create a copy of the original disk, insert a blank disc and right click on your new .iso file, choosing Write to disc.

Alternatively ..

Software Description Installation Location
Gnomebaker Bakes CD's and DVD's. install gnomebaker Applications > Sound & Video > Gnomebaker
K3b As feature-rich as Nero and, unlike still-proprietary Linux Nero, K3b is free. The alternative Brasero burner is installed by default. install k3b k3b-data k3b-i18n libk3b3 Goto Applications > Sound & Video > K3B
abcde Terminal-operated shell script to grab from CD to ogg or mp3, tagged. Superb. install abcde No GUI

Web browsers

I've added a special section just for Firefox installs, but this is for the rest.

Software Description Installation Location
Chromium Chrome for Linux, it's an open-source Webkit browser, for testing Safari too. I've included an element inspector. install chromium-browser chromium-browser-inspector Accessories > Internet > Chromium
Epiphany Alternative Webkit (GTK+) browser. I've included the extensions pkg for some handy tools. install epiphany-webkit epiphany-extensions Accessories > Internet > Epiphany
Galeon Quality browser running Mozilla's Gecko engine but no mod cons for speedy standards-compliant page rendering. install galeon Accessories > Internet > Galeon
Internet Explorer 7/8 HAHA .. only kidding!! We can install this on the Windows slice so, no worries, we'll have something to swear at. hell
Lynx The text-based browser, handy for usability-testing, or just when you've got a web 2.0 headache. install lynx Accessories > Internet > Lynx
Opera Sporting a Presto engine. install opera Accessories > Internet > Opera
Safari Incompatible with Linux, but it's Webkit so use one of the above. Can be installed on our virtual Windows slice, so only an extra couple of clicks away.

Graphics Development

A few graphics tools. Being a Luddite, I run Photoshop via my Virtualbox installation of XP. (PS CS2 works well thru' Wine too.)

Software Description Installation Location
GIMP Pimp your Gimp with these extras to improve the graphics equivalent of Adobe Photoshop. see below
gimp-plugin-registry Adds a repo of optional extensions. install gimp-plugin-registry Applications > Graphics > GIMP Image Editor
gimp-data-extras Extra brushes, palettes and gradients. install gimp-data-extras Applications > Graphics > GIMP Image Editor
Shutter A feature-rich screenshot program. install shutter Applications > Accessories > Shutter
Inkscape This vector graphics programme is the Linux equivalent of Adobe Illustrator. install inkscape Applications > Graphics > Inkscape
Blender Create 3D graphics. install blender Applications > Graphics > Blender
Picasa Advanced photo management. Download from and run the .deb Applications > Graphics > Picassa

Office Apps

Accounts, project management & similar office utilities.

Software Description Installation Location
Gnucash Personal finance tracking, supports multi-accounts, running/reconciled balances, double entry, expense cats, imports QIF & OFX files. install gnucash Applications > Office > Gnucash
Homebank More accounting for pyjama-clad developers, it's similarish to Gnucash, from what I've heard. install homebank Applications > Office > Homebank (I guess)
Dia Flowchart/diagram editor, rather like MS Visio. install dia Applications > Graphics > Dia
OpenProj Project management programme. wget && sudo dpkg -i openproj_1.4-2.deb Applications > Office > OpenProj
GEdit Improve Jaunty's default text editor with some handy plugins. install gedit-plugins Applications > Accessories > Text Editor

Communications Schtuff

Email, calendar, tasks, IM & VOIP Applications.

Software Description Installation Location
Mozilla Thunderbird Jaunty's standard, Evolution, is very good, with calendar and task management. Thunderbird is also pretty fine though, and the Lightning plugin can be bundled for calendar and tasks. install thunderbird Applications > Internet > Mozilla Thunderbird
Thunderbird Lightning The calendar and tasks functionality for Thunderbird. install lightning Applications > Internet > Mozilla Thunderbird
CheckGmail Gmail new mail notification widgetty thing. (Why not just set up Gmail & Thunderbird/Evolution for IMAP?). install checkgmail Goto Application > Internet > CheckGmail
Instant Messaging Multi-Client Pidgin is installed by default and, just before you bother adding another, it works with the majority of IM clients as well as a few chat networks. Applications > Internet > Pidgin Internet Messenger
Skype The grand-daddy of VOIP. Jaunty comes installed with an alternative, Ekiga. install skype Applications > Internet > Skype

P2P File Sharing

Just a few bits and bobs for torrents and donkeys.

Software Description Installation Location
Deluge An alternative to the Jaunty standard bittorent client, Transmission. install deluge-torrent Applications > Internet > Deluge Torrent
Azureus A Java-based equivalent. install azureus Applications > Internet > Azureus
Amule You guessed it, kinda like Emule. I think that's a play on words or, in donkey speak, a neigh play. install amule Applications > Internet > aMule
Amule-Gnome-Support Amule's web browser support package for Firefox and other browsers. install amule-gnome-support Check your browser

File Management Utilities

So that'll be apps that help organise the file system, then.

Software Description Installation Location
Archivers Unpack anything. install aish arj cabextract file-roller lha mpack p7zip-full p7zip-rar rar unrar sharutils unace uudeview zip unzip.
Glipper Extend clipboard functionality. install glipper Right click on panel > Add to Panel > drag Clipboard Manager to panel
Multiget A powerful http and ftp download manager. install multiget Applications > Internet > MultiGet
Subversion AKA svn, this is a version control system, used to keep favored applications, files, etc bang-up-to-date. In a local environment it's especially handy for project collaboration whilst, on a live server, it can be used to keep online apps safely patched. install subversion Mug up on this


Maybe there are other Google Apps or gnome plugins that you like?

Software Description Installation Location
Google Earth Some map thing. I can see my mum in her garden, but it could be the washing on the line. (Seriously brilliant and useful for planning a holiday or war.) install googleearth Application > Internet > Google Earth
Google Desktop Give Google access to more of your privacy. Intelligent local search using Google's algorithm, and much much more. Much. (Actually it's very good.) install google-desktop-linux Applications > Google Desktop > Google Desktop > Google Desktop Preferences, with a handy new icon on the panel too
Google Gadgets Clutter for your desktop. Sorry, am I cynical? Never tried it. Never will. But it is popular. install google-gadgets-gtk Applications > Internet > Google Gadgets, right click on the newly launched panel icon and something or other, this, that, I'll be down the pub.

Windows/OS Translators, Virtualizers, Emulators, Bagofpotaters, whatever they're called these days

Use Windows & other systems from within Linux.

Software Description Installation Location
PlayonLinux A wine fork, said to be better for games. Needs dual-boot with Windows. Forget it and use Setup a Virtual OS with Virtualbox (sure beats a dual-boot!) install playonlinux Applications > Other > PlayonLinux
Wine Translates Windows programs for Linux in a buggy kind of a way. Needs a dual-boot system with Winedows. Winedows, geddit?! Anyway, forget it and use Setup a Virtual OS with Virtualbox (sure beats a dual-boot!) install wine Applications > Other > Wine
Virtualbox Now you're talking! Run virtual OSes easily (this sure beats a dual-boot.) Read the section Setup a Virtual OS with Virtualbox

Extend Linux with Web Development Packages

If you're looking for the local web server setup guide, using Nginx, PHP, MySQL, Xcache and so on, read Create a Local Testing Web Server using Nginx. I use Nginx (for local and live servers) because it's low on resources, modular and benchmarks the best.

Browsers and other consumables are in the Extend Linux by Installing Packages section.

Otherwise ..

Software Description Installation Location
Quanta Plus Rather like Dreamweaver but less daunting, and not WYSIWYG. Having used both a lot, and having loved DW, I find Quanta to be not dissimilarly productive, but it does lack DW's wealth of extensions, community and development (and budget, huh!). For cranking code though, at least, it's excellent. install quanta Applications > Programming > Quanta Plus
Bluefish A GTK/HTML editor that some people rave about, but that I've never tried. I have included weblint and xmllint which it needs for validation. install bluefish weblint xmllint Applications > Programming > Bluefish
Komposer Basic WYSIWYG HTML editor. install kompozer nvu Applications > Programming > Kompozer
libphp-phplayersmenu A hierarchical menu system to prepare on-the-fly DHTML menus. install libphp-phplayersmenu
Seamonkey Born of Mozilla (pre-FF), this suite comprises a browser, HTML WYSIWYG, mail/news client, contacts and IRC, plus I added the Dom inspector. install seamonkey seamonkey-dom-inspector Applications > Internet > Seamonkey
MySQL Workbench A db design tool from MySQL .. Grab a deb file from .. Applications > Programming > NetBeans IDE
Drizzle Modular relational db optimised for Cloud and Net apps, a MySQL fork. install drizzle Applications > Programming > Drizzle
NetBeans Extensible java IDE for desktop, enterprise, web, and mobile applications. install netbeans Applications > Programming > NetBeans IDE
FileZilla The (Secure) FTP client, (but SCP via the Terminal is much better and I cover that here .. Maintain Unmanaged VPS – Part 10: Copy Site Files between Linux/Linux Computers with the CLI.) install filezilla Applications > Internet > FileZilla
Woopra A cracking web stats desktop client. Sign up for account and download from .. Applications > Other > Woopra

Configuring Firefox

With Ubuntu's standard repositories, you may not get the version you want. Let's look at that, straight after our profile configuration.

Firefox Profile Manager

Before I even open Firefox for the first time, I add my previously backed up profile. Move it into /home/user/.mozilla/firefox. To link to it:-

  • Close Firefox (if open)
  • Right click on the Firefox panel launcher icon, choosing ‘Properties'
  • Next to Command, it says firefox %u
  • Change that to firefox %u -p
  • Click close and click on the icon. As you see, the -p for profilemanager opens the dialogue
  • In the box, ‘Choose User Profile' ..
  • Click Create Profile > Next
  • Enter a profile name & choose your restored profile's folder
  • Click ‘Finish'
  • Reopen the Firefox panel launcher icon, choosing Properties, and reverting firefox %u -p to firefox %u
  • Open Firefox and, after a plugin compatability check, it kicks up
  • Marvel at your beautiful bookmarks and restored add-ons

Firefox Web Browser

There are various methods documented on how to upgrade or run dual Firefox packages. Most suck .. as have my methods until recently, but I think now I've researched a great solution.

I want two editions:-

  • the latest stable ‘security' release, generally not available from the repositories for Jaunty but it is from Mozilla, for day-to-day surfing and development. The upside is security, the downside is that there may be a few addons that don't work, and it's the latter reason that leads me also to want ..
  • a second, slightly older release from Ubuntu's Adding Repositories for Jaunty, by way of a backup browser
  • (some people may even want the bleeding edge release. Not me, it lacks security, has its quirks and would be a daily bandwidth drain, but I'll show you how to have that as well)

Firstly, for the regular Ubuntu edition, you've got it already and it'll upgrade any major security fixes as and when, just not as fast as Mozilla's stable release. Then again, unless you set Ubuntu to stop automatic upgrades, and especially from the point of view of those addons, this is a good fallback version.

To add the latest stable release:-

Go here and find the version number. Currently it's 3.5 but you may change below:-

To access the new version easily:-

On the Desktop, right click on the Firefox panel launcher icon, choosing Properties

Next to Command, it says:-

Swapping for the correct version, if it has changed, change that to:-

Open Firefox and, after a plugin compatability check, it starts. In Firefox, click thru Help > About, the version is updated.

If you need to revert back to the officially Ubuntu-supported release, simply pop back into the panel launcher's properties and revert the command from firefox-3.5 %u to firefox %u

To add the bleeding edge release, open the file:-

Adding these two lines:-

Reload the file:-

Provide the key, unlocking the download resource:-

And install, again currently the 3.5 version, but check here:-

To access the new version easily:-

Right click on the Firefox panel launcher icon, choosing Properties. Next to Command, it says:-

Swapping for the correct version, if it has changed, change that to:-

Open Firefox and like I say, after a plugin compatability check, it opens. Now if you open Firefox in the regular way, and click thru' Help > About, the version is updated.

Remember: To revert back to the officially Ubuntu-supported release, simply pop back into the panel launcher's properties and revert the command from firefox-3.5 %u to firefox %u.

Tip: Set up new launchers for different Firefox versions or just start them from the Terminal using commands like firefox or firefox-3.5

A footnote: A lot of people rave about Ubuntuzilla. All I can say is, I used it once, it did something weird, broke my Firefox upgrade, I had no browser functionality and ended up reinstalling Ubuntu from scratch. I read the wiki, followed the precedure and took no risks. Never again. But as I say, many people love it. Really though, with this method above, I simply don't see the point in the extra bloat anyway.

Setting Your Preferred Firefox Version in Application Defaults

Scenario: You have a URI on a Tomboy note. Click thru' it and it may open the wrong browser version, else throw the Cannot open location error.

To fix that, open:-

System > Preferences > Preferred Applications

Ensuring the Web Browser options is set to ‘Custom', in the Command box, type:-

.. where -3.5 is changed to your preferred default browser version. (Note: there is an s here, not a u.)

Changing the Language

  • Head to
  • In the ‘search for add-ons' box, type in your language
  • From the dropdown next to the ‘all add-ons' box, choose Language Support
  • Hit go
  • Install the newly downloaded language add-on and restart Firefox
  • From the Firefox menu, choose:-
  • Tools > Options > Languages > Choose > choose [language] > Add > Move language to the top of the list.

Extend Firefox with Web Development Addons

I use these, generally not all enabled at the same time. You can search for all these addons here:-

Firefox Addon Description preview for uncovering url behind shortened links
Capture Fox screen capture software
Codetch file editing from the browser
ColorZilla great color-picker
CoLT better link copy/paste facility
EditCSS browser-sidebar CSS editor
FEBE Firefox data backup
Feedburner Subscribers real-time stats
Firebug guess you know!
Google Toolbar googly stuff
Live HTTP headers view page headers while browsing
Live Pagerank displays for active url
lori (Life of request onfo) tracks like of request
Palette Grabber creates color palette from current page
QuickRestart adds restart option to “File” menu
Rankchecker check ranking for main search sites
Rankquest SEO Toolbar SEO toolbox
refspoof url referrer spoofing tool
Right-Click-Link tidies up Firefox tab management a bit
Save Complete saves a website
Scribefire nice browser-integrated blogging editor
SenSEO SEO page analyser
SeoQuake extensive SEO data added to search engine results pages
Seo Toolbar more SEO tools
Session Manager save Tabs/Windows state, great utility this
Sxipper alternative to Roboform on Windows
Tab control more browser tab management
Web Developer Toolbar guess you know!
Yellowpipe Lynx Viewer Tool see the page with Lynx
YSlow page performance tracking

Create a Local Testing Web Server using Nginx

The whole point of having a local web server setup is to test web apps before putting them live. To do that, ideally, you should be using the setup you have for your live server.

If you are using Apache, grandad, then you'd best set that up, ideally the way it has been set up on your server. There are loads of tutorials about that.

I use the state of the art Nginx on my VPS, recommend and write about it, so want it for my desktop too.

You can try it, as well as running Apache or whatever, to serve sites locally. If you do, you can share your web file locations between the servers.

By following the following links in order, and following the steps therein, let's set up the Nginx solution:-

.. just follow the visudo bit in there, adding your Linux username as shown in the file example in the post.

.. follow the lot.

Now point the domain to localhost, using the hosts file:-

.. add the line:-

To set up Nginx itself, follow this:-

Then this:-

And finally, if you play with WordPress, this:-

.. and, er, this:-

Want More Nginx Reference?

Check out Moving Day! How to Move Your Blog or Site for various tips, Add Web Sites Nginx Cheatsheet for adding extra sites thereafter and Maintain Unmanaged VPS (4 Newbies) .. V-P-S Admin for my 21-part guide on how to administer an Nginx web server.

.. that'll keep you busy πŸ˜‰

Remote Access with openSSH

You'll be wanting the openSSH protocol to communicate securely and efficiently with remote web servers.

I Have My Backed Up Key Files

openSSH is installed with Ubuntu Desktop by default these days, so all you need to do is to copy your pre-existing, backed-up private authentication keys to a new hidden folder in /home/username.

The first time you connect to the remote host:-

  • your local machine will ask you to type “yes” to confirm
  • the remote host will be added to your known hosts file
  • you'll be prompted for your keys' passphrase
  • and you're logged in

I'm a Total Noob So What's The Deal?

If you are setting up ssh or authentication keys for the first time, ***read this***

***read this*** doesn't link yet, sorry! It's written tho', so I'll wrap it in code and publish it on Thursday (2pm Spanish time, to be precise.)

If you don't know anything about ssh but do make regular remote connections with ftp clients like Filezilla, then you really, really should read that guide of mine. Save buckets of time, using supercool ssh πŸ™‚

ssh and bashrc – a Marriage Made in Geekdom

So, when you log into your remote server you type something like:-

If you'd rather just type something like:-

.. read the section on editing the bashrc file. Maybe you already did, sorry!

Setup a Virtual OS with Virtualbox (sure beats a dual-boot!)

Simply put, this is the bees-knees. Some may be tempted to call it the dog's danglies or the billy bollocks, but I couldn't possibly comment. It gives second-to-none Windows virtualisation, and is open source. Sun of a gun, it's a Sun Microsystem thing. It supports casing most OS'es.

Let me say more. Install and run guest OS apps practically seamlessly. With Windows, boot up, shut down and reboot it in a fraction of the time it takes normally to load or unload within a dual boot system or on its own (because a rack of those pointless services don't get cranked up). With VB – and especially the recently launched VB3 – you may well wonder why on earth anyone would bother with dual boot anymore, or apps such as Wine (which in fairness has been darned handy in the past).

I use Virtualbox for running non-Linux apps that to date have no equal, like Photoshop and Camtasia, and for testing Linux web and desktop setups. Currently I've got XP and Karmic Koala Desktop systems running through VB.

Note the Dynamic Kernel Module Support (DKMS) that is installed alongside. That's so that, when we upgrade to Karmic Koala, VB isn't cocked up by the updated kernel mods.

Notes on Installing Virtualbox

Installation is dead simple, just follow the prompts.

Regarding the RAM allocation, it depends how much you've got to spare but, bear in mind, the RAM will only be allotted to the guest while it's running.

Re. Disc space, again, it depends how much you can afford, or need, to give.

For instance, of my Linux host's 4gB RAM, 128 mB video card and 500gB disc space, I allocate 512 mB, 36mB and 30gB respectively to guests.

One config screen will tell you a new user group is being set up, called “vboxusers” and, of course, you need to be a member of that group. No worries ..

When installation has finished, pop open a Terminal and type:-

.. where username is your Linux username. So now you are a member of the Virtualbox group.

To start Virtualbox, goto Applications > System Tools > Sun Virtualbox

Installing Guest Operating Systems with Virtualbox

Once installed, open the app and click on “New”, and follow the instructions to install your OS, just as you would normally.

F'rinstance, if it's Windows XP, you can use my Perfect Windows PC Install to ensure security.

Installing Guest Additions

Guest Additions improve the performance of the guest OS, in a bunch of ways. Say, you want full screen? Course you do! Install Guest Additions.

To install them open Virtualbox, then one of the guest operating systems. The virtual OS dialogue appears:-

  • In the top left menu, goto Devices > Mount CD/DVD-ROM > choose your disc drive
  • Goto Devices > Mount CD/DVD-ROM > CD/DVD-ROM Image…
  • Up pops the Virtual Media Manager, possibly already displaying the file VBoxGuestAdditions.iso. If not, find it in somewhere like /usr/share/virtualbox/VBoxGuestAdditions.iso
  • Select the file and it's mounted on your guest OS, triggering the image's autostart
  • Follow the setup procedure

Creating Shared Folders

This is handy, for instance, if you want to create an image in Photoshop (via Virtualbox/Windows), before adding it to your local Linux-based web files.

If your guest Windows system is running:-

  • Goto Devices > Shared Folders > press the ‘Insert' button or click on the ‘+' icon
  • Type the folder path or browse for it
  • There are options for ‘read only' and whether you want the share to be permanent or temporary

If the guest OS isn't running:-

Open Virtualbox > click on Settings > click on Shared Folders .. and follow the above procedure

Now, use your guest as normally you would, were it a primary system, and switch back and forth between the host Linux and however many guest systems.

What more could you possibly want?

Let me know, and I'll add it in.

Hope that's handy.


About the Author:

Olly Connelly (yeah, that's me) blogs at, polices WordPress security at and helps noobs build web servers at, so if you've got sleeping problems you know where to come.


  1. chloe  August 6, 2012

    exactly what I used to be looking for.
    You’ve ended my 4 day lengthy hunt! God Bless you man. Have a great day. Bye

  2. the_guv  October 24, 2010

    @Don .. search for VirtualBox on this site .. that’s a great way to multi-OS without all the reboots.

  3. Don Rose (N6IQQ)  August 29, 2010

    Ubuntu new-bie. I want to buy a second hard drive exclusively for Ubuntu. Need very basic info, how 2 switch between Win XP, OS & Ubuntu. Want to get into security issue(s)immeadiately. Proxy. Goal is to bring some consistent extra income. Saw viedo in setting up proxy. I need some updated info on same topic. Point to some tutorials & books for me, please. You mentioned 5 or more other security related videos on web. Still looking 4 them.

  4. the_guv  January 9, 2010

    @JeanJean .. many taaa, crackin.

  5. JeanJean  December 24, 2009

    hey ! HELP ME A LOT ! YOOUR WEBPAGE ! πŸ™‚

  6. the_guv  October 23, 2009

    tx Michael .. appreciate that. New to me .. just installed DD now, and on restart will try that tip.

  7. Michael.Terence  October 17, 2009

    Hey Guv, I thought I’d share my favorite addon for firefox.

    Domain Details:

    Shows some of the info already presented above, but extends it by displaying it at the bottom of the browser window.

    I edit my hosts file A LOOOOOT, so if I just click on the IP address while on the site it re-checks it, clears the FF cache, and with a single click (and without restarting the browser) I can bounce back and forth between the same site, on different servers. It really speeds up development for me.


Add a Comment