dongskyler / ubuntu-20-desktop-post-installation-script

Bash script for automated program installations and environment setups on Ubuntu 20 Desktop, making it immediately usable for software development (JavaScript/Node, Python, PHP and Ruby on Rails)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ubuntu 20 Desktop Post-Installation Script

Repository: https://github.com/dongskyler/ubuntu-20-desktop-post-installation-script


Table of contents


Description

This Bash script installs and configures essential programs on a freshly installed Ubuntu 20.04 LTS Desktop (Focal Fossa). See the full list of programs to be installed here.

Although Ubuntu is a well made Linux distro, things are really easy to break, when I do software development, when I frequently sudo commands and when I try out new things. Consequently, I often reinstall operating systems on my computers (especially my Linux). I am tired of reinstalling and reconfiguring programs by hand.

I wrote this script to automate the installations and configurations of essential programs — including Google Chrome, LaTex, Nginx, Node.js, PHP, Python 3, Ruby on Rails, Vim, VS Code, etc — so that I can immediately work on projects without spending time setting up the environment.

The code is under MIT license. You can modify the code to suit your needs.


Badges

CodeFactor License: MIT

GitHub issues GitHub issues-closed GitHub pull-requests GitHub pull-requests closed


How to use this script

Option 1: Using Git

  • Copy and paste the following command into your terminal and press "Enter":
sudo apt-get update -y &&
  sudo apt-get install -y git &&
  git clone \
    https://github.com/dongskyler/ubuntu-20-desktop-post-installation-script.git \
    "~/.ubuntu-post-installation" --depth 1 &&
  cd "~/.ubuntu-post-installation/" &&
  bash ./main.sh

Option 2: Downloading this repository as a Zip file

  • Download this repository as a ZIP file. You do need the entire repository to properly run this script.
  • Unzip it to a directory.
  • Change directory to unzipped directory.
  • Run the shell script with command (without sudo)
    bash ./main.sh

Programs to be installed

  • ClamAV and ClamTK
  • cURL
  • Docker
  • ElasticSearch
  • ELinks
  • Flameshot
  • Git
  • GnuPG
  • Google Chrome
  • MongoDB Community Edition
  • MySQL
  • Nginx
    • http://localhost:5000 pointing at "~/Sites/", with Nginx and PHP hooked up
  • Node.js
  • Node Version Manager (nvm)
  • Node Package Manager (npm)
  • PHP
    • http://localhost:5000 pointing at "~/Sites/", with Nginx and PHP hooked up
    • Packages to be installed
      • php
      • php-fpm
      • php-mysql
  • PulseAudio
  • Python 3
    • Virtual environment powered by virtualenv and virtualenvwrapper
      • A virtual environment named jupyter will be created.
      • Use command workon jupyter to activate.
      • Use command deactivate to deactivate the virtual environment.
      • Insider jupyter virtual environment, the following packages will be installed:
        • Jupyter Notebook
        • numpy
        • pandas
        • matplotlib
  • Skype
  • Slack
  • Rails
  • Ruby with rbenv
  • Terminal theme: 'Earthsong'
  • TexLive
  • Tor
  • Tor Browser
  • Vim
  • VirtualBox (Please install it manually with commands here)
  • Visual Studio Code
    • Extensions to be installed
      • bmewburn.vscode-intelephense-client
      • dsznajder.es7-react-js-snippets
      • eamodio.gitlens
      • esbenp.prettier-vscode
      • foxundermoon.shell-format
      • james-yu.latex-workshop
      • jdforsythe.add-new-line-to-files
      • ms-python.python
      • sibiraj-s.vscode-scss-formatter
      • visualstudioexptteam.vscodeintellicode
  • Wget
  • Yarn
  • Zoom
  • Zsh
    • Add syntax highlighting functionality
    • Set Zsh theme to 'bira'
    • Change the default shell from Bash to Zsh

Programs to be uninstalled

  • None yet

Configurations

  • Install a new terminal profile
  • Pin the following favorite apps (and only the following ones in that order) to the dash
    • Files
    • Terminal
    • Google Chrome
    • Firefox
    • Slack
    • Zoom
    • Skype
    • Settings

Logs

A log will be generated at "~/.ubuntu_post_install.log".

If the log file is already present, new logs will be appended to the file.


Notes

VirtualBox is excluded from the installation script, due to complications of its interactive full-window dialogues of agree-to-terms and MOK key setups.

Please install it manually with the following command:

wget -qO- \
  http://download.virtualbox.org/virtualbox/debian/oracle_vbox_2016.asc |
  sudo apt-key add -
printf "\
deb http://download.virtualbox.org/virtualbox/debian \
focal non-free contrib\n" |
  sudo tee /etc/apt/sources.list.d/virtualbox.org.list

sudo apt-get update -y
sudo apt-get install -y virtualbox-6.1

You may want to install the VirtualBox Extension Pack as well:

sudo apt-get install -y virtualbox-ext-pack

License

The code is under MIT license.

About

Bash script for automated program installations and environment setups on Ubuntu 20 Desktop, making it immediately usable for software development (JavaScript/Node, Python, PHP and Ruby on Rails)

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Shell 99.4%Language:HTML 0.5%Language:PHP 0.1%