Setup Ubuntu 22.04 for Developer
My Ubuntu 22.04 Desktop setup
I am using Ubuntu 22.04 LTS Gnome edition, you can download it from the official Ubuntu website here
Table of contents
- Update System
- Flatpak Installation
- Homebrew Installation
- Installing zsh and ohmyzsh
- Devlopment Tools
- Application Software
- Themes
- Uninstall
Update
Update the system
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
Flatpak
Install flatpak
# install flarpak
sudo apt-get install flatpak
# flatpak plugin for software store
sudo apt-get install -y gnome-software-plugin-flatpak
# adding flathub repository
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
See the documentation of the detail here
Homebrew
# requirments
sudo apt-get install build-essential curl file git
# installation
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# then set the path, the instruction will be given to you when you run the installation command and its complete
The official Linux installation instruction here
The official site is here
zsh_and_ohmyzsh
sudo apt-get install -y zsh curl git
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
zsh_auto_suggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# set zsh-autosuggestions plugin in zsh
# open .zshrc file with nano
nano ~/.zshrc
# add zsh-autosuggestions in plugins
plugins=(git zsh-autosuggestions)
# press ^o enter then ^x to exit
# load the zsh file changes
source ~/.zshrc
For details information’s check the official repo here
Development-tools
go-lang
installing go-lang using snap, check it here
sudo snap install go --classic
# or using brew
brew install go
Hugo
installing hugo with snap check it here, I am using the extended edition for sass support
sudo snap install hugo --channel=extended/stable
# or using brew
brew install hugo
For more information about Hugo check the official site here
python3
installing python 3
sudo apt-get install -y python3-pip
sudo apt-get install -y build-essential libssl-dev libffi-dev python3-dev
sudo apt-get install -y python3-venv
Check the Digital Ocean tutorial for more information here
miniconda
Install mini conda for python development
# add the exicution permission to the script
chmod +x Miniconda3-latest-Linux-x86_64.sh
# run the script and ans yes for the questions
./Miniconda3-latest-Linux-x86_64.sh
anaconda
# install the packages
sudo apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6
Download the Anaconda installer from here
cd ~/Downloads
chmod +x Anaconda3*
./Anaconda3 # and hit tab key
# answer yes for all the prompt
# set conda path in zsh
source ~/anaconda3/bin/activate
conda init zsh
conda deactivate
# if you want to turn off autometic activation of conda bash then turn it off
conda config --set auto_activate_base false
JupyterLab
JupyterLab is a web-based interactive development environment for Jupyter notebooks, code, and data.
# insall with conda if conda is install
conda install -c conda-forge jupyterlab
# or install with pip
pip install jupyterlab
# run jupyter lab
jupyter-lab
Check the official doc here
JupyterNotebook
The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text.
# insall with conda if conda is install
conda install -c conda-forge notebook
# or install with pip
pip install notebook
# run jupyter notebook
jupyter notebook
Check the official doc here
Java
Install open JDK and open JRE
# open JRE
sudo apt-get install -y default-jre
# open JDK
sudo apt-get install -y default-jdk
Check the Digital Ocean tutorial for more information here
nvm
Install node version manager
# install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
# set nvm plugin in zsh
# open .zshrc file wiht nano
nano ~/.zshrc
# add nvm in plugins
plugins=(git nvm)
# press ^o enter then ^x to exit
# load the zsh file changes
source ~/.zshrc
For more information check the official repository here
nodejs
Install node version 14 with nvm
nvm i 14
For more uses see the official doc here
yarn
Installing yarn with npm
npm i -g yarn
For more information see the official doc here
pnpm
Installing pnpm with npm
npm i -g pnpm
For more information see the official doc here
Lamp-stack
# install apache2
sudo apt-get install apache2
# allow apache with ufe firewall
sudo ufw allow in "Apache"
sudo ufw allow in "Apache Full"
# install mysql-server as a database
sudo apt-get install mysql-server
# add password to the database and press y (yes) for all the prompt
sudo mysql_secure_installation
# run mysql
sudo mysql
# exit from mysql
exit
# install php and php extensions
sudo apt-get install -y php libapache2-mod-php php-mysql
# additional php extensions if you want to use laravel
sudo apt-get install -y openssl php-common php-curl php-json php-mbstring php-mysql php-xml php-zip
For a details tutorial about LAMP stack check out the Digital Ocean tutorial here
Composer
Install composer for managing application-level packages in PHP
# install the additional dependencies
sudo apt-get install -y php-cli unzip
# move to home directory
cd ~
# download composer
curl -sS https://getcomposer.org/installer -o composer-setup.php
# verify it
HASH=`curl -sS https://composer.github.io/installer.sig`
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
# install composer globally
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
# test the composer
composer
For details information about installation check the Digital Ocean tutorial here
To know more about composer check the official doc here
Docker
Install docker using snap, check it here
sudo snap install docker
For more information about docker check the official site here
Run docker without sudo
, reference here
Firacode
Free monospaced font with programming ligatures. Official Repository
# add repository
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
# update
sudo apt-get update
# install fira code
sudo apt-get install -y fonts-firacode
For details, installation instruction check dev.to blog here
Application-software
Application Name | Application Description | Install Command |
---|---|---|
Tweak Tool | Graphical interface for advanced GNOME 3 settings. Official Site. Repository | sudo apt-get install gnome-tweak-tool |
Dconf Editor | Viewer and editor of applications’ internal settings. Official Site. Repository | sudo apt-get install -y dconf-editor |
Stacer | System Optimizer & Monitoring. Official Site. Repository | sudo apt-get install stacer |
GIMP | Photo editor. Official Site. Flathub | flatpak install flathub org.gimp.GIMP |
VLC Player | Medai Player. Official Site. Flathub. Repository | flatpak install flathub org.videolan.VLC |
Visual Studio Code | Code Editor. Official Site. Flathub. Repository | flatpak install flathub com.visualstudio.code |
Telegram Desktop | Medai Player. Official Site. Flathub. Source Code | flatpak install flathub org.telegram.desktop |
Inkscape | Vector graphics editor. Official Site. Flathub. Repository | flatpak install flathub org.inkscape.Inkscape |
Obs Studio | Live streaming and screen recording. Official Site. Flathub. Repository | flatpak install flathub com.obsproject.Studio |
Flameshot | Screenshot software. Flathub. Repository | flatpak install flathub org.flameshot.Flameshot |
qBittorrent | Vector graphics editor. Official Site. Flathub. Repository | flatpak install flathub org.qbittorrent.qBittorrent |
Android Studio | Official integrated development environment. Official Site. Flathub | flatpak install flathub com.google.AndroidStudio |
DBeaver Community | SQL client software. Official Site. Flathub. Repository | flatpak install flathub io.dbeaver.DBeaverCommunity |
Postman | Platform for API Development. Official Site. Flathub | flatpak install flathub com.getpostman.Postman |
Draw.io | Online diagramming website. Official Site. Flathub. Repository | flatpak install flathub com.jgraph.drawio.desktop |
Gravit Designer | Vector graphic design app. Official Site. Flathub | flatpak install flathub io.designer.GravitDesigner |
Evince | Document viewer. Official Site. Flathub. Repository | flatpak install flathub org.gnome.Evince |
Okular | Universal document viewer. Offical Site. Flathub. Repository | flatpak install flathub org.kde.okular |
PyCharm Community | Python IDE. Official Site. Flathub | flatpak install flathub com.jetbrains.PyCharm-Community |
Beekeeper Studio | SQL Editor and Database Manager. Official Site. Snap. Repository | sudo snap install beekeeper-studio |
Xournal++ | Handwriting notetaking software. Official Site. Flathub. Repository | flatpak install flathub com.github.xournalpp.xournalpp |
Visual Studio Code
Code editor. Official Site
Free Download Manger (FDM)
Download manager. Official Site
Ulauncher
Application launcher. Official Site
Typora
Markdown editor. Official Site
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
sudo apt-get install typora
Themes
- https://www.gnome-look.org/p/1403328/
- https://www.pling.com/p/1405756/
- https://www.gnome-look.org/p/1411743/
grub theme
shell extensions
Uninstall
I am not playing any games so, I uninstall all the pre-install games that come with Ubuntu and I also uninstall Transmission
because I will install qBitTorrent
.
sudo apt-get remove aisleriot gnome-mahjongg gnome-mines gnome-sudoku transmission transmission-common transmission-gtk
sudo apt-get autoremove
Uninstall Miniconda
rm -r ~/miniconda3/