Last active
June 14, 2021 18:30
-
-
Save Coronel-B/8d3da8ce21b80ffab1e0784fe4fdc5e4 to your computer and use it in GitHub Desktop.
Initialize Ubuntu 20.04 LTS with the installation of dependencies and apps
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 | |
: ' | |
Initialize Ubuntu 20.04 LTS with the installation of dependencies and apps | |
USING: | |
$ cd; sudo apt-get install git; sudo rm -Rf 8d3*4; git clone https://gist.github.com/8d3da8ce21b80ffab1e0784fe4fdc5e4.git; cd 8d3*4; sudo chmod +x init_Ubuntu_20.04.sh; ./init_Ubuntu_20.04.sh | |
PRECONDITION: Run the script without sudo | |
' | |
echo " | |
Some downloads will be requested in the installation process: | |
Android Studio: https://developer.android.com/studio/archive | |
" | |
: ' | |
Ask for installation | |
Using: | |
$ command='echo Hello World' | |
$ askInstallation DataGrip "$command" | |
Source: https://stackoverflow.com/a/64309449/5279996 | |
' | |
declare -a resultInstalled | |
declare -a resultNotInstalled | |
function askInstallation() { | |
echo $'\n'"----- $1:"$'\n' | |
continue=false | |
while [ "$continue" == false ] | |
do | |
read -p "Do you want to install? (y/n) " choice | |
case "$choice" in | |
y|Y ) | |
# Lamda of installation | |
eval $2 | |
echo "Success: $1" | |
resultInstalled+=[$1] | |
continue=true | |
;; | |
n|N ) | |
echo "$1 not installed" | |
resultNotInstalled+=[$1] | |
continue=true | |
;; | |
* ) echo "invalid" | |
;; | |
esac | |
done | |
} | |
downloadsDirEs="/Descargas" | |
downloadsDirEn="/Downloads" | |
# TODO: Should be generic | |
if [ -d ~/Downloads ] # For file "if [ -f /home/rama/file ]" | |
then | |
downloadsDir="$downloadsDirEn" | |
else | |
downloadsDir="$downloadsDirEs" | |
fi | |
# -------------- | |
# General Dependencies | |
cd && mkdir -p Temp && cd Temp | |
echo $'\n----- Update && Upgrade of SO:\n' | |
sudo apt update && sudo apt upgrade | |
echo $'\n----- DPKG:\n' && sudo apt-get install dpkg | |
echo $'\n----- UNZIP:\n' && sudo apt-get install unzip | |
sudo apt update && sudo apt upgrade | |
# ----------- | |
echo $'\n----- Sublime Text:\n' | |
sudo snap install sublime-text --classic | |
echo $'\n----- Gimp:\n' | |
sudo snap install gimp | |
echo $'\n----- Network | Speedtest-cli:\n' | |
sudo apt-get install speedtest-cli | |
# ------------ | |
commandPostman='sudo snap install postman' | |
askInstallation Postman "$commandPostman" | |
commandDataGrip='sudo snap install datagrip --classic' | |
askInstallation DataGrip "$commandDataGrip" | |
commandPostgreSQL='sudo apt-get install postgresql postgresql-contrib postgresql-client' | |
askInstallation PostgreSQL "$commandPostgreSQL" | |
# ------------ | |
echo $'\n----- Telegram:\n' | |
cd ~/Temp | |
wget https://telegram.org/dl/desktop/linux | |
tar xf linux | |
sudo mv ~/Temp/Telegram /usr/local | |
# ------------ | |
echo $'\n----- JetBrains Toolbox:\n' | |
echo $'First, download file from direct link: https://www.jetbrains.com/es-es/toolbox-app/download/download-thanks.html\n' | |
continue=false | |
while [ "$continue" == false ] | |
do | |
read -p "The download of the .tar.gz was done in ~/Downloads? (y/n) " choice | |
case "$choice" in | |
y|Y ) | |
mv ~/Downloads/jetbrains-toolbox-*.tar.gz ~/Temp | |
tar -xvzf ~/Temp/jetbrains-toolbox-*.tar.gz | |
sudo mv ~/Temp/jetbrains-toolbox-*/ /usr/local | |
echo "Success: JetBrains Toolbox" | |
continue=true | |
;; | |
n|N ) | |
JetbrainsToolbox=": not installed" | |
continue=true | |
;; | |
* ) echo "invalid" | |
;; | |
esac | |
done | |
# ------------ | |
echo $'\n----- Android Studio:\n' | |
: ' | |
Install or update Android Studio. And delete old version | |
Using: | |
$ cd /usr/local/android-studio/bin | |
$ ./studio.sh | |
PRECONDITION: Run the script without sudo | |
OBS: The downloaded file will be deleted | |
' | |
echo $'First, download file from direct link: https://developer.android.com/studio/archive\n' | |
continue=false | |
while [ "$continue" == false ] | |
do | |
read -p "The download of the .tar.gz was done in ~/Downloads? (y/n) " choice | |
read -p "Introduce the build type of IDE [stable, beta or canary]: " buildType | |
case "$choice" in | |
y|Y ) | |
mkdir -p ~/Temp && cd ~/Temp | |
downloadedFileName="android-studio-*-linux.tar.gz" | |
mv ~/Downloads/$downloadedFileName ~/Temp | |
tar -xvzf ~/Temp/$downloadedFileName | |
sudo rm $downloadedFileName | |
# Remove old version if exists | |
[ -e /usr/local/android-studio-$buildType ] && sudo rm -R /usr/local/android-studio-$buildType | |
sudo mv android-studio/ /usr/local/android-studio-$buildType | |
echo "Success: Android Studio" | |
continue=true | |
;; | |
n|N ) | |
AndroidStudio=": not installed" | |
continue=true | |
;; | |
* ) echo "invalid" | |
;; | |
esac | |
done | |
# ------------ | |
echo $'\n----- IntelliJ IDEA Ultimate:\n' | |
echo $'First, download file from direct link: https://www.jetbrains.com/es-es/idea/download/download-thanks.html?platform=linux\n' | |
continue=false | |
while [ "$continue" == false ] | |
do | |
read -p "The download of the .tar.gz was done in ~/Downloads? (y/n) " choice | |
case "$choice" in | |
y|Y ) | |
mv ~/Downloads/ideaIU-*.tar.gz ~/Temp | |
tar -xvzf ~/Temp/ideaIU-*.tar.gz | |
sudo mv idea-IU-*/ /usr/local | |
echo "Success: IntelliJ IDEA Ultimate" | |
continue=true | |
;; | |
n|N ) | |
IdeaIU=": not installed" | |
continue=true | |
;; | |
* ) echo "invalid" | |
;; | |
esac | |
done | |
# ------------ | |
echo $'\n----- Slack:\n' | |
# Con SnapCraft genero problemas, instalar en .deb | |
echo $'First, download file from direct link: https://slack.com/intl/es-ar/downloads/instructions/ubuntu\n' | |
continue=false | |
while [ "$continue" == false ] | |
do | |
read -p "The download of the .deb was done in ~/Downloads? (y/n) " choice | |
case "$choice" in | |
y|Y ) | |
mkdir -p ~/Temp && cd ~/Temp | |
downloadedFileName="slack-desktop-*-amd64.deb" | |
mv ~/Downloads/$downloadedFileName ~/Temp | |
sudo dpkg -i slack-desktop-* | |
echo "Success: Slack" | |
continue=true | |
;; | |
n|N ) | |
slack=": not installed" | |
continue=true | |
;; | |
* ) echo "invalid" | |
;; | |
esac | |
done | |
# ------------ | |
echo $'\n----- Apache Tomcat:\n' | |
: ' | |
Precondition: Run as sudo | |
Source: | |
. linuxize.com/post/how-to-install-tomcat-9-on-ubuntu-18-04 | |
. https://stackoverflow.com/a/62381751/5279996 | |
' | |
echo $'First, download file from "Source Code Distribution" in direct link: https://tomcat.apache.org/download-80.cgi\n' | |
continue=false | |
while [ "$continue" == false ] | |
do | |
read -p "The download of the .tar.gz was done in ~/Downloads? (y/n) " choice | |
case "$choice" in | |
y|Y ) | |
mkdir -p ~/Temp && cd ~/Temp | |
downloadedFileName="apache-tomcat-*.tar.gz" | |
mv ~/Downloads/$downloadedFileName ~/Temp | |
tar -xvzf ~/Temp/$downloadedFileName | |
sudo mkdir /opt/tomcat | |
sudo mkdir /opt/tomcat/latest | |
tomcatDir="apache-tomcat-*" | |
sudo mv ~/Temp/$tomcatDir /opt/tomcat | |
# To have more control over Tomcat versions and updates, create a symbolic link | |
# For upgrade, simply unpack the newer version and change the symlink | |
sudo ln -s /opt/tomcat/$tomcatDir /opt/tomcat/latest | |
sudo chmod 755 -R /opt/tomcat | |
# Create a systemd Unit File | |
# “m” or “M” for MB, or “g” or “G” for GB | |
cat <<EOF >/etc/systemd/system/tomcat.service | |
[Unit] | |
Description=Tomcat 9 servlet container | |
After=network.target | |
[Service] | |
Type=forking | |
User=tomcat | |
Group=tomcat | |
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64" | |
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true" | |
Environment="CATALINA_BASE=/opt/tomcat/latest" | |
Environment="CATALINA_HOME=/opt/tomcat/latest" | |
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid" | |
Environment="CATALINA_OPTS=-Xms1G -Xmx1024M -server -XX:+UseParallelGC" | |
ExecStart=/opt/tomcat/latest/bin/startup.sh | |
ExecStop=/opt/tomcat/latest/bin/shutdown.sh | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
sudo systemctl daemon-reload | |
sudo systemctl start tomcat | |
sudo systemctl status tomcat | |
# Enable the Tomcat service to be automatically started at boot time | |
sudo systemctl enable tomcat | |
echo "Success: Apache Tomcat" | |
continue=true | |
;; | |
n|N ) | |
ApacheTomcat=": not installed" | |
continue=true | |
;; | |
* ) echo "invalid" | |
;; | |
esac | |
done | |
# ------------ | |
echo $'\n----- Gofogle Chrome Stable:\n' | |
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb | |
sudo dpkg -i google-chrome-stable_current_amd64.deb | |
# ------------ | |
echo $'\n----- Open JDK:\n' | |
sudo apt-get install openjdk-8-jdk | |
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk | |
echo $JAVA_HOME | |
# ------------ | |
# HARDWARE: | |
echo $'\n----- lm sensors:\n' | |
: ' | |
Monitorices the temp | |
Using: | |
$ sudo sensors | |
$ psensor # launch UI | |
' | |
sudo apt-get install lm-sensors | |
sudo sensors-detect # configure | |
sudo apt-get install psensor | |
# ------------ | |
# Terminal | |
echo $'\n----- TLDR: helper\n' | |
sudo apt-get install tldr | |
# using: $ tldr ls | |
echo $'\n----- FZF: selector with filter\n' | |
sudo apt-get install fzf | |
# using: $ ls | fzf | |
# ------------ | |
echo $'\n----- Zoom:\n' | |
wget https://zoom.us/client/latest/zoom_amd64.deb | |
sudo apt install ./zoom_amd64.deb | |
# ------------ | |
echo $'\n----- Git:\n' | |
sudo apt-get install git | |
echo " | |
Installed: | |
Gimp | |
Git | |
Google Chrome Stable | |
lm sensors | |
oh-my-zsh | |
Open JDK | |
Postman | |
Speedtest-cli | |
Sublime Text | |
Telegram | |
TLDR | |
Zoom | |
$resultInstalled | |
Not installed: | |
$resultNotInstalled | |
Jetbrains: | |
Android Studio Canary $AndroidStudio | |
ApacheTomcat $ApacheTomcat | |
Intellij IDEA Ultimate $IdeaIU | |
Jetbrains Toolbox $JetbrainsToolbox | |
" | |
: ' | |
\n----- Oh My Zsh:\n | |
Precondition: Install last because script execution ends | |
Postcondition: Log out from SO is required | |
Observation: Dont remember config plugins. | |
Source: github.com/robbyrussell/oh-my-zsh | |
' | |
echo $'\n----- Oh My Zsh:\n' | |
sudo apt install zsh | |
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" | |
chsh -s $(which zsh) | |
sudo apt-get install tig | |
echo "Log out from SO is required by Oh My Zsh" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment