Checklist for fresh Ubuntu installs

Now don’t bash me just for installing proprietary and restricted software on my computer. I have no other option for the time-being. I am too a free software evangelist.

Each time I (re)install Ubuntu on my laptop or home PC or on a friend’s laptop, I always forget some or the other software which I have to download at a later date. This is sometimes troublesome if I don’t have net working at my home and take the laptop to a wired workplace to download the packages. Here are the packages which I usually download and you would always find it as a part.

This includes many proprietary softwares as well, if you know a good replacement, please do take pains to inform me about it.


  • Adobe Integrated Runtime (proprietary)
  • Java 6 (free)


  • Twhirl (proprietary)
  • Terminator (free)
  • xChm (free)
  • Inkscape (free)
  • TweetDeck (?)
  • K3B (free)
  • Scribus (free)

Networking (incl Internet)

  • Thunderbird (free)
  • Epiphany (free)
  • FileZilla (free)
  • WireShark (free)
  • XChat (free)
  • Opera (?)
  • KTorrent (free)
  • Bluetooth OBEX Server (free)

System Tools and Softwares

  • Yakuake (free)
  • VirtualBox OSE (free)
  • Konsole (free)
  • QGRUBEditor (free)
  • APTonCD (free)
  • Wine (free)

Programming (Editors + SDK)

  • Geany (free)
  • Glade Interface Desinger (free)
  • Komodo (proprietary)
  • Netbeans (free)
  • Qt Designer + Qt Creator (free)
  • Qt SDK (free)
  • GTK+ Development Headers (free)
  • Leafpad (free)
  • Emacs (free)
  • Amaya (free)
  • QT4 Linguist and Assistant (free)
  • MySQL (free)
  • Apache (free)
  • PHP (free)
  • SQLiteman (free)


  • VLC Media PLayer (free)
  • Amarok (free)
  • Banshee (free)
  • Scrobbler (free)
  • Miro Internet TV (free)
  • RealPlayer (proprietary)
  • Gstreamer Codecs (proprietary) (restricted)
  • Xine (proprietary) (restricted)


  • Dust Theme (free)
  • Nautilus Action Configurations (free)
  • Nautilus Open Terminal (free)
  • Compiz Config Settings Manager (free)

22 thoughts on “Checklist for fresh Ubuntu installs

  1. Install APT-on-CD. Allows you to burn a disk containing all the software you may want to install frequently on different systems. So you can create this one CD containing all the above software and when there’s a fresh Ubuntu installation, use the CD to install the software you want without needing to download.

    1. Yeah! That is what am doing all these days. The problem starts with when I install a new version.
      Each version has its own packages, non-version specific packages too work but this has led to a broken system once a year back.

      BTW APTonCD is my lifeline. I can’t live without it. Check my documentation on Ubuntu-in which I made a week back.

        1. Not only Firefox, the list is even bigger. Esp the versions of the above softwares
          VirtualBox and its modules which depend on the kernel versions.
          Wine and VLC are new in every release.

    1. Ninad,
      This is actually not a post aimed for setting a dev environment, but actually a list for setting up a base for dev environmnt. πŸ™‚

      I have not mentioned many dev packages which I do install usually as it can become too geeky at times.
      Some of those dev packages are fakeroot, sqlite3-dev, libnotify-dev and the list goes on and on. I would blog about them soon.

      BTW thanks for bookmarking this post. Do check back soon. πŸ˜€

    2. You can create your own metapackage with all the programs you need. So after a vanillainstall, you manually install the metapackage and that’s it. All you need is a control file such as the one below, and then repackage it with dpkg.

      Package: custompack
      Version: 0.1
      Section: main
      Priority: optional
      Architecture: all
      Depends: gwyddion, inkscape, kompozer, lyx, scribus, texmaker, grace, wine, build-essential, amarok, audacity, vlc, w32codecs, streamtuner, ffmpeg
      Installed-Size: 0
      Maintainer: me
      Description: Install a set of useful packages
      gwyddion, inkscape, kompozer, lyx, scribus, texmaker, grace, wine, build-essential, amarok, audacity, vlc, w32codecs, streamtuner, ffmpeg

      1. Nick,
        Thanks for telling how to make a metapackage. πŸ™‚

        I can give it a shot in the near future. If it depends on the version numbers of the packages, then I have to make it for each and every version that comes out.

        OTOH I can even put the wrapper packages as dependencies for this package. Like the name build-essential would be same for all versions. πŸ™‚

        1. Manish,
          I tried to learn how to make a metapackage from Nick’s post but could not.
          What is the command line to use the control file? Could you give an example command.

          1. Success! Thanks Manish,

            your second reference
            worked for me.

            For simplicity do this as root in /root
            (For Ubuntuers: $ sudo su — # cd /root )
            First create these exact folders package/DEBIAN
            mkdir -p package/DEBIAN
            in it put a simple text file named “control”

            My package/DEBIAN/control contains:

            Package: metapackagetest
            Version: 0.1
            Section: main
            Priority: optional
            Architecture: all
            Depends: gawk
            Installed-Size: 0
            Maintainer: Ridgeland
            Description: Testing Metapackage to install gawk

            now still root at /root
            dpkg-deb -b package package/metatest.deb
            This creates the package. Now gksudo nautilus and double click on the package. It installs gawk!

      2. Sorry if I was sketchy on details, I guess you guys figured out already (the time difference didn’t help)… Anwyay Ridgeland way is what I use. To summarize it:

        1. Make a folder “package” (or whataver name you want) inside ~ (or a folder of your choice)
        2. Inside this folder, make another one called DEBIAN.
        3. Place the control file (named: control) inside DEBIAN
        4. from ~ (/home/username), type:
        sudo dpkg -b package

        That’s it.

        There are several advantages about this procedure. Dependencies are all taken care off, so you can just place the main packages or metapackages, apt takes care of the rest.
        Second, If you want to remove all those packages, you can just simply remove the metapackage. By applying:

        sudo apt-get autoremove

        all the installed packages will be removed. A final advantage of this approach is taht you can create as many custom metalpakages depending on your target. I have one for a webserver, one for netbooks, one for laptops.

        One last point. In this same way you can actually make packages with scripts or small programs that you may have written. For example I have a bunch of scripts that I use heavily, and I want to have them available in my command line. So what I do, I can actually place them in the same metapackage (or make a new one, which is usually recommended), so those get installed at the same time. To do it:

        1. Make a folder “package” (or whataver name you want) inside ~ (or a folder of your choice)
        2. Inside this folder, make another one called DEBIAN.
        3. Place the control file (named: control) inside DEBIAN
        4. create another folder inside “package”. This folder be named according to the exact path where your script will need to be installed. So if it will go in /usr/local/bin (as it should), you have to create a set of nested folders: “usr”, “local”, “bin” and your script inside.
        4. from ~ (/home/username), type:
        sudo dpkg -b package


        1. Thanks Manish and NickF,
          Like Manish I have a list of every-time software and I (re)install to fresh partitions and other’s PCs. Today I made a metapackage for Ridgeland-games.deb (about 20 games). My approach now is save the /var/cache/apt/archives collection of debs I’ve already downloaded (not mixing 64-32bit) then on a fresh install copy in those debs to the new /var/cache/apt/archives and run the metapackage. It’s fast, almost no downloading. I did add medibuntu’s repository and do some CLI for it. I had unresolved dependencies for missing codecs I guess. I’ll make a few metapackages for other groups. I have a collection of scripts but I just straight copy them over.
          The second pass of medibuntu used a lot of deb I had but still downloaded a lot of ./something.exe where the something looked like font names. So I could not do this without the internet.
          Maybe this is the idea of Apt-On-CD but I like this better. I don’t have to select those 20 games each time, the metapackage selects them for me. And it reduces the problem of the forgot-that-one package.

  2. > Gstreamer Codecs (proprietary)
    Which gstreamer codecs are proprietary?

    > Xine (proprietary)
    Since when is xine proprietary?

    It looks like you are using too many solutions for multimedia. Except VCD/DVD playback there is nothing lacking in gstreamer. And since you are already installing VLC, why do you need xine as well?

    Same goes for amarok, banshee.

    1. Oh sorry! I again made the mistake. It should actually go in the category of ‘restricted’ or ‘non-free’. AFAIK there are still some legal problems in distributing codecs.
      These days I am making lots of mistakes and people point it out in the comments.
      Moral: Triple-check the post before hitting “POST”

      Yes, I use many different kind of multimedia players and related packages. Amarok need Xine, I was unable to play it using Gsteamer. Is it possible?

      I use VLC only for watching videos, not for music tracks.

      I install more than one media player since I switch between them often. When I install it on a friend’s laptop, there too I install more than one player. This is because nobody knows which one of them would be adored by them.

  3. As you all can see there is a ? next to TweetDeck and Opera since am not very much sure about their licence.

    Same goes with Komodo, but I think it has a free version( as in beer) and the source code is probably not available.

  4. sudo aptitude ttf-liberation
    sudo aptitude install ttf-liberation [fixed by blog owner]

    Will install free fonts from RedHat that replace the need for MS Times New Roman, Arial and Courier New. Some webpages use them.

  5. for setting up my computer after an install .. i have a bash script that does that for my.. all i have to do is just execute it and go grab a beer here is my list.


    wget -q -O- | sudo apt-key add – && sudo apt-get update

    sleep 3;

    wget –quiet –output-document=- “” | sudo apt-key add –

    sleep 3;

    wget -q -O- | sudo apt-key add –

    sleep 3;

    sudo apt-key adv –recv-keys –keyserver 0x8b6c49916fd28cbdfc5da3a2248dd1eebc8ebfe8

    #sleep 3;

    sudo apt-get remove –purge tomboy ekiga evolution evolution-common #evolution-data-server evolution-webcal f-spot

    sleep 3;

    echo Done removing unneeded packages

    sudo apt-get update

    sleep 3;

    sudo aptitude install alien lastfm htop cowsay irssi youtube-dl ffmpeg audacity libdvdcss2 vlc ubuntu-restricted-extras w32codecs cheese virtualbox ffmpeg gparted wine soundconverter pidgin-libnotify ssh skype audacity opera gthumb thinkfinger-tools libpam-thinkfinger startupmanager mousepad irssi cbrpager k9copy emerald linux-backports-modules-2.6.24-23-generic vlc-plugin-esd libdvdread3 gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg libxine1-ffmpeg libdvdread3 w32codecs ffmpeg dnsmasq-base

    sleep 3;

    sudo aptitude full-upgrade ; sudo update-icon-caches

    sleep 3;

    echo Done upgrading

    sleep 3;

    echo Configure system

    sudo ‘/usr/lib/pam-thinkfinger/pam-thinkfinger-enable’

    sleep 3;

    echo Everything is removed and installed, have a nice day

    anyone can take it and modify to their taste.

  6. Came back to this post after ages. I later found a better way to do this, especially useful across versions.

    Use ‘dpkg –get-selections | grep installed’ to dump the list of installed packages from an existing system. If it’s a clean update, fix this list by removing all version specific packages. Then, on the new system, use ‘dpkg –set-selections < foo.txt' to load the selection and then 'dselect' to install this selection.

    This obviously assumes that all third party repos have been taken care of and packages are downloaded over the net or copied from an apt archive cache (for same version).

    Found this tip in the Ubuntu forums but can't link to it as I'm on phone now :-(.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s