If you’ve just installed Linux Mint 22.3 (Cinnamon Edition), this guide will help you transform a fresh installation into a fully functional development and daily-use environment.
This tutorial is especially useful for beginners who want a ready-to-use system for browsing, development, and productivity.
⌨️ 1. Keyboard Language Setup (Bangla + English)
To add multiple keyboard layouts:
- Open System Settings
- Go to Keyboard
- Navigate to Layouts tab
- Add:
- English
- Bangla (Probhat)
🎯 Shortcut Recommendation
Use:
Super (Windows key) + Space
🚀 2. Install Essential Applications
Open Software Manager and install the following:
📦 Recommended Apps
- VLC (media player)
- Brave (privacy-focused browser)
- Kazam (screen recorder)
- Geany (lightweight code editor)
- Discord
- Telegram
Install Visual Studio Code (with auto updates)
# Download latest version
wget "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64" -O vscode.deb
# Install
sudo apt install ./vscode.deb
This automatically:
- Adds Microsoft repository
- Enables future updates via
apt
🌐 Install Additional Browsers & Tools
Download & Install Manually
- Google Chrome
- pCloud
- Microsoft Edge: https://www.microsoft.com/edge
Install Chromium via Flatpak
flatpak install flathub org.chromium.Chromium
flatpak run org.chromium.Chromium
🐍 3. Python Development Setup
Check Python Installation
python3 --version
Install pip (Python Package Manager)
sudo apt install python3-pip
pip3 --version
Install Development Tools (Recommended)
sudo apt install python3-dev python3-venv build-essential
Optional: Use python command instead of python3
sudo apt install python-is-python3
Install Common Python Packages
pip install requests pandas openpyxl
🧪 Virtual Environment Setup
# Create virtual environment
python3 -m venv venv
# Activate
source venv/bin/activate
# Install packages inside venv
pip install pandas
🌐 4. LAMP Stack Setup (For Web Development)
LAMP = Linux + Apache + MariaDB + PHP
🔄 Update System
sudo apt update && sudo apt upgrade -y
🌍 Install Apache (Web Server)
sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl start apache2
👉 Test in browser:
http://localhost
🗄️ Install MariaDB (Database)
sudo apt install mariadb-server mariadb-client -y
Secure Installation
sudo mysql_secure_installation
Recommended options:
- Set root password → YES
- Remove anonymous users → YES
- Disallow remote root login → YES
- Remove test DB → YES
- Reload privileges → YES
🧩 Install PHP
sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip unzip -y
Check version:
php -v
⚙️ Enable PHP in Apache
sudo a2enmod php*
sudo systemctl restart apache2
🧪 Test PHP
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
👉 Visit:
http://localhost/info.php
🛠️ Install phpMyAdmin
sudo apt install phpmyadmin -y
During installation:
- Select apache2
- Choose YES for DB config
- Set password
Enable phpMyAdmin
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
sudo systemctl restart apache2
👉 Access:
http://localhost/phpmyadmin
⚠️ Fix Common MariaDB Login Issue
sudo mysql
Then run:
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('StrongPassword');
FLUSH PRIVILEGES;
EXIT;
👤 Create Separate Database User (Recommended)
sudo mysql
CREATE USER 'mydbadmin'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON *.* TO 'mydbadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
🔁 Enable Rewrite Module
sudo a2enmod rewrite
sudo systemctl restart apache2
🔐 Set Proper Permissions
sudo chown -R $USER:www-data /var/www/html
sudo chmod -R 775 /var/www/html
🏠 5. Setup Local Development Directory (~/www)
Instead of /var/www/html, you can work from your home directory.
📁 Create Directory
mkdir -p ~/www
chmod -R 755 ~/www
⚙️ Create Virtual Host
sudo nano /etc/apache2/sites-available/local.conf
Paste:
<VirtualHost *:80>
ServerName local.test
DocumentRoot /home/YOUR_USERNAME/www
<Directory /home/YOUR_USERNAME/www>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/local_error.log
CustomLog ${APACHE_LOG_DIR}/local_access.log combined
</VirtualHost>
🔌 Enable Site
sudo a2ensite local.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
🌐 Add Local Domain (Optional)
sudo nano /etc/hosts
Add:
127.0.0.1 local.test
🔓 Fix Permission Access
chmod o+x /home/YOUR_USERNAME
🔁 Restart Apache
sudo a2enmod rewrite
sudo systemctl restart apache2
🧪 Test Local Project
echo "<?php echo 'Hello, it works.';" > ~/www/test.php
👉 Open:
🖥️ JFYI, My System Overview (Example Setup)
- Processor: Intel Core i5-10400
- Graphics: Intel CometLake-S GT2
- RAM: 16GB
- Desktop Environment: Cinnamon 6.6.7
- Display Server: X11
🔧 Git Setup & GitHub SSH Integration on Linux Mint
After setting up your development environment, the next essential step is configuring Git and connecting it securely with GitHub using SSH.
This section will guide you through installation, configuration, and authentication.
📦 Install Git from the official Linux Mint (Ubuntu-based) repositories
sudo apt update -y
sudo apt install git
✅ Verify Git Installation
git --version
👤 Configure Git Identity
Set your name and email (used in commits):
git config --global user.name "Full Name"
git config --global user.email "youremail@example.com"
🔍 Verify Configuration
git config --list
🔐 Connect Git with GitHub via SSH
Using SSH allows secure communication with GitHub without entering your password every time.
🔎 Step 1: Check Existing SSH Keys
ls -al ~/.ssh
If you see files like:
id_ed25519id_ed25519.pub
👉 You already have an SSH key and can reuse it. Otherwise, generate a new one.
🔑 Step 2: Generate a New SSH Key
ssh-keygen -t ed25519 -C "youremail@example.com"
When prompted:
- Press Enter to accept the default location
- Optionally set a passphrase (recommended for extra security)
This will create:
- Private key:
~/.ssh/id_ed25519 - Public key:
~/.ssh/id_ed25519.pub
ℹ️ Note:
ed25519is a modern cryptographic algorithm known for strong security, fast performance, and smaller key size.
🚀 Step 3: Start SSH Agent & Add Key
Start the SSH agent:
eval "$(ssh-agent -s)"
Add your private key:
ssh-add ~/.ssh/id_ed25519
📋 Step 4: Copy Your Public Key
cat ~/.ssh/id_ed25519.pub
Copy the full output (it starts with ssh-ed25519).
🌐 Step 5: Add SSH Key to GitHub
- Go to your GitHub account
- Click your profile → Settings
- Navigate to SSH and GPG keys
- Click New SSH key
- Paste your copied key
- Add a title (e.g., My Linux Mint Desktop)
- Click Save
🔍 Step 6: Test the Connection
ssh -T git@github.com
- First time: type
yesto continue - Expected output:
Hi username! You've successfully authenticated, ...
✅ You’re Ready
You can now:
- Clone repositories without passwords
- Push and pull securely
- Work efficiently with Git and GitHub
💡 Pro Tips
- Use SSH instead of HTTPS for better workflow
- Keep your private key secure (
~/.ssh/id_ed25519) - Backup your SSH keys if you reinstall your system
🟢 Node.js & Version Manager (N) Setup on Linux Mint
If you’re doing modern web development (Vue, React, build tools, etc.), installing Node.js is essential. This section shows how to install Node.js and manage multiple versions using N (Node version manager).
📦 Step 1: Install Node.js (via NodeSource)
Linux Mint’s default repository often provides an older Node.js version. It’s better to install the latest LTS version from NodeSource.
# Install curl (if not already installed)
sudo apt install curl -y
# Add NodeSource repository (LTS version)
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
# Install Node.js
sudo apt install nodejs -y
✅ Verify Installation
node -v
npm -v
📌 Step 2: Install N (Node Version Manager)
n is a simple and fast Node.js version manager built on top of npm.
sudo npm install -g n
🔄 Step 3: Install & Switch Node Versions
Install Latest Version
sudo n latest
Install LTS Version
sudo n lts
Install Specific Version
sudo n 18
Switch Between Installed Versions
sudo n
👉 This opens an interactive menu to select versions.
🔍 Verify Active Version
node -v
⚠️ Fix Common Path Issue (if node version doesn’t change)
Sometimes the system still points to the old Node.js path.
hash -r
Or restart terminal:
exec $SHELL
💡 Pro Tips
- Use LTS version for stability in production projects
- Use latest version for testing new features
- Avoid mixing system Node.js and
nversions - If you face permission issues, consider using a non-root setup
✅ Final Result
After setup, you can:
- Run Node.js applications
- Use npm/yarn for package management
- Switch Node versions easily for different projects
Our Linux Mint system is now fully ready for modern JavaScript development.
