Skip to content

Instantly share code, notes, and snippets.

@snorremd
Last active August 29, 2015 14:05
Show Gist options
  • Save snorremd/08356fca5b1e053a8ece to your computer and use it in GitHub Desktop.
Save snorremd/08356fca5b1e053a8ece to your computer and use it in GitHub Desktop.
#!/bin/bash
###########################################
# I heart Ubuntu 64 bits
#
# Installs various useful software:
# Please copy to your home folder, right click
# and check "executable" under permissions tab
# and run by typing:
# sudo ~/ubuntusoftwareinstaller.sh
#
###########################################
if [ `whoami` != root ]; then
echo "Please run this script as root or using sudo (i.e. sudo sh ihearubuntu.sh"
exit
fi
# Make sure to get the location of the users folder
USER_HOME=$(getent passwd $SUDO_USER | cut -d: -f6)
echo "###################################################"
echo ̈́"Hello. I am a script that will install some of
the most essential applications for your Ubuntu desktop.
The following applications will be installed:
Drivers
AMD fglrx (post release updates)
AMD fglrx-amdccle (post release updates)
Development:
Sublime Text 2
Git (The whole kablam)
Eclipse (will make eclipse-installations for android and python)
Springsource Tool Suite
Java OpenJDK 7
VirtualBox (virtual computers)
Documents:
Mendeley (reference manager)
TexLive 2011 (Backported from Ubuntu 12.10)
Browser:
Chrome
Opera
Chat:
Skype
Files:
Dropbox
Before I start the installation process I need to check
if you have any existing backups of plugins or configurations."
downloadBackup(){
# Download Dropbox_Uploader script
echo "Downloading a Dropbox Shell-script for Dropbox communication"
wget --no-verbose -O $USER_HOME/dropbox_uploader.sh https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
chmod +x $USER_HOME/dropbox_uploader.sh # Make it executable
echo "Setting up dropbox api configurations:"
# Define variables for backup stuff
# Dropbox
read -p "What is the appkey? " appkeyAnswer
read -p "What is the appsecret? " appsecretAnswer
read -p "What is the oauth_access_token? " oauth_access_tokenAnswer
read -p "What is the oauth_access_token_secret? " oauth_access_token_secretAnswer
appkey="APPKEY:${appkeyAnswer}"
appsecret="APPSECRET:${appsecretAnswer}"
oauth_access_token="OAUTH_ACCESS_TOKEN:${oauth_access_tokenAnswer}"
oauth_access_token_secret="OAUTH_ACCESS_TOKEN_SECRET:${oauth_access_token_secretAnswer}"
# Create file and append successive lines
if [ -f "${USER_HOME}/.dropbox_uploader" ]
then
rm "${USER_HOME}/.dropbox_uploader"
sudo -u $SUDO_USER touch "${USER_HOME}/.dropbox_uploader"
fi
echo $appkey > "${USER_HOME}/.dropbox_uploader"
echo $appsecret >> "${USER_HOME}/.dropbox_uploader"
echo $oauth_access_token >> "${USER_HOME}/.dropbox_uploader"
echo $oauth_access_token_secret >> "${USER_HOME}/.dropbox_uploader"
echo 'Config file written to users home folder'
echo ""
# Download and store configs and plugins
echo "Downloading backups and plugins"
sudo -u $SUDO_USER $USER_HOME/dropbox_uploader.sh download /ConfigBackups/sublime-text-2.tar.gz "${USER_HOME}/Downloads/sublime-text-2.tar.gz"
}
# Function for generating eclipse-type.desktop files
createEclipseShortcut(){
local eclipseName=$1
touch "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "[Desktop Entry]" > "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "Version=3.7" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "Name=Eclipse-${eclipseName}" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "GenericName=Text Editor" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "Exec=${USER_HOME}/.local/opt/eclipse-${eclipseName}/eclipse" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "Terminal=false" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "Icon=${USER_HOME}/.local/opt/eclipse-${eclipseName}/icon.xpm" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "Type=Application" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "Categories=IDE;Programming;${eclipseName}" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "X-Ayatana-Desktop-Shortcuts=NewWindow" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "[NewWindow Shortcut Group]" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "Name=New Window" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "Exec=${USER_HOME}/.local/opt/eclipse-${eclipseName}/eclipse -n" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
echo "TargetEnvironment=Unity" >> "/usr/share/applications/eclipse-${eclipseName}.desktop"
}
# Function for installing eclipse to opt with different names and .desktop files
installEclipse(){
local eclipseName=$1
echo "###################################################"
echo "Installing Eclipse for ${eclipseName} to ${USER_HOME}/.local/opt/eclipse-${eclipseName}"
cp -R "${USER_HOME}/Downloads/eclipse" "${USER_HOME}/.local/opt/eclipse"
mv "${USER_HOME}/.local/opt/eclipse" "${USER_HOME}/.local/opt/eclipse-${eclipseName}"
chown $SUDO_USER:$SUDO_USER -R "${USER_HOME}/.local/opt/eclipse-${eclipseName}"
createEclipseShortcut $eclipseName
echo "Installation of Eclipse ${eclipseName} complete"
echo ""
}
while true
do
# (1) prompt user, and read command line argument
read -p "Have you run this script before (you should have a ConfigBackups folder in your Dropbox folder) (y/n)?" answer
# (2) handle the input we were given
case $answer in
[yY]* ) downloadBackup
break;;
[nN]* ) echo "Okay"
break;;
* ) echo "Please enter Y or N.";;
esac
done
echo "###################################################"
echo "Creating user group developers, adding ${SUDO_USER}"
echo "Created folder under ${USER_HOME}/.local/opt"
# Create developer group
addgroup developers
usermod -a -G developers $SUDO_USER
# Add opt folder in ~/.local
sudo -u $SUDO_USER mkdir -p "${USER_HOME}/.local/opt"
# Adding third party PPAS (repository locations)
echo "###################################################"
echo 'Adding Sublime Text 2 repository'
add-apt-repository -y ppa:webupd8team/sublime-text-2 > /dev/null
echo ""
echo 'Adding TexLive 2011 backports repository'
sudo add-apt-repository ppa:texlive-backports/ppa > /dev/null
# Update System
echo "###################################################"
echo "Updating Ubuntu"
apt-get -y update > /dev/null
echo "Update complete"
echo ""
# Install amd drivers
echo "###################################################"
echo "Installing graphics drivers"
apt-get -y install fglrx-updates fglrx-amdccle-updates
echo "Configuring initial driver setup"
amdconfig --initial
echo "Graphics driver installation complete"
echo ""
# Install OpenJDK
echo "###################################################"
echo "Installing OpenJDK 7 (Java Development Kit)"
apt-get -y install openjdk-7-jdk
echo "installation of Java complete"
echo ""
# Download and install eclipse
echo "###################################################"
echo "Downloading Eclipse 64 bit debian/ubuntu (do not cancel script, download can take some minutes)"
wget --no-verbose -O "${USER_HOME}/Downloads/eclipse.tar.gz" ftp://ftp.uninett.no/pub/eclipse/technology/epp/downloads/release/juno/R/eclipse-java-juno-linux-gtk-x86_64.tar.gz
echo "Extracting archive"
tar -C "${USER_HOME}/Downloads/" -xzf "${USER_HOME}/Downloads/eclipse.tar.gz"
echo "Download complete"
echo ""
installEclipse python
installEclipse android
rm "${USER_HOME}/Downloads/eclipse.tar.gz" # Remove unecessary files
rm "${USER_HOME}/Downloads/eclipse"
# Download and install android development kit
echo "###################################################"
echo "Downloading Android for Linux (do not cancel script, download can take some minutes)"
wget --no-verbose -O "${USER_HOME}/Downloads/android.tar.gz" http://dl.google.com/android/android-sdk_r20.0.3-linux.tgz
tar -zxf "${USER_HOME}/Downloads/android.tar.gz" -C "/opt/"
chown -R root:developers /opt/android-sdk-linux
echo '' >> "${USER_HOME}/.profile"
echo "## Android SDK"
echo 'PATH=$PATH:/opt/android-sdk-linux/platform-tools' >> "${USER_HOME}/.profile"
echo 'PATH=$PATH:/opt/android-sdk-linux/tools' >> "${USER_HOME}/.profile"
source "${USER_HOME}/.profile"
echo "Android installed!"
echo ""
# Virtualbox
echo "###################################################"
echo 'Installing Virtualbox'
apt-get -y install virtualbox
echo 'Installation of Virtualbox complete'
echo ""
# Download and install chrome
echo "###################################################"
echo "Downloading Chrome 64 bit debian/ubuntu"
wget --no-verbose -O "${USER_HOME}/Downloads/chrome.deb" https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
echo "Download complete"
echo ""
echo "Installing Chrome"
dpkg -i "${USER_HOME}/Downloads/chrome.deb"
rm "${USER_HOME}/Downloads/chrome.deb"
echo "Installation of Chrome complete"
echo ""
# Download and install Opera
echo "###################################################"
echo "Downloading Opera 64 bit debian/ubuntu"
wget --no-verbose -O "${USER_HOME}/Downloads/opera.deb" ftp://ftp.uninett.no/pub/network/www/opera/linux/1201/opera_12.01.1532_amd64.deb
echo "Download complete"
echo ""
echo "Installing Opera"
dpkg -i opera.deb
rm "${USER_HOME}/Downloads/opera.deb"
echo "Installation of Opera complete"
echo ""
# Download and install skype
echo "###################################################"
echo "Downloading Skype 64 bit Ubuntu"
wget --no-verbose -O "${USER_HOME}/Downloads/skype.deb" http://www.skype.com/intl/en/get-skype/on-your-computer/linux/downloading.ubuntu64
echo "Download complete"
echo ""
echo "Installing Skype"
dpkg -i "${USER_HOME}/Downloads/skype.deb"
rm "${USER_HOME}/Downloads/skype.deb"
echo "Installation of Skype complete"
echo ""
# Sublime Text 2
echo "###################################################"
echo "Installing Sublime Text 2"
sudo apt-get -y install sublime-text
echo "Installation of Sublime Text 2 complete"
echo ""
# Dropbox
echo "###################################################"
echo "Downloading Dropbox 64 bit for Ubuntu"
wget --no-verbose -O "${USER_HOME}/Downloads/dropbox.deb" "https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_1.4.0_amd64.deb" # Avoid reserved character errors
echo "Download complete"
echo ""
echo "Installing Dropbox"
dpkg -i "${USER_HOME}/Downloads/dropbox.deb"
rm "${USER_HOME}/Downloads/dropbox.deb"
nautilus --quit
echo "Installation of Dropbox complete"
echo ""
# Finish up
echo "###################################################"
echo "###################################################"
echo "INSTALLATION OF SOFTWARE COMPLETE"
echo "PLEASE FINISH ANY GRAPHICAL DIALOGS"
echo "Users need to be member of 'developer' group"
echo "to use the Android Development Kit!"
echo "RESTART YOUR COMPUTER FOR ALL CHANGES"
echo "TO TAKE EFFECT"
echo "###################################################"
echo "###################################################"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment