I always envied Mac users until I found Elementary OS 3 years ago and I must confess, I have never thought of trying any other Linux distro and my burning desire for a Mac has been quenched by Elementary OS(eOS) and hell-no going back to Windows 10 for development. I simply love the look and feel of eOS.
Follow through this guide and get your machine ready for full-stack development. By the way, I am not a Full Stack Developer yet but I'm working towards that goal. Run the commands below by opening your terminal from the Applications Menu on the top left and let's go.
Change computer name
If you skipped this during installation, you can change it with the commands below
Hint: replace <computerName>
with your prefered name
sudo gedit /etc/hosts
# 127.0.1.1 <computerName>
sudo gedit /etc/hostname
#<computerName>
Update the OS
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt install software-properties-common apt-transport-https curl
sudo apt autoremove
Install APT-FAST
If you chose to skip this step, start every apt
command with sudo
. Unless you know what you are doing, stick with default selected options during the configuration.
sudo add-apt-repository -y ppa:apt-fast/stable
sudo apt -y install apt-fast
echo $'\nalias apt="apt-fast"' >> ~/.bashrc
source ~/.bashrc
Install Brave Browser
apt install apt-transport-https curl gnupg
curl -s brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add -
echo "deb [arch=amd64] brave-browser-apt-release.s3.brave.com stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list
apt update
apt install brave-browser
Install Firefox Developer Edition
umake web firefox-dev
Install system tweak tools
sudo apt install software-properties-common
sudo add-apt-repository ppa:philip.scott/elementary-tweaks
sudo apt update
sudo apt install elementary-tweaks
Get the La-Capitaine-Icon-Theme by @keeferrourke
mkdir ~/.icons && cd ~/.icons
git clone github.com/keeferrourke/la-capitaine-icon-…
cd la-capitaine-icon-theme && ./configure
Get the La-Capitaine-Cursor-Theme by @keeferrourke
sudo add-apt-repository ppa:dyatlov-igor/la-capitaine
apt install la-capitaine-cursor-theme
Fix Lag on Login/Restart by @Jason Waddington
sudo mv /etc/xdg/autostart/at-spi-dbus-bus.desktop /etc/xdg/autostart/at-spi-dbus-bus.disabled
sudo mv /usr/share/upstart/xdg/autostart/at-spi-dbus-bus.desktop /usr/share/upstart/xdg/autostart/at-spi-dbus-bus.disabled
Install gedit text editor
apt install gedit
Improves battery life by reducing the number of running programs
sudo add-apt-repository ppa:linrunner/tlp
apt update
apt install tlp tlp-rdw
sudo tlp start
Install Laptop Mode Tools
sudo add-apt-repository ppa:ubuntuhandbook1/apps
apt update
apt install laptop-mode-tools
Install Archive Formats
apt install unace rar unrar p7zip-rar p7zip sharutils uudeview mpack arj cabextract lzip lunzip
Install Snap Package Manager
apt update
apt installl snapd
Install Ubuntu Make
sudo add-apt-repository ppa:lyzardking/ubuntu-make
apt update
apt install ubuntu-make
Install Git and SSH
apt install openssh-server
apt install git
ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub
# copy the output and create a new SSH key on [Github](github.com/settings/ssh/new)
Install Zeal, the Offline Documentation for Developers
apt install zeal
Install Eddy for installing .deb files
Install Xtreme Downlaod Manager
A powerful download manager and a must for every computer.
Download it here.
Extract the downloaded tar.xz file and follow the instructions in the readme.txt
file.
Install Gparted Partition maker
apt install gparted
Install Docker
Follow the tutorial on Installing Docker CE on elementary OS 5.0 Juno for a detailed explanation of the commands below
# uninstall previous versions
apt remove \
docker \
docker-engine \
docker.io \
containerd \
runc
# Install Docker CE via the Docker repository
apt update
apt install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
# Add Docker's GPG key, and verify that you have the key with the
# fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88:
curl -fsSL download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
# your output must be exactly like below
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
# Add the stable Docker repository.
# The key here is to use bionic,
# because elementary OS 5.0 Juno is build on Ubuntu 18.04 LTS "Bionic Beaver".
sudo apt-add-repository "deb [arch=amd64] download.docker.com/linux/ubuntu bionic stable"
# Install Docker CE
sudo apt update
sudo apt install docker-ce
# Add your user to the docker group to avoid typing sudo for every docker command:
sudo usermod -aG docker ${USER}
su - ${USER}
id -nG
# Install DockerCompose
sudo curl -L "github.com/docker/compose/releases/downloa…$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Make the binary executable
sudo chmod +x /usr/local/bin/docker-compose
# Note: If the command docker-compose fails after installation, check your path.
# You can also create a symbolic link to /usr/bin or any other directory in your path.
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# Optionally, install command completion for the bash and zsh shell.
sudo curl -L raw.githubusercontent.com/docker/compose/1… -o /etc/bash_completion.d/docker-compose
# Test the installation.
docker-compose --version
Install Kitematic, a Docker GUI
So you got Docker installed but unfortunately, Docker Desktop is only available for Windows and Mac. But for Linux, we have Kitematic, an official cross-platform Docker GUI. Download here
Add some fonts
Get the beautiful Operator Mono Book Lig fonts here
Install your favourite IDE and languages
umake
makes installing dev tools in just one command. Run umake ide --help
to see all IDE you can install or umake --list
to see what tools are available
Install Visual Studio Code
umake ide visual-studio-code
Install Netbeans
umake ide netbeans
Install PHP Storm
umake ide phpstorm
Install Sublime
umake ide sublime-text
Install Pycharm
umake ide pycharm
# umake ide pycharm-educational
# umake ide pycharm-professional
Install Webstorm
umake ide webstorm
Install GraphQL Playground
You can test your GraphQL queries right in your browser provided you added the playground dependency to your app. But sometimes, it fails to load the playground when offline so instaling a local playground makes the dev experience smooth. Download it here
Install BeeKeeper Studio
# Install our GPG key
wget --quiet -O - deb.beekeeperstudio.io/beekeeper.key | sudo apt-key add -
# add our repo to your apt lists directory
echo "deb deb.beekeeperstudio.io stable main" | sudo tee /etc/apt/sources.list.d/beekeeper-studio-app.list
# Update apt and install
apt update
apt install beekeeper-studio
Languages and Frameworks
A developer is nothing without a programming language or a framework. It is the main tool we used to build great ideas into solutions.
Install Node JS
curl -o- raw.githubusercontent.com/nvm-sh/nvm/v0.35… | bash
source ~/.bashrc
# list all available versions
nvm list-remote
# or
nvm ls-remote
# nvm install <version> # latest: 15.8.0
nvm install lts/fermium
#check your node and npm version
npm -v
node -v
# alternatives to npm
# 1. PNPM
npm i -g pnpm
pnpm -v
#2. Yarn
npm install -g yarn
yarn -v
Install Rust
umake rust rust-lang
Install Go
umake go go-lang
Install Kotlin
umake kotlin kotlin-lang
Install Python
Python 3 and Python 2 should come pre-installed with Elementary OS. But to get the latest version, run these commands.
apt update
apt upgrade
python3 -V
Installl PHP and Apache 2
apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
apt update
# apt install <phpversion> libapache2-mod-<phpversion>
# available versions: php7.0, php7.1, php7.2, php7.3, php7.4, php8.0
apt install php8.0 libapache2-mod-php8.0
# install these php extensions
# apt install <phpversion>-ext
apt install php8.0-gd php8.0-xml php8.0-soap php8.0-mbstring php8.0-mysql php8.0-pgsql
# you can install multiple versions per your needs
# set the default version using sudo update-alternatives --set php /usr/bin/<phpversion>
sudo update-alternatives --set php /usr/bin/php8.0
# disable php version module for apache2 using `sudo a2dismod <phpversion>`
sudo a2dismod php5.6
# enable php version module for apache2 using `sudo a2enmod <phpversion>`
sudo a2enmod php8.0
# restart apache server
sudo systemctl restart apache2
Composer
php -r "copy('getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
# install globally
sudo mv composer.phar /usr/local/bin/composer
# add composesr to env PATH
sudo gedit ~/.bashrc
# place this at the last line of the ~/.bashrc file
export PATH="$PATH:$HOME/.config/composer/vendor/bin:/usr/local/bin/composer"
# update you env PATH
source ~/.bashrc
# Install PHP Code Sniffer for linting php
composer global require "squizlabs/php_codesniffer=*"
#test to see if composer is installed globally
composer
MySQL
Follow the tutorial on How To Install MySQL on Ubuntu 20.04 for a detailed explanation of the commands below
apt update
apt install mysql-server
sudo mysql_secure_installation
sudo mysql
mysql -u parables -p
systemctl status mysql.service
sudo mysqladmin -p -u parables version
Laravel
The commands below were sourced from the official documentation.
Replace the example-app
with the name of your project
Installation via Composer You must first install composer to use this method. See Install Composer above.
composer create-project laravel/laravel example-app cd example-app composer update php artisan serve
Installation via the Laravel Installer You must first install composer to use this method. See Install Composer above.
composer global require laravel/installer laravel new example-app cd example-app composer update php artisan serve
- Installation via Laravel Sail
First, you must install Docker if you haven't done so yet. See Install Docker above.
curl -s laravel.build/example-app | bash cd example-app ./vendor/bin/sail up
Android Apps
# install Android Studio
umake android android-studio
# launch the android studio and
# complete the wizard to install the Android SDK(recommended)
# or run use `umake` to install the Android SDK
umake android android-platform-tools android-sdk android-ndk
Flutter
First, install Android Studio [see above] and complete the wizard to download and install the Android SDK
# install Android Studio
umake ide android-studio
# get the Flutter and Dart SDK
umake dart dart-sdk flutter-sdk
flutter doctor --android-licenses
# config your paths if you used `umake` to install android studio and the Android SDK
flutter config --android-studio-dir="$HOME/.local/share/umake/android/android-studio/"
flutter config --android-sdk="$HOME/Android/Sdk"
# install VS Code
umake ide visual-studio-code
# Check your Flutter installation
flutter doctor run
Install Multimedia Codecs and Enable DVD Playback
For the sake of watching tutorials :-)
apt install ubuntu-restricted-extras
apt install libavcodec-extra
apt install libdvd-pkg
Install LibreOffice, an alternative to Microsoft Office
sudo apt install libreoffice libreoffice-gtk3 libreoffice-style-elementary