Ubuntu post-install “One script to rule them all”

0 Flares Twitter 0 Facebook 0 LinkedIn 0 Filament.io Made with Flare More Info'> 0 Flares ×


I’ve written before (in Greek) about my woes with the pulse audio server in Ubuntu. Every time I fixed it, the whole system crumbled when I performed an update, let alone an upgrade. What I eventually did is to practically give up. I just didn’t have enough time to work on it in order to fix it. The workaround I resorted to was to keep my /home partition fully encrypted on its own partition and then everytime I wanted to upgrade to a later distribution I did a clean re-install of Ubuntu.

The drawbacks of this was that I was still spending too much time re-installing all my tools and applications from scratch. Their configurations were safe in the hidden folders in my /home directory. The process of finding everything and keeping track of what I used and manually install them was getting laborious.

So in the true linux spirit, I did what I guess anyone of you reading this post would do. I just created a small script to get me back to how my system used to be. This script will make a backup copy of the existing repository list first and then replace it will a list that will include all the necessary entries to install the software I need [File1:Lines2-3].

Then a few necessary encryption keys are installed so that certain repositories can be authenticated [File1:Lines4-8]. And from then on there’s a very long line with every single piece of binary I want installed [File1:Line10]. If I find I’m using a new application very often I will add it in the list here and add its repositories in the scripts repository list.

A few statistics packages I use are then added, as well as the libraries to decrypt and play DVDs [File1:Lines13-15].

A few screenlets I’m using are next [File1:Lines20-22].

It also gets my .rc files from github [File1:Lines26-27].

Finally it will install wine for the windows application I want to run, e.g. in this case Spotify [File1:Lines31].

And this is pretty much it. The script is kept simple so that it’s easy to extend to your needs. Just add the application’s repository in the list, add any optional keys to your keychain, and finally add the installation name of the application to the list to be installed. Conversely, just remove anything you don’t want to install.

This script is put here for anyone wanting something similar and not knowing where to start. Copy and share, no attribution needed. Also implied in this that this script comes as it is. I’m not making claims that it won’t hurt your installation. I’ve tested it on  many occasions and it works. The system it’s supposed to be used anyway is a manilla one so I guess it won’t matter if you mess it up. You can just re-install it.

File1:

#!/bin/bash
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cp maverick.sources.list /etc/apt/sources.list
add-apt-repository ppa:tiheum/equinox
add-apt-repository ppa:am-monkeyd/nautilus-elementary-ppa
add-apt-repository ppa:bisigi/dev # Needs to change to /ppa when it's available
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2EBC26B60C5A2783 F9A2F76A9D1A0061 A040830F7FAC5991 16126D3A3E5C1192 DCF9F87B6DFBCBAE D6FDC9D0 FC5D50C5 2D9A3C5B 0AAFAD78 A69241F1 D67FC6EAE2A11821
apt-key adv --recv-keys --keyserver pgp.mit.edu 5044912E #dropbox key
apt-get --yes --quiet update && apt-get --yes --quiet dist-upgrade
apt-get --yes --quiet install clamav clamtk build-essential checkinstall cdbs devscripts dh-make fakeroot libxml-parser-perl check avahi-daemon sun-java6-jre sun-java6-plugin equivs vlc mplayer libxine1-ffmpeg gxine mencoder mpeg2dec vorbis-tools id3v2 mpg321 mpg123 libflac++6 ffmpeg libmp4v2-0 totem-mozilla icedax tagtool easytag id3tool lame nautilus-script-audio-convert libmad0 libjpeg-progs libquicktime1 flac faac faad sox ffmpeg2theora libmpeg2-4 uudeview flac libmpeg3-1 mpeg3-utils mpegdemux liba52-0.7.4-dev  ubuntu-restricted-extras gsfonts gsfonts-x11 flashplugin-nonfree simple-ccsm wine playonlinux glipper unace rar unrar zip unzip p7zip-full p7zip-rar sharutils uudeview mpack lha arj cabextract file-roller chromium-browser chromium-browser-l10n acroread dia quanta gnome-do docky yakuake guake backintime-common backintime-gnome trash-cli git-core bisigi-themes community-themes nautilus-dropbox elementary-theme elementary-icon-theme elementary-wallpapers conky tint2 screenlets python-simplejson python-twitter compiz-fusion-plugins-extra screen zsh vim htop mutt irssi deja-dup faenza-icon-theme appmenu-gtk indicator-appmenu indicator-applet-appmenu gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-gnonlin gstreamer0.10-pitfdll gstreamer0.10-sdl gstreamer0.10-plugins-bad-multiverse gstreamer0.10-schroedinger gstreamer0.10-plugins-ugly-multiverse totem-gstreamergstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-gnonlin gstreamer0.10-pitfdll gstreamer0.10-sdl gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly-multiverse totem-gstreamer gstreamer-dbus-media-service gstreamer-tools

# Statistical tools
apt-get --yes --quiet install r-base-dev octave
wget http://downloads.sourceforge.net/project/sofastatistics/sofastatistics/0.9.24/sofa_0.9.24-1_all.deb?r=http%3A%2F%2Fwww.sofastatistics.com%2Fdownloads.php&ts=1295372877&use_mirror=switch
dpkg -i sofa_0.9.24-1_all.deb
# DVD libraries
apt-get --yes --quiet install libdvdread4 && /usr/share/doc/libdvdread4/./install-css.sh
# Install maintenance
apt-get clean
apt-get autoclean
apt-get autoremove
# Screenlets
wget http://twitterscreenlet.googlecode.com/files/TwitterScreenlet-0.3.1.tar.gz && tar vxzf TwitterScreenlet-0.3.1.tar.gz && mkdir -p ~/.screenlets && mv Twitter ~/.screenlets && rm -rf TwitterScreenlet-0.3.1.tar.gz
wget http://gnome-look.org/CONTENT/content-files/102890-FolderView.tar.gz && tar vxzf 102890-FolderView.tar.gz  --directory ~/.screenlets && rm -rf 102890-FolderView.tar.gz
wget http://gnome-look.org/CONTENT/content-files/71034-3-pingus.tar.gz && tar vxzf 71034-3-pingus.tar.gz  --directory ~/.screenlets && rm -rf 71034-3-pingus.tar.gz*
#bash /usr/share/elementary-desktop/configure.sh # Elementary configuration

# .rc files from repo
wget -q --no-check-certificate http://github.com/cmdel/rc-configs/raw/master/.screenrc
wget--no-check-certificate -q http://github.com/cmdel/rc-configs/raw/master/.zshrc
# Create the file to keep all known hosts for autocomplete
touch ~/.hosts
# Wine configuration
su - cmd -c 'winecfg && wget http://www.spotify.com/download/Spotify%20Installer.exe && wine Spotify Installer.exe' && chsh `whoami` -s /bin/zsh && exit

This is the file with the repositories that are necessary.

File2:

# Ubuntu Maverick Meerkat 10.10 Sources list
#
# Repository List based on standard maverick with many extra packages
#
# If you get errors about missing keys, lookup the key in this file
# and run these commands (replace KEY with the key number):
#
# sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com KEY

# Ubuntu supported packages
deb http://fi.archive.ubuntu.com/ubuntu/ maverick main restricted multiverse universe
deb http://fi.archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multiverse
deb http://fi.archive.ubuntu.com/ubuntu/ maverick-updates main restricted multiverse universe
deb http://security.ubuntu.com/ubuntu maverick-security main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu maverick-proposed main restricted universe multiverse
deb-src http://fi.archive.ubuntu.com/ubuntu/ maverick main restricted multiverse universe
deb-src http://fi.archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multiverse
deb-src http://fi.archive.ubuntu.com/ubuntu/ maverick-updates main restricted multiverse universe
deb-src http://security.ubuntu.com/ubuntu maverick-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu maverick-proposed main restricted universe multiverse

#Canonical 'partner' Repository
deb http://archive.canonical.com/ubuntu maverick partner
deb http://archive.canonical.com/ubuntu maverick-backports partner
deb http://archive.canonical.com/ubuntu maverick-updates partner
deb http://archive.canonical.com/ubuntu maverick-security partner
deb http://archive.canonical.com/ubuntu maverick-proposed partner
deb-src http://archive.canonical.com/ubuntu maverick partner
deb-src http://archive.canonical.com/ubuntu maverick-backports partner
deb-src http://archive.canonical.com/ubuntu maverick-updates partner
deb-src http://archive.canonical.com/ubuntu maverick-security partner
deb-src http://archive.canonical.com/ubuntu maverick-proposed partner

#Third Parties Latest Software
deb http://extras.ubuntu.com/ubuntu maverick main
deb-src http://extras.ubuntu.com/ubuntu maverick main

#medibuntu ********* Must chage to Maverick *******
# sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2EBC26B60C5A2783
deb http://packages.medibuntu.org/ maverick free non-free
deb-src http://packages.medibuntu.org/ maverick free non-free

#opera
# sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com F9A2F76A9D1A0061
deb http://deb.opera.com/opera/ lenny non-free

#google
# sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com A040830F7FAC5991
deb http://dl.google.com/linux/deb/ stable non-free main

#Skype
deb http://download.skype.com/linux/repos/debian/ stable non-free

#Back in Time -
deb http://ppa.launchpad.net/bit-team/stable/ubuntu maverick main
deb-src http://ppa.launchpad.net/bit-team/stable/ubuntu maverick main

#Dropbox
deb http://linux.dropbox.com/ubuntu maverick main
deb-src http://linux.dropbox.com/ubuntu maverick main

# Elementary Desktop
deb http://ppa.launchpad.net/elementaryart/ppa/ubuntu maverick main restricted multiverse universe
deb-src http://ppa.launchpad.net/elementaryart/ppa/ubuntu maverick main restricted multiverse universe

deb http://ppa.launchpad.net/elementaryart/elementarydesktop/ubuntu maverick main restricted multiverse universe
deb-src http://ppa.launchpad.net/elementaryart/elementarydesktop/ubuntu maverick main restricted multiverse universe

# Statistical Analysis Packages
deb http://cran.stat.ucla.edu/bin/linux/ubuntu maverick main

Attributions

Image by XKCD
0 Flares Twitter 0 Facebook 0 LinkedIn 0 Filament.io Made with Flare More Info'> 0 Flares ×