Last active
August 29, 2015 14:05
-
-
Save snorremd/08356fca5b1e053a8ece to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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