Last active
February 19, 2016 11:02
-
-
Save danielalvarenga/c23449bd88779532e13d to your computer and use it in GitHub Desktop.
Script Instalação Ubuntu 14.10 (customizable for vagrant provision)
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 | |
# Autor: Daniel Alvarenga Lima <[email protected]> | |
# Versão do Ubuntu suportada: 14.10 64Bit | |
# Versão deste Script: 2015-05-20 | |
# EXECUTE | |
# sudo chmod +x script-install-all-ubuntu.sh | |
# ./script-install-all-ubuntu.sh | |
#INSTRUCTIONS | |
# Change "true" por "false" to ignore program | |
# Required only in the first time to execute this script | |
UPDATE_REPOSITORIES=false | |
# build-essential, git, curl, libs, zip, rar, nodejs | |
ESSENCIALS=false | |
# Add color for user, host, folder and git branch | |
COLORIZE_TERMINAL=false | |
# Configure GIT | |
CONFIGURE_GIT=false | |
GIT_NAME="Daniel Alvarenga" | |
GIT_MAIL="[email protected]" | |
GIT_USER="danielalvarenga" | |
# java | |
JAVA_ORACLE=false | |
JAVA_VERSION=8 | |
# if true force not install gimp, vlc, wine, torrent, spotify, filezilla, avanced_apps, google chrome, sublime text, team viewer, eclipse and resolve touchpad | |
VAGRANT_PROVISION=false | |
VAGRANT_USER=vagrant | |
VAGRANT_SYNCED_FOLDER=/vagrant | |
# image editor | |
GIMP=false | |
# player and codecs | |
VLC=false | |
# webcam | |
CHEESE=false | |
# storage | |
DROPBOX=false | |
# manage windows programs | |
WINE=false | |
# qBitTorrent | |
TORRENT=false | |
# online musics | |
SPOTIFY=false | |
# client FTP | |
FILEZILLA=false | |
# vagrant rpogram | |
VAGRANT=false | |
# synaptic, gparted, terminator | |
ADVANCED_APPS=false | |
# google chrome | |
GOOGLE_CHROME=false | |
# sublime text | |
SUBLIME_TEXT=false | |
# remote control | |
TEAM_VIEWER=false | |
# database sqlite | |
SQLITE=false | |
# database postgresql, pg admin | |
POSTGRESQL=false | |
# database manager postgresql | |
PGADMIN=false | |
# database mysql | |
MYSQL=false | |
MYSQL_USER=root | |
MYSQL_PASSWORD=root | |
# database manager mysql | |
WORKBENCH=false | |
# ruby | |
RUBY_WITH_RVM=false | |
RUBY_WITH_RBENV=false # only install if RUBY_WITH_RVM is false | |
RUBY_WITHOUT_VERSION_MANAGER=false # only install if RUBY_WITH_RVM and RUBY_WITH_RBENV is false | |
RUBY_VERSION=2.2.3 | |
#rails | |
RAILS=false | |
RAILS_VERSION=4.2.4 | |
# memcached, redis, rabbit, imagemagick | |
DEV_EXTRAS=false | |
# resolve specific touchpad problem in DELL Inspiron 13 7000 | |
RESOLVE_TOUCHPAD=false | |
# paths | |
LOG_SCRIPT=./log_script.txt | |
GITCONFIG=/etc/gitconfig | |
SSH_FOLDER=~/.ssh | |
DOWNLOADS=~/Downloads | |
BASHRC=~/.bashrc | |
MOUSE_CONFIG=/usr/share/X11/xorg.conf.d/52-mymods.conf | |
RBENV_DIR=~/.rbenv | |
RUBY_BUILD_DIR="$RBENV_DIR/plugins/ruby-build" | |
REHASH_DIR="$RBENV_DIR/plugins/rbenv-gem-rehash" | |
if $VAGRANT_PROVISION | |
then | |
GIMP=false | |
VLC=false | |
CHEESE=false | |
DROPBOX=false | |
WINE=false | |
TORRENT=false | |
SPOTIFY=false | |
FILEZILLA=false | |
VAGRANT=false | |
ADVANCED_APPS=false | |
GOOGLE_CHROME=false | |
SUBLIME_TEXT=false | |
TEAM_VIEWER=false | |
RESOLVE_TOUCHPAD=false | |
PGADMIN=false | |
WORKBENCH=false | |
#paths | |
LOG_SCRIPT=$VAGRANT_SYNCED_FOLDER/log_script.txt | |
DOWNLOADS=$VAGRANT_SYNCED_FOLDER | |
BASHRC=/home/$VAGRANT_USER/.bashrc | |
SSH_FOLDER=/home/$VAGRANT_USER/.ssh | |
RBENV_DIR=/home/$VAGRANT_USER/.rbenv | |
RUBY_BUILD_DIR=$RBENV_DIR/plugins/ruby-build | |
REHASH_DIR=$RBENV_DIR/plugins/rbenv-gem-rehash | |
fi | |
function install { | |
echo installing $1 | |
shift | |
sudo apt-get -y -f install "$@" >$LOG_SCRIPT 2>$LOG_SCRIPT | |
} | |
if $UPDATE_REPOSITORIES | |
then | |
echo "*** Add repositories" | |
sudo add-apt-repository -y ppa:chris-lea/node.js | |
sudo add-apt-repository -y ppa:webupd8team/java | |
echo "*** Add the Spotify repository" | |
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys D2C19886 | |
echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list | |
echo "*** Update and upgrade" | |
sudo apt-get update | |
sudo apt-get -y upgrade | |
fi | |
if $ESSENCIALS | |
then | |
install "Build Essencial" build-essential | |
install Git git-core | |
install CURL curl | |
install DevLibs zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev python-software-properties | |
install "Nokogiri gem dependencies" libxml2 libxml2-dev libxslt1-dev | |
install 7zip p7zip-full | |
install RAR p7zip-rar | |
install NodeJS nodejs | |
install Vim vim | |
fi | |
if $JAVA_ORACLE | |
then | |
sudo apt-get -y remove --purge openjdk-* | |
echo oracle-java$JAVA_VERSION-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections | |
install "Java $JAVA_VERSION" oracle-java$JAVA_VERSION-installer | |
install SetDefaultJava$JAVA_VERSION oracle-java$JAVA_VERSION-set-default | |
install Maven maven | |
fi | |
if $GIMP | |
then | |
install Gimp gimp | |
fi | |
if $VLC | |
then | |
install VLC vlc | |
fi | |
if $CHEESE | |
then | |
install Cheese cheese | |
fi | |
if $DROPBOX | |
then | |
install Dropbox nautilus-dropbox | |
fi | |
if $WINE | |
then | |
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections | |
install Wine wine | |
fi | |
if $TORRENT | |
then | |
install qBitTorrent qbittorrent | |
fi | |
if $SPOTIFY | |
then | |
install Spotify spotify-client | |
fi | |
if $FILEZILLA | |
then | |
install FileZilla filezilla | |
fi | |
if $VAGRANT | |
then | |
install VirtualBox virtualbox | |
echo "*** installing Vagrant" | |
VAGRANT_FILE=$DOWNLOADS/vagrant_1.7.4_x86_64.deb | |
if [ -f $VAGRANT_FILE ] | |
then | |
echo "" | |
else | |
cd $DOWNLOADS | |
wget https://releases.hashicorp.com/vagrant/1.7.4/vagrant_1.7.4_x86_64.deb | |
fi | |
sudo dpkg -i $VAGRANT_FILE | |
install "Vagrant extras" nfs-kernel-server nfs-common portmap | |
echo "*** installing Vagrant plugins" | |
vagrant plugin install vagrant-omnibus >$LOG_SCRIPT 2>$LOG_SCRIPT | |
vagrant plugin install vagrant-berkshelf | |
echo "*** installing CHEF-DK 0.10.0 64bits" | |
CHEF_FILE=$DOWNLOADS/chefdk_0.10.0-1_amd64.deb | |
if [ -f $CHEF_FILE ] | |
then | |
echo "" | |
else | |
cd $DOWNLOADS | |
wget https://opscode-omnibus-packages.s3.amazonaws.com/debian/6/x86_64/chefdk_0.10.0-1_amd64.deb | |
fi | |
sudo dpkg -i $CHEF_FILE | |
fi | |
if $ADVANCED_APPS | |
then | |
install Synaptic synaptic # gerenciador de pacotes do linux | |
install GParted gparted # gerenciador de dicos avançado | |
install Terminator terminator # terminal | |
fi | |
if $GOOGLE_CHROME | |
then | |
echo "*** installing Google Chrome 64bits" | |
install "Google chrome dependencies" libindicator7 libappindicator1 gconf2-common gconf-service-backend libasound2-data libasound2 libgconf-2-4 libnspr4 libnss3-nssdb libnss3 libxft2 libpangox-1.0-0 libpangoxft-1.0-0 libpango1.0-0 libxss1 fonts-liberation xdg-utils gconf-service | |
CHROME_FILE=$DOWNLOADS/google-chrome-stable_current_amd64.deb | |
if [ -f $CHROME_FILE ] | |
then | |
echo "" | |
else | |
cd $DOWNLOADS | |
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb | |
fi | |
sudo dpkg -i $CHROME_FILE | |
fi | |
if $SUBLIME_TEXT | |
then | |
echo "*** installing Sublime Text 3 64bits" | |
SUBLIME_FILE=$DOWNLOADS/sublime-text_build-3103_amd64.deb | |
if [ -f $SUBLIME_FILE ] | |
then | |
echo "" | |
else | |
cd $DOWNLOADS | |
wget https://download.sublimetext.com/sublime-text_build-3103_amd64.deb | |
fi | |
sudo dpkg -i $SUBLIME_FILE | |
fi | |
if $TEAM_VIEWER | |
then | |
echo "*** installing Team Viewer" | |
install "Team Viewer dpendencies" libjpeg62 libxtst6 libjpeg62:i386 libxtst6:i386 | |
TEAM_VIEWER_FILE=$DOWNLOADS/teamviewer_i386.deb | |
if [ -f $TEAM_VIEWER_FILE ] | |
then | |
echo "" | |
else | |
cd $DOWNLOADS | |
wget http://download.teamviewer.com/download/teamviewer_i386.deb | |
fi | |
sudo dpkg -i $TEAM_VIEWER_FILE | |
fi | |
if $SQLITE | |
then | |
install SQLite sqlite3 libsqlite3-dev | |
fi | |
if $POSTGRESQL | |
then | |
install PostgreSQL postgresql postgresql-contrib libpq-dev | |
fi | |
if $PGADMIN | |
then | |
install "PG Admin" pgadmin3 | |
fi | |
if $MYSQL | |
then | |
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_USER" | |
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_PASSWORD" | |
install MySQL mysql-server mysql-client libmysqlclient-dev | |
mysql -uroot -proot <<SQL | |
CREATE USER 'rails'@'localhost'; | |
CREATE DATABASE activerecord_unittest DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; | |
CREATE DATABASE activerecord_unittest2 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; | |
GRANT ALL PRIVILEGES ON activerecord_unittest.* to 'rails'@'localhost'; | |
GRANT ALL PRIVILEGES ON activerecord_unittest2.* to 'rails'@'localhost'; | |
GRANT ALL PRIVILEGES ON inexistent_activerecord_unittest.* to 'rails'@'localhost'; | |
SQL | |
fi | |
if $WORKBENCH | |
then | |
echo "*** installing Workbench" | |
install "Workbench dependeencies" libctemplate2 libgeos-c1 libhdf4-0-alt libhdf5-7 libmysqlclient18 libnetcdfc7 libpcrecpp0 libpq5 libxerces-c3 | |
WORKBENCH_FILE=$DOWNLOADS/mysql-workbench-community-6.3.5-1ubu1404-amd64.deb | |
if [ -f $WORKBENCH_FILE ] | |
then | |
echo "" | |
else | |
cd $DOWNLOADS | |
wget http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-6.3.5-1ubu1404-amd64.deb | |
fi | |
sudo dpkg -i $WORKBENCH_FILE | |
fi | |
if $RUBY_WITH_RVM | |
then | |
echo "installing RVM with RUBY $RUBY_VERSION" | |
if ! type rvm >$LOG_SCRIPT 2>$LOG_SCRIPT; then | |
cd | |
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 | |
install "RVM dependencies" gawk libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison | |
curl -sSL https://get.rvm.io | bash -s stable | |
source ~/.rvm/scripts/rvm | |
fi | |
rvm requirements | |
rvm install ruby-$RUBY_VERSION | |
rvm use $RUBY_VERSION --default | |
gem install bundler -N >$LOG_SCRIPT 2>$LOG_SCRIPT | |
elif $RUBY_WITH_RBENV | |
then | |
echo "installing Rbenv with Ruby $RUBY_VERSION" | |
if [ -d $RBENV_DIR ] | |
then | |
cd $RBENV_DIR | |
git pull | |
else | |
git clone https://github.com/sstephenson/rbenv.git $RBENV_DIR | |
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc | |
echo 'eval "$(rbenv init -)"' >> ~/.bashrc | |
export PATH="$HOME/.rbenv/bin:$PATH" | |
eval "$(rbenv init -)" | |
fi | |
if [ -d $RUBY_BUILD_DIR ] | |
then | |
cd $RUBY_BUILD_DIR | |
git pull | |
else | |
git clone https://github.com/sstephenson/ruby-build.git $RUBY_BUILD_DIR | |
cd $RUBY_BUILD_DIR | |
./install.sh | |
fi | |
if [ -d $REHASH_DIR ] | |
then | |
cd $REHASH_DIR | |
git pull | |
else | |
git clone https://github.com/sstephenson/rbenv-gem-rehash.git $REHASH_DIR | |
fi | |
rbenv install $RUBY_VERSION -s | |
rbenv global $RUBY_VERSION | |
rbenv rehash | |
echo installing Bundler | |
echo "gem: --no-ri --no-rdoc" > ~/.gemrc | |
gem install bundler -N >$LOG_SCRIPT 2>$LOG_SCRIPT | |
rbenv rehash | |
elif $RUBY_WITHOUT_VERSION_MANAGER | |
then | |
install Ruby ruby2.2 ruby2.2-dev | |
update-alternatives --set ruby /usr/bin/ruby2.2 >$LOG_SCRIPT 2>$LOG_SCRIPT | |
update-alternatives --set gem /usr/bin/gem2.2 >$LOG_SCRIPT 2>$LOG_SCRIPT | |
echo "installing Bundler" | |
gem install bundler -N >$LOG_SCRIPT 2>$LOG_SCRIPT | |
fi | |
if $RAILS | |
then | |
echo "installing Rails $RAILS_VERSION" | |
gem install rails -v $RAILS_VERSION -N >$LOG_SCRIPT 2>$LOG_SCRIPT | |
fi | |
if $DEV_EXTRAS | |
then | |
install memcached memcached | |
install Redis redis-server | |
install RabbitMQ rabbitmq-server | |
install ImageMagick imagemagick | |
cd | |
fi | |
if $RESOLVE_TOUCHPAD | |
then | |
sudo touch $MOUSE_CONFIG | |
sudo chmod 777 $MOUSE_CONFIG | |
echo -e Section \"InputClass\" > $MOUSE_CONFIG | |
echo -e Identifier \"Force Clickpad Config\" >> $MOUSE_CONFIG | |
echo -e MatchDriver \"synaptics\" >> $MOUSE_CONFIG | |
echo -e Option \"ClickPad\" \"true\" >> $MOUSE_CONFIG | |
echo -e Option \"EmulateMidButtonTime\" \"0\" >> $MOUSE_CONFIG | |
echo -e Option \"SoftButtonAreas\" \"50% 0 82% 0 0 0 0 0\" >> $MOUSE_CONFIG | |
echo -e Option \"SecondarySoftButtonAreas\" \"58% 0 0 15% 42% 58% 0 15%\" >> $MOUSE_CONFIG | |
echo -e EndSection >> $MOUSE_CONFIG | |
fi | |
if $COLORIZE_TERMINAL | |
then | |
echo -e "function parse_git_branch () {" >> $BASHRC | |
echo -e " git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'" >> $BASHRC | |
echo -e "}" >> $BASHRC | |
echo -e 'RED="\[\033[01;31m\]"' >> $BASHRC | |
echo -e 'YELLOW="\[\033[01;33m\]"' >> $BASHRC | |
echo -e 'GREEN="\[\033[01;32m\]"' >> $BASHRC | |
echo -e 'BLUE="\[\033[01;34m\]"' >> $BASHRC | |
echo -e 'NO_COLOR="\[\033[00m\]"' >> $BASHRC | |
echo -e 'PS1="$GREEN\u@\h$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "' >> $BASHRC | |
source $BASHRC | |
fi | |
echo "*** remove packages" | |
sudo apt-get clean | |
if $CONFIGURE_GIT | |
then | |
sudo rm $GITCONFIG | |
sudo touch $GITCONFIG | |
sudo chmod 777 $GITCONFIG | |
echo -e "[user]" >> $GITCONFIG | |
echo -e " name = $GIT_NAME" >> $GITCONFIG | |
echo -e " email = $GIT_MAIL" >> $GITCONFIG | |
echo -e "[core]" >> $GITCONFIG | |
echo -e " editor = vim -f" >> $GITCONFIG | |
echo -e "[alias]" >> $GITCONFIG | |
echo -e " df = diff" >> $GITCONFIG | |
echo -e " st = status" >> $GITCONFIG | |
echo -e " ci = commit" >> $GITCONFIG | |
echo -e " co = checkout" >> $GITCONFIG | |
echo -e " br = branch" >> $GITCONFIG | |
echo -e " lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative" >> $GITCONFIG | |
echo -e " ctags = !.git/hooks/ctags" >> $GITCONFIG | |
echo -e "[color]" >> $GITCONFIG | |
echo -e " branch = auto" >> $GITCONFIG | |
echo -e " diff = auto" >> $GITCONFIG | |
echo -e " grep = auto" >> $GITCONFIG | |
echo -e " interactive = auto" >> $GITCONFIG | |
echo -e " status = auto" >> $GITCONFIG | |
echo -e " ui = 1" >> $GITCONFIG | |
echo -e "[branch]" >> $GITCONFIG | |
echo -e " autosetuprebase = always" >> $GITCONFIG | |
echo -e "[github]" >> $GITCONFIG | |
echo -e " user = $GIT_USER" >> $GITCONFIG | |
ssh-keygen -t rsa -b 4096 -C "$GIT_MAIL" -N "" -f $SSH_FOLDER/id_rsa_git | |
echo "" | |
echo "" | |
echo "**********************" | |
echo "CONFIGURE GIT USER" | |
echo "" | |
echo "Adicione a public ssh key em 'https://github.com/settings/ssh':" | |
echo "" | |
cat $SSH_FOLDER/id_rsa_git.pub | |
echo "" | |
echo "**********************" | |
fi | |
if $POSTGRESQL | |
then | |
echo "" | |
echo "" | |
echo "**********************" | |
echo "CONFIGURE O POSTGRES" | |
echo "" | |
echo "Para definir usuário e senha no PostgreSQL, execute manualmente os seguintes comandos:" | |
echo "sudo -u postgres createuser NOME_DO_USUARIO -s" | |
echo "sudo -u postgres psql" | |
echo "\password NOME_DO_USUARIO" | |
echo "**********************" | |
fi | |
if $SUBLIME_TEXT | |
then | |
echo "" | |
echo "" | |
echo "**********************" | |
echo "MELHORE O SUBLIME TEXT" | |
echo "" | |
echo "Abra o Sublime Text 3 e exiba o terminal em View > Show Console" | |
echo "Copie e cole o código abaixo no terminal do Sublime Text 3 e pressione enter:" | |
echo "" | |
echo "import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)" | |
echo "" | |
echo "Reinicie o Sublime Text 3" | |
echo "**********************" | |
fi | |
exit |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment