Perfectbuntu
From Category5 Wiki
This is the Perfectbuntu script. Are you looking for the Perfectbuntu OS Linux distro based on this script?
Contents |
Description
Install tons of extras into Ubuntu / Kubuntu / Xubuntu / etc.
When Hardy was released, Automatix closed it's support for *buntu. This left a large gap in the "quick and easy" market for multimedia codec installation. perfectbuntu is the new version of what was at that time called "The Perfect Hardy", as it now supports more than just Hardy Heron. perfectbuntu is a Linux script built specifically for Ubuntu-based distros, and it makes the installation of all your multimedia, DVD, fonts, etc. so very easy.
This script does not come with or even imply any kind of warranty. If your system breaks, you take full responsibility.
Current Official Version
3.2
3.5 RC is still in testing (below)
Compatible With
- *buntu 8.04
- *buntu 8.10
- *buntu 9.04
- *buntu 9.10
- Linux Mint 9.04
Works with both 32 and 64-bit platforms.
Disclaimer
While perfectbuntu will work on most any flavour of *buntu, it should be noted that it was developed specifically under and for Ubuntu. Therefore, if you are using a different flavour of *buntu (Kubuntu for example) please expect some gnome components to be installed due to the nature of dependencies.
Download
Official release: www.category5.tv/files/bash/perfectbuntu
Usage
chmod +x perfectbuntu
./perfectbuntu
Dependencies
- a computer running a compatible version of *buntu
- Back In Time requires rsync >= 3.0 and KDE or Gnome
Proposals
List any applications you'd like to see added to the official release of perfectbuntu:
- Gnome-do (Done; v. 3.5 RC4)
- ubuntu-tweak (Done; v. 3.5 RC)
- prism (Done; v. 3.5 RC6)
- preload (Done; v. 3.2)
- Moovida (Done; v. 3.5 RC6)
- Moovida
- Emerald w/ themes (Done; v. 3.5 RC3)
- AutoFsck (Done; v. 3.2)
- Miro Internet TV (Done; v. 3.5 RC3)
- VirtualBox 3.1 (Done; v. 3.5 RC3)
- libdvdread4 (Done; v. 3.5 RC)
The Script
Download the current official release here: www.category5.tv/files/bash/perfectbuntu
The following code, as opposed to the official release, contains proposed changes since the last official release and should only be run by people who understand bash programming and have reviewed the changes in the wiki history.
#!/bin/bash # To install this file: download it by saving it to your desktop, or wherever. # Then, right-click the file, click Properties, and choose the Permissions tab. # Check off "Allow Executing File as Program". # Now, just run the file in terminal. # For example: # cd ~/Desktop # ./perfectbuntu # Now for the code. Don't worry about any of this stuff. It's just nonsense. ;) # Define some colors using terminal save colors WHITE="\033[1;37m" GREEN="\033[1;32m" CYAN="\033[1;36m" GRAY="\033[1;37m" BLUE="\033[1;34m" BBLUE="\033[1;34m" BPINK="\033[1;35m" # Set the color scheme trap 'reset' 0 echo -en "\E[40;$32m" clear echo echo -en $WHITE echo perfectbuntu echo SCRIPT VERSION 3.5 RC6 echo -en $GRAY"By "$BBLUE"Robbie Ferguson "$GRAY"("$CYAN"www.Category5.TV"$GRAY")" echo echo echo -en "With additional contributions by:" echo echo -en " - "$BBLUE"Berry van der Linden "$GRAY"("$CYAN"www.madberry.org"$GRAY")" echo -en " - "$BBLUE"Gord Campbell "$GRAY echo echo echo -en "This script was originally based on "$CYAN"http://www.category5.tv/content/view/77/38/"$GRAY echo echo # Detect version of *buntu grep "DISTRIB_RELEASE=8.04" /etc/lsb-release > /dev/null 2>&1 if [ $? = 0 ]; then OSVER="hardy" fi grep "DISTRIB_RELEASE=8.10" /etc/lsb-release > /dev/null 2>&1 if [ $? = 0 ]; then OSVER="intrepid" fi grep "DISTRIB_RELEASE=9.04" /etc/lsb-release > /dev/null 2>&1 if [ $? = 0 ]; then OSVER="jaunty" fi grep "DISTRIB_RELEASE=9.10" /etc/lsb-release > /dev/null 2>&1 if [ $? = 0 ]; then OSVER="karmic" fi grep "DISTRIB_CODENAME=Gloria" /etc/lsb-release > /dev/null 2>&1 if [ $? = 0 ]; then OSVER="jaunty" fi # Detect if you're running KDE or Gnome grep "DISTRIB_ID=Ubuntu" /etc/lsb-release > /dev/null 2>&1 if [ $? = 0 ]; then OSNAME="Ubuntu" ENVIRONMENT="gnome" fi grep "DISTRIB_ID=Kubuntu" /etc/lsb-release > /dev/null 2>&1 if [ $? = 0 ]; then OSNAME="Kubuntu" ENVIRONMENT="kde" fi grep "DISTRIB_ID=LinuxMint" /etc/lsb-release > /dev/null 2>&1 if [ $? = 0 ]; then OSNAME="Linux Mint" ENVIRONMENT="gnome" fi # set default bit to 32 BIT="32" if [[ `uname -m` == 'amd64' || `uname -m` == 'x86_64' ]]; then BIT="64" fi echo "Detected version:" $OSNAME" "$OSVER, $BIT"-bit" if [[ $OSVER != 'hardy' && $OSVER != 'intrepid' && $OSVER != 'jaunty' && $OSVER != 'karmic' ]]; then echo "Your version of Linux is not supported." echo exit fi # Running a supported version of *buntu. Move on. echo echo This script requires super-user access to continue. echo Checking for super-user access... #sleep 5 sudo echo -en $WHITE"Access Granted."$GRAY echo echo Please note: I might have to ask for your password again... echo echo Now, I\'ll ask you a bunch of questions, and then get right to work. echo # Ask all the questions... echo -en $GREEN read -p "Would you like to enhance your multimedia experience? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then # ------- echo echo -en $BLUE"=== "$WHITE"IMPORTANT"$BLUE" ==="$WHITE echo echo "Installing restricted multimedia codecs might violate" echo "patent and/or other laws. Please make sure you have" echo "the right to use these codecs." echo echo -en $GREEN read -p "Install Multimedia Codecs and Restricted Extras? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then MULTIMEDIA="1" fi echo echo -en $GREEN read -p "Does your computer have a DVD player? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then DVD="1" fi echo echo ----- # ------- fi echo echo -en $GREEN read -p "Would you like to enhance your Internet experience? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then # ------- echo echo Please note: I will have to close Firefox if you have it open. echo You may close it now if you prefer, or simply request Firefox echo load your previously loaded pages the next time you start it. echo echo -en $GREEN read -p "Would you like Firefox 3.5 Daily Build? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then FIREFOX="1" fi if [[ "$FIREFOX" = "1" && $OSVER = 'karmic' ]]; then echo echo Firefox 3.5 is preinstalled in Karmic echo -en $GREEN read -p "Do you still wish to install the Firefox 3.5 Daily Build? (Y/N) " echo -en $WHITE if [ "$REPLY" = "n" -o "$REPLY" = "N" ] ; then FIREFOX="0" fi fi echo echo -en $GREEN read -p "Do you want me to install/update the Flash plugin for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then FLASH="1" fi echo echo -en $GREEN read -p "Should I install Skype for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then SKYPE="1" fi echo echo -en $GREEN read -p "Should I install Miro Internet TV for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then MIRO="1" fi echo echo -en $GREEN read -p "Should I install VirtualBox for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then VIRTBOX="1" fi echo echo echo Moovida is an open source Media Center echo -en $GREEN read -p "Should I install Moovida Media Center for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then MOOVIDA="1" fi echo -en $GREEN read -p "Do you want spam filters for Evolution? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then SPAM="1" fi echo echo ----- # ------- fi echo echo -en $GREEN read -p "Would you like to enhance the overall look of your *buntu system? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then # ------- echo echo Compiz Config Settings Manager \(CCSM\) lets you echo control the advanced features of Compiz-Fusion. echo -en $GREEN read -p "Should I install this for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then CCSM="1" fi echo echo Emerald Window Decorator is a nice window decorator echo It requires Compiz-Fusion. echo -en $GREEN read -p "Should I install emerald for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then EWD="1" fi if [ "$ENVIRONMENT" = "gnome" ]; then echo echo GNOME Do is an intelligent echo application and file launcher tool. echo -en $GREEN read -p "Should I install GNOME Do for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then GNOMEDO="1" fi fi echo echo Avant Window Navigator is a very nice echo "Mac OS"-style dockbar for Linux. echo It requires a compositor, such as Compiz-Fusion. echo -en $GREEN read -p "Should I install avant-window-navigator for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then AWN="1" fi echo echo ----- # ------- fi echo echo -en $GREEN read -p "Would you like to improve *buntu functionality? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then # ------- echo echo Would you like to pre-load your most commonly used echo applications into memory so they load faster? echo Note: It can take up to a week for this to take effect. echo -en $GREEN read -p "Should I setup preload for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then PRELOAD="1" fi echo echo After rebooting your *buntu system a number of times, you are echo forced to run a disk check on your hard drive. That means you echo have to wait a long time for your computer to boot. Instead, echo let\'s run the disk check at shutdown, so you can walk away. echo -en $GREEN read -p "Should I set this up for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then AUTOFSCK="1" fi if [ "$ENVIRONMENT" = "gnome" ]; then echo echo ubuntu-tweak allows you to tweak the user experience by echo simplifying the modification of advanced system settings. echo -en $GREEN read -p "Should I install ubuntu-tweak for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then UBUNTUTWEAK="1" fi fi echo echo ----- # ------- fi echo echo Back in Time is like a time machine for your files. echo Create backups that let you go back to previous versions. if [ "$ENVIRONMENT" = "kde" ]; then echo Note: Make sure you have >= KDE 4.1 fi echo -en $GREEN read -p "Would you like me to install this? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then BACKINTIME="1" fi echo echo echo I can install a huge number of fonts which you can use in echo your word processor, or even in programs like The GIMP. echo -en $GREEN read -p "Would you like a bunch of new fonts? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then FONTS="1" fi echo echo WINE is an application that allows you to run some echo Windows programs directly in Linux \(.exe files\). echo -en $GREEN read -p "Should I install this for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then WINE="1" fi echo echo Mozilla Prism is a simple XULRunner based browser that hosts web applications echo without the normal web browser user interface echo -en $GREEN read -p "Should I install Mozilla Prism for you? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then PRISM="1" fi echo echo "I can make it so you can use 7z, ZIP, Zip64, CAB, RAR, ARJ," echo "GZIP, BZIP2, TAR, CPIO, RPM, ISO and DEB archives in file-roller." echo -en $GREEN read -p "Do you want me to do this? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then COMPRESSION="1" fi echo echo This script does not come with or even imply any kind of warranty. echo If your system breaks, you take full responsibility. echo -en $CYAN echo read -p "I am about to modify your system. Are you sure this is okay? (Y/N) " echo -en $WHITE if [ "$REPLY" = "y" -o "$REPLY" = "Y" ] ; then GO="1" #deprecated, but still here else echo Exiting. echo sleep 5 exit 1 fi echo # End of questions cd ~ if [ ! -e ".perfectbuntu/sources35" ] # Check if file exists. then echo This is apparently the first time you have run this script. echo echo Backing up your APT sources.list file to /etc/apt/sources.list.backup sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup echo Done. echo echo Creating your APT entries now. mkdir ~/.perfectbuntu echo "" >> ~/.perfectbuntu/sources35 echo "# Added by perfectbuntu - www.category5.tv" >> ~/.perfectbuntu/sources35 echo "" >> ~/.perfectbuntu/sources35 # Avoid duplicates by using grep if grep 'main restricted universe multiverse'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "deb http://ca.archive.ubuntu.com/ubuntu/ "$OSVER" main restricted universe multiverse" >> ~/.perfectbuntu/sources35 fi if grep 'main restricted'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "deb-src http://ca.archive.ubuntu.com/ubuntu/ "$OSVER" main restricted" >> ~/.perfectbuntu/sources35 fi # Medibuntu # # http://www.medibuntu.org/sources.list.d/karmic.list (Medibuntu Repository sample filename) # if [ -e "/etc/apt/sources.list.d/medibuntu.list" ] ; then # Check if file exists. if grep 'deb http://packages.medibuntu.org/ '$OSVER' free non-free' /etc/apt/sources.list.d/medibuntu.list > /dev/null; then echo "Keep existing /etc/apt/sources.list.d/medibuntu.list file from the same distro..." else echo "Removing existing /etc/apt/sources.list.d/medibuntu.list file from a different distro..." sudo rm /etc/apt/sources.list.d/medibuntu.list dpkg -s medibuntu-keyring | grep "Status: install ok installed" > /dev/null 2>&1 if [ $? = 0 ]; then echo "Removing existing medibuntu-keyring..." sudo apt-get --force-yes -y -f -m remove medibuntu-keyring fi fi fi if [ -e "/etc/apt/sources.list.d/medibuntu.list" ] ; then # Check if file still exists. echo "Omitting duplicate..." else #echo "# deb http://packages.medibuntu.org/ "$OSVER" free non-free" >> ~/.perfectbuntu/sources35 echo Retrieving Medibuntu Repository and GPG Signature... #// Medibuntu sudo wget http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list \ --output-document=/etc/apt/sources.list.d/medibuntu.list && sudo apt-get -q update && sudo apt-get --yes -q --allow-unauthenticated install medibuntu-keyring && sudo apt-get -q update echo Done. echo fi # Avant Window Navigator in Launchpad (Optional Repository) if [ "$AWN" = "1" ]; then if grep 'deb http://ppa.launchpad.net/awn-testing/ppa/ubuntu '$OSVER' main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "# Avant Window Navigator in Launchpad" >> ~/.perfectbuntu/sources35 echo "deb http://ppa.launchpad.net/awn-testing/ppa/ubuntu "$OSVER" main" >> ~/.perfectbuntu/sources35 echo Retrieving GPG Signature... #// Avant Window Navigator sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BF810CD5 echo Done. echo fi if grep 'deb-src http://ppa.launchpad.net/awn-testing/ppa/ubuntu '$OSVER' main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "deb-src http://ppa.launchpad.net/awn-testing/ppa/ubuntu "$OSVER" main" >> ~/.perfectbuntu/sources35 echo "" >> ~/.perfectbuntu/sources35 fi fi # Back in Time (Optional Repository) if [ "$BACKINTIME" = "1" ]; then if grep 'deb http://le-web.org/repository stable main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "# Back in Time" >> ~/.perfectbuntu/sources35 echo "deb http://le-web.org/repository stable main" >> ~/.perfectbuntu/sources35 echo "" >> ~/.perfectbuntu/sources35 echo Retrieving GPG Signature... #// Back In Time wget -q http://le-web.org/repository/le-web.key -O- | sudo apt-key add - fi fi # Ubuntu-Tweak (Optional Repository) if [ "$UBUNTUTWEAK" = "1" ]; then if grep 'deb http://ppa.launchpad.net/tualatrix/ppa/ubuntu '$OSVER' main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "# Ubuntu-Tweak" >> ~/.perfectbuntu/sources35 echo "deb http://ppa.launchpad.net/tualatrix/ppa/ubuntu "$OSVER" main" >> ~/.perfectbuntu/sources35 echo Retrieving GPG Signature... #// Ubuntu-Tweak sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com FE85409EEAB40ECCB65740816AF0E1940624A220 echo Done. echo fi if grep 'deb-src http://ppa.launchpad.net/tualatrix/ppa/ubuntu '$OSVER' main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "deb-src http://ppa.launchpad.net/tualatrix/ppa/ubuntu "$OSVER" main" >> ~/.perfectbuntu/sources35 echo "" >> ~/.perfectbuntu/sources35 fi fi # GNOME DO in Launchpad (Optional Repository) if [ "$GNOMEDO" = "1" ]; then if grep 'deb http://ppa.launchpad.net/do-core/ppa/ubuntu '$OSVER' main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "# GNOME DO in Launchpad" >> ~/.perfectbuntu/sources35 echo "deb http://ppa.launchpad.net/do-core/ppa/ubuntu "$OSVER" main" >> ~/.perfectbuntu/sources35 echo Retrieving GPG Signature... #// GNOME DO gpg --no-default-keyring --keyring /tmp/gnome-do.keyring --keyserver keyserver.ubuntu.com --recv A5D19FDCAA6ABB440CD3464628A8205077558DD0 gpg --no-default-keyring --keyring /tmp/gnome-do.keyring --export --armor A5D19FDCAA6ABB440CD3464628A8205077558DD0 | sudo apt-key add - rm /tmp/gnome-do.keyring echo Done. echo fi if grep 'deb-src http://ppa.launchpad.net/do-core/ppa/ubuntu '$OSVER' main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "deb-src http://ppa.launchpad.net/do-core/ppa/ubuntu "$OSVER" main" >> ~/.perfectbuntu/sources35 echo "" >> ~/.perfectbuntu/sources35 fi fi # Miro Internet TV (Optional Repository) if [ "$MIRO" = "1" ]; then if grep 'deb http://ftp.osuosl.org/pub/pculture.org/miro/linux/repositories/ubuntu '$OSVER'/'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "# Miro Internet TV" >> ~/.perfectbuntu/sources35 echo "deb http://ftp.osuosl.org/pub/pculture.org/miro/linux/repositories/ubuntu $OSVER/" >> ~/.perfectbuntu/sources35 echo "" >> ~/.perfectbuntu/sources35 fi fi # Moovida Media Center in Launchpad (Optional Repository) if [ "$MOOVIDA" = "1" ]; then if grep 'deb http://ppa.launchpad.net/moovida-packagers/ppa/ubuntu '$OSVER' main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "# MOOVIDA Media Center in Launchpad" >> ~/.perfectbuntu/sources35 echo "deb http://ppa.launchpad.net/moovida-packagers/ppa/ubuntu "$OSVER" main" >> ~/.perfectbuntu/sources35 echo Retrieving GPG Signature... #// MOOVIDA sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 26C2E075 echo Done. echo fi if grep 'deb-src http://ppa.launchpad.net/moovida-packagers/ppa/ubuntu '$OSVER' main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "deb-src http://ppa.launchpad.net/moovida-packagers/ppa/ubuntu "$OSVER" main" >> ~/.perfectbuntu/sources35 echo "" >> ~/.perfectbuntu/sources35 fi fi # VirtualBox (Optional Repository) if [ "$VIRTBOX" = "1" ]; then if grep 'deb http://download.virtualbox.org/virtualbox/debian '$OSVER' non-free'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "# VirtualBox" >> ~/.perfectbuntu/sources35 echo "deb http://download.virtualbox.org/virtualbox/debian "$OSVER" non-free" >> ~/.perfectbuntu/sources35 echo "" >> ~/.perfectbuntu/sources35 echo Retrieving GPG Signature... wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add - echo Done. echo fi fi # Firefox 3.5 Daily Build in Launchpad (Optional Repository) if [ "$FIREFOX" = "1" ]; then if grep 'deb http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu '$OSVER' main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "# Firefox 3.5 Daily Build in Launchpad" >> ~/.perfectbuntu/sources35 echo "deb http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu "$OSVER" main" >> ~/.perfectbuntu/sources35 echo Retrieving GPG Signature... #// Firefox sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 247510BE echo Done. echo fi if grep 'deb-src http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu '$OSVER' main'$ /etc/apt/sources.list > /dev/null; then echo "Omitting duplicate..." else echo "deb-src http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu "$OSVER" main" >> ~/.perfectbuntu/sources35 echo "" >> ~/.perfectbuntu/sources35 fi fi cat ~/.perfectbuntu/sources35 | sudo tee -a /etc/apt/sources.list echo Done. echo fi echo Cleaning up apt... sudo apt-get clean echo Done. echo echo Updating apt... sudo apt-get update echo Done. echo #Run the installers if [ "$FLASH" = "1" ]; then echo Closing your browser windows... killall -9 firefox echo Removing your old Flash plugin... sudo apt-get --force-yes -y -f -m --purge remove flashplugin-nonfree adobe-flashplugin flashplugin-installer echo Installing Flash plugin installer... sudo apt-get --force-yes -y -f -m install flashplugin-installer echo Done. echo fi if [ "$MULTIMEDIA" = "1" ]; then echo Installing multimedia codecs... sudo apt-get --force-yes -y -f -m install ubuntu-restricted-extras sudo apt-get --force-yes -y -f -m install gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg libxine1-ffmpeg sudo apt-get -y -f -m install "w"$BIT"codecs" if [[ $OSVER = 'karmic' ]]; then sudo apt-get --force-yes -y -f -m install libdvdread4 else sudo apt-get --force-yes -y -f -m install libdvdread3 fi echo Done. echo fi if [ "$FONTS" = "1" ]; then echo Installing roughly a billion fonts... sudo apt-get -y -f -m install msttcorefonts echo echo NOTE: That should be the last EULA you\'ll have to deal with. echo You can go get a coffee now while I finish up. echo It\'s going to take a while. echo echo Continuing with font installations... sudo apt-get -y -f -m install ttf-gentium ttf-dustin ttf-georgewilliams ttf-sjfonts sun-java6-fonts ttf-larabie-deco ttf-larabie-straight ttf-larabie-uncommon ttf-linux-libertine ttf-mgopen ttf-sil-charis ttf-sil-doulos ttf-ubuntu-title gsfonts-x11 ttf-fifthhorseman-dkg-handwriting ttf-alee ttf-alee ttf-ancient-fonts ttf-arhangai ttf-arphic-bkai00mp ttf-arphic-bsmi00lp ttf-arphic-gbsn00lp ttf-arphic-gkai00mp ttf-arphic-ukai ttf-atarismall ttf-baekmuk ttf-bengali-fonts ttf-beteckna ttf-bpg-georgian-fonts ttf-breip ttf-devanagari-fonts ttf-dzongkha ttf-ecolier-court ttf-essays1743 ttf-f500 ttf-farsiweb ttf-freefarsi ttf-gfs-artemisia ttf-gfs-bodoni-classic ttf-gfs-complutum ttf-gfs-didot-classic ttf-gfs-gazis ttf-gfs-neohellenic ttf-gfs-solomos ttf-gfs-theokritos ttf-gujarati-fonts ttf-inconsolata ttf-indic-fonts ttf-isabella ttf-junicode ttf-kacst ttf-kannada-fonts ttf-khmeros ttf-kiloji ttf-kochi-gothic-naga10 ttf-kochi-mincho-naga10 ttf-konatu ttf-liberation ttf-manchufont ttf-marvosym ttf-mikachan ttf-mona ttf-mph-2b-damase ttf-nafees ttf-ocr-a ttf-oflb-euterpe ttf-oriya-fonts ttf-paktype ttf-punjabi-fonts ttf-radisnoir ttf-sazanami-gothic ttf-sazanami-mincho ttf-sil-abyssinica ttf-sil-andika ttf-sil-ezra ttf-sil-padauk ttf-sil-scheherazade ttf-sil-yi ttf-staypuft ttf-summersby ttf-tamil-fonts ttf-tmuni ttf-tuffy ttf-unfonts ttf-unfonts-extra ttf-uralic ttf-vlgothic ttf-wqy-zenhei ttf-xfree86-nonfree ttf-xfree86-nonfree-syriac echo Done. echo fi if [ "$DVD" = "1" ]; then echo Installing DVD decoders and support files... if [[ $OSVER = 'karmic' ]]; then sudo apt-get -y -f -m install libdvdcss2 libdvdread4 ffmpeg "w"$BIT"codecs" else sudo apt-get -y -f -m install libdvdcss2 libdvdread3 ffmpeg "w"$BIT"codecs" fi echo Done. echo fi if [ "$PRELOAD" = "1" ]; then echo Installing preload... sudo apt-get -y -f -m install preload echo Done. echo fi if [ "$AUTOFSCK" = "1" ]; then echo Installing AutoFsck \(disk check at shutdown\)... sudo apt-get -y -f -m install autofsck echo Done. echo fi if [ "$AWN" = "1" ]; then echo Installing avant-window-navigator Dockbar... # Used to install the BZR, but now the stable version has been updated so it's not necessary #sudo apt-get --force-yes -y -f -m install awn-manager-bzr #sudo apt-get --force-yes -y -f -m install avant-window-navigator-bzr avant-window-navigator-data # Install the stable version instead sudo apt-get --force-yes -y -f -m install avant-window-navigator awn-applets-c-extras awn-manager echo Done. echo fi if [ "$COMPRESSION" = "1" ]; then echo Installing support for multiple archive types in file-roller... sudo apt-get -y -f -m install lzma unrar rar p7zip p7zip-full p7zip-rar echo Done. echo fi if [ "$WINE" = "1" ]; then echo Installing WINE... sudo apt-get -y -f -m install wine echo Done. echo fi if [ "$SKYPE" = "1" ]; then echo Installing Skype... sudo apt-get -y -f -m install skype echo Done. echo fi if [ "$SPAM" = "1" ]; then echo Installing SPAM filters... sudo apt-get -y -f -m install spamassassin echo Done. echo fi if [ "$FIREFOX" = "1" ]; then echo Closing your browser windows... killall -9 firefox echo Installing Firefox... sudo apt-get -y -f -m install firefox-3.5 echo Done. echo echo Creating symbolic link to Firefox 3.5 cd /usr/bin # notice, this command also creates a backup of your original firefox symlink sudo ln -b -f -s firefox-3.5 firefox echo Done. echo fi # CCSM allows you to customize your special effects and all settings in Compiz. if [ "$CCSM" = "1" ]; then echo Installing CCSM advanced visual effects for Compiz Fusion... sudo apt-get -y -f -m install compizconfig-settings-manager echo Installing Fusion Icon for Compiz Fusion... sudo apt-get -y -f -m install fusion-icon echo Done. echo fi # Emerald Window Decorator allows you to customize your windows in Compiz. if [ "$EWD" = "1" ]; then echo Installing Emerald Window Decorator for Compiz Fusion... sudo apt-get -y -f -m install emerald echo Done. echo fi # GNOME Do is an intelligent application and file launcher tool. if [ "$GNOMEDO" = "1" ]; then echo Installing GNOME Do application and file launcher... sudo apt-get -y -f -m install gnome-do echo Done. echo fi if [ "$BACKINTIME" = "1" ]; then echo Installing Back In Time backup software... if [ "$ENVIRONMENT" = "kde" ]; then sudo apt-get -y -f -m install backintime-common backintime-kde4 echo Done. else if [ "$ENVIRONMENT" = "gnome" ]; then sudo apt-get -y -f -m install backintime-common backintime-gnome echo Done. else echo Sorry; You need either KDE or Gnome for this one :\( sleep 8 fi echo fi fi if [ "$UBUNTUTWEAK" = "1" ]; then echo Installing ubuntu-tweak... sudo apt-get -y -f -m install ubuntu-tweak echo Done. echo fi if [ "$MIRO" = "1" ]; then echo Installing Miro Internet TV... echo No GPG Signature for Miro - Ignore unauthenticated error... sudo apt-get --force-yes -y -f -m --allow-unauthenticated install miro echo Done. echo fi if [ "$VIRTBOX" = "1" ]; then echo Installing VirtualBox 3.1... sudo apt-get --force-yes -y -f -m install virtualbox-3.1 #Ensure that the VirtualBox host kernel modules (vboxdrv, vboxnetflt and vboxnetadp) are properly updated if the linux kernel version changes #dpkg -s dkms | grep "Status: install ok installed" > /dev/null 2>&1 #if [ $? != 0 ]; then #echo "DKMS installed for VirtualBox 3.1..." #sudo apt-get --force-yes -y -f -m install dkms #fi echo Done. echo fi if [ "$PRISM" = "1" ]; then echo Installing Mozilla Prism application... sudo apt-get -y -f -m install prism echo Done. echo fi if [ "$MOOVIDA" = "1" ]; then echo Installing Moovida Media Center application... sudo apt-get -y -f -m install moovida echo Done. echo fi # Install stuff that everyone should have (no prompt) # xnest updates Terminal Server Client to support the XDMCP protocol allowing you to connect to other Linux machines. It's strange this isn't included out-of-the-box. echo "I'm going to install some things that everyone should have..." echo echo "Installing support for XDMCP (remote desktop for Linux, essentially)..." sudo apt-get -y -f -m install xnest echo Done. echo echo All done. Enjoy the Perfect *buntu! echo Visit www.category5.tv/linux_scripts/perfectbuntu.php sleep 15
Changelog
3.5 RC6 - Changed VirtualBox installation from VirtualBox 3.0 to VirtualBox 3.1.
3.5 RC6 - Added Moovida Media Center from PPA repositories. Added Mozilla Prism.
3.5 RC5 - Changed Medibuntu repository logic to check for a different distro.
3.5 RC4 - Added GNOME Do. Fixed DVD decoders install to use libdvdread4 instead of libdvdread3 if running Karmic as done in the Multimedia codecs install.
3.5 RC3 - Added Miro Internet TV software. Added emerald. Added VirtualBox 3.0. Added fusion-icon to CCSM install. Changed AWN repository filenames. It won't install the test versions unless the installed programs have the suffix "-trunk" appended which was NOT done. Changed the logic to add the Medibuntu repositories in order to avoid a duplicate entry. Formatted the code adding repositories to make it more readable and standard.
3.5 - Added support for Linux Mint (beginning with 9.04). Added ubuntu-tweak. Added automatic support for libdvdread4 (instead of libdvdread3) in Karmic. A few minor user interface improvements.
3.2 - Fixed color scheme; perfectbuntu now loads with a black background, and restores your original terminal settings on exit. New installation category: Improve *buntu functionality. Added: preload, AutoFsck
3.1 - Added Back In Time software for running rsync backups. Note: requires version of rsync from backports. Perhaps I'll add that as an update in a future release.
3.0 - Major update: Categorized the Q&A - the list of Y/N questions was getting pretty long, so I've broken it down so you first answer, for example, "Want Multimedia?" and if you say no, you won't be asked to install all the multimedia stuff. CCSM no longer installs without user permission. Also implemented a few updates that were contributed by Berry van der Linden (www.madberry.org): Colorization, improved Y/N, more intelligent loading of GPG keys, etc. Thank you, Berry for your submitted additions and revisions!
2.4 - Added preliminary support for Ubuntu Karmic Koala 9.10. Please note that while perfectbuntu now supports this version of Ubuntu (which is in Alpha-3 status at the time of its addition), not all repositories will contain up-to-date Karmic repositories until closer to release date in October 2009. Therefore, as with any Karmic implementation at the time of this writing, it should be considered experimental.
2.3 - Made it so perfectbuntu now replaces your existing firefox symlink to point all /usr/bin/firefox links to firefox-3.5. Your original firefox symlink is backed up to /usr/bin/firefox~.
2.2 - Added installation procedure for Firefox 3.5 from Launchpad with new repository and GPG key installation.
2.1 - perfectbuntu now automatically fixes Flash plugin problems (was causing some headaches for those who upgraded to Jaunty). Also improved a bit of the language.
2.0 - Added support for Ubuntu 9.04. Replaced Medibuntu GPG key installer, updating it to the latest version.
1.5 - Switched Avant Window Navigator to stable version and added more applets to awn-manager. Users who had previously installed AWN can reinstall it using this script to receive the stable version. Improved the multimedia codec installer. Now, users who do not have DVD players will still get w32codecs and w64codecs (my mistake for having it otherwise).
1.4 - Fixed installer for Avant Window Navigator. Added default installation of CompizConfig Settings Manager (no prompt). Fixed medibuntu GPG key (they changed everything on their end, so we had to adapt the script). Fixed 64-bit detection error on some Intel-based 64-bit installs.
1.3 - Further improved the output to show all activity so that users on a slow connection won't assume the program has frozen. Improved installation of w32codecs and w64codecs.
1.2 - Improved 32/64-bit detection for obscure kernels.
1.1 - Made apt-get update output its results to the screen. Long delays during this update (sometimes up to 20 minutes on a fresh installation) might cause a user to think the script has frozen. Now, they can see the progress.
1.0 - Release of perfectbuntu, based on perfecthardy 1.2. New features (since perfecthardy 1.2): Addition of support for Intrepid Ibex. Added support for multimedia codecs. Automatically detects operating system version and whether it is 32 or 64-bit. Only add entries to apt repositories if they do not already exist (prevents duplicates if user has already manually added one of the needed repositories). Added installation of avant-window-navigator BZR Dockbar. Change the name of the script in order to be inclusive of current and future releases of *buntu.
