General Information and Checklist¶
Covers the minimum setup needed to turn Linux into a developer machine.
This document is written for
Ubuntuversions. (Mainly for Ubuntu 18.04 LTS (Bionic Beaver)) It will soon be prepared for Debian 10 (Buster) as well.
root and sudo users and user directories¶
To install programs or make system-level changes on Linux, there is a built-in user called root. Without leaving your own user space, you temporarily become the root user and install things. However, this is not a good method, because the root user of a machine is the god of that machine, and if you make a mistake as root, there is no going back.
For this reason, ordinary users of the system are given some of the privileges of the root user. On Ubuntu this happens automatically during installation.
A user who has been given some of the privileges of the
rootuser is called asudo user. On Linux systems, user directories are located in the/homedirectory. It is dangerous to dance around in directories outside/home.



$USERis a system variable and refers to the name of the user currently using the system.Attention! Linux (unlike Windows) is a case-sensitive operating system. That is, uppercase and lowercase letters are treated as different.
If you type
echo $USERin the terminal and pressenter, you will see your username.If you get lost in the terminal, you can type the
pwdcommand and pressenterto see the directory you are currently in.In the terminal,
./refers to the directory you are in and../refers to the parent directory.
Basic System Update and Package Installation Commands¶
To install a program on Linux (from now on let's call it a package), type the following in the terminal
and run it.
At this point sudo asks for a password. This password is your computer's login password.
Updating the packages already installed on the computer (system update) before starting the installation is not mandatory, but it is a good practice (best practice).
To do this, run the following in the terminal
# fetches package information from the repositories
sudo apt update
# optionally, if you want to see the list of packages
# that will be upgraded before installing them
apt list --upgradable
# upgrades/installs the new packages that need to be updated
sudo apt upgrade
or, in short
sudo apt update && sudo apt upgradetype it and press
enterto run it.After the update finishes, you can start doing any installations you like.
Please refer to this snippet: Updating ubuntu 18.04 for easy updating script.
General Installations¶
Installed with the package manager (apt)¶
Refer to this for Debian 10 (Buster) PHP repos.
sudo add-apt-repository universe
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
# One-liner
sudo apt install -y \
git curl jq unrar-free p7zip-full p7zip-rar unzip \
gimp wine-stable vokoscreen gnome-tweaks
sudo apt install -y apache2 apache2-utils
# php 7.4
sudo apt install -y \
php7.4 php7.4-cli php7.4-common php7.4-mbstring \
php7.4-zip php7.4-xml php7.4-curl php7.4-bcmath \
php7.4-json php7.4-gd php7.4-mysql php7.4-opcache \
php7.4-xml libapache2-mod-php7.4 php7.4-apcu php7.4-pcov \
php-uploadprogress
sudo a2enmod expires headers deflate rewrite php7.4
# php 8.1
sudo apt-get install -y \
php8.1 php8.1-cli php8.1-common php8.1-mbstring \
php8.1-zip php8.1-xml php8.1-curl php8.1-bcmath \
php8.1-gd php8.1-mysql php8.1-opcache \
php8.1-xml libapache2-mod-php8.1 php8.1-apcu php8.1-pcov \
php8.1-uploadprogress
sudo a2enmod http2 expires headers deflate rewrite php8.1
# Check whether only one version of PHP is installed.
sudo update-alternatives --config php
Installed by downloading¶
Visual Studio Code¶
Option 1: Install with Snap
Option 2: Install by downloading
VS Code Official Download Page 64-Bit
Google Chrome¶
Yandex Browser¶
Firefox Developer Edition¶
Firefox Official Download Page
Download & Install¶
mkdir -p /home/$USER/stand-alone-apps
cd /home/$USER/Downloads && \
wget -O firefox-developer.tar.bz2 \
"https://download.mozilla.org/?product=firefox-devedition-latest-ssl&os=linux64&lang=en-US"
cd /home/$USER/Downloads && \
tar -jxf firefox-developer.tar.bz2 \
--directory /home/$USER/stand-alone-apps/
mv /home/$USER/stand-alone-apps/firefox/ \
/home/$USER/stand-alone-apps/firefox_dev/
Create Shortcut Icon¶
Paste the text below into the file. Make sure changing the username with your username.
[Desktop Entry]
Name=Firefox Developer
GenericName=Firefox Developer Edition
Exec= /home/username/stand-alone-apps/firefox_dev/firefox
Terminal=false
Icon=/home/username/stand-alone-apps/firefox_dev/browser/chrome/icons/default/default128.png
Type=Application
Categories=Application;Network;X-Developer;
Comment=Firefox Developer Edition Web Browser.
Other¶
Docker && Lando¶
mkdocs¶
Environment info¶
python --version
# Python 2.7.17
pip --version
# pip 19.2.3 from /home/username/.local/lib/python2.7/site-packages/pip (python 2.7)
python3 --version
# Python 3.6.9
pip3 --version
# pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
mkdocs --version
# mkdocs, version 1.1 from /home/username/.local/lib/python3.6/site-packages/mkdocs (Python 3.6)
Installation¶
sudo apt install python3-pip
# python3 -m pip install --user --upgrade pip
pip3 install mkdocs
pip3 install mkdocs-material==4.6.3 \
mkdocs-minify-plugin pygments \
mkdocs-git-revision-date-localized-plugin
Troubleshooting¶
If mkdocs serve or mkdocs build does not work (because of mkdocs command not found error), please add the path to your $PATH variable in your .bashrc or profile file.
export PATH="/home/username/.local/lib/python3.6/site-packages:$PATH"
Conky System Monitor¶
Please refer to conky theme repository.
Shutter (Screenshot Tool)¶
Please refer to New Shutter PPA For Ubuntu 20.04, 19.10, 19.04 And 18.04 | Linux Mint 19.x.
Installed with commands taken from tutorials¶
node & npm & n¶
First, install node and npm from official Ubuntu repos.
Their versions will be as follows as of October, 7 2020.
npm is already the newest version (3.5.2-0ubuntu4)
nodejs is already the newest version (8.10.0~dfsg-2ubuntu0.4)
It is better to manage node and npm itself with n.
Globally install n with the following command.
Then, download node versions you wish to use from this release page.
# download the latest version (14.x for now)
sudo n --download latest
# download 10.x LTS latest
sudo n --download 10.22.1
# download 12.x LTS latest
sudo n --download 12.19.0
Now you can switch between node/npm versions whenever you want by typing the following command, which will show you a list of node version you have downloaded previously and let you select one.
If you encounter
command not found, etc. errors, consider exporting your path or restarting your machine.
Utils & More¶
Creating an SSH Key and/or transferring it from another machine¶
Please refer to this page for further details if needed.
The SSH Key must always be created with a
passphrase.
ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "[email protected]"
SSH Key Permissions¶
chmod 700 ./.ssh
chmod 644 ./.ssh/authorized_keys
chmod 644 ./.ssh/known_hosts
chmod 644 ./.ssh/config
chmod 600 ./.ssh/id_rsa
chmod 644 ./.ssh/id_rsa.pub
chmod 600 ./.ssh/id_ed25519
chmod 644 ./.ssh/id_ed25519.pub
Visual Studio Code Extensions & Settings¶
The list and settings will be added.
Ubuntu Gnome Tweak Tool¶
The settings will be added.
RIOT¶
Radical Image Optimization Tool.
Zoom¶
AnyDesk¶
Download and install AnyDesk remote desktop connection from here.
MS Core Fonts¶
SQLeo Visual Query Builder¶
SQLeo Visual Query Builder - sourceforge
SQLeo Visual Query Builder - GitHub
gedit /home/$USER/.local/share/applications/sqleo.desktop
[Desktop Entry]
Name=SQLeo Visual Query Builder
GenericName=SQLeo Visual Query Builder
Exec= java -jar /home/username/stand-alone-apps/SQLeoVQB.2019.01.rc1/SQLeoVQB.jar
Terminal=false
Icon=/home/username/stand-alone-apps/SQLeoVQB.2019.01.rc1/query_734389.png
Type=Application
Categories=Application;Network;X-Developer;
Comment=SQLeo Visual Query Builder.