Overview
This guide covers the installation and configuration of essential tools for Ubuntu systems, including:
- Nala: A modern frontend for APT with improved user experience, parallel downloads, and better formatted output
- GNOME Tweaks: Advanced customization tool for GNOME desktop environment
- Flatpak: Universal package management system for Linux applications
- Development Tools: Compilers, libraries, and utilities for software development
What is Nala?
Nala is a frontend for the APT package manager that provides several advantages over traditional apt:
- Parallel Downloads: Downloads packages concurrently, significantly speeding up installations
- Better UI: Clean, formatted output with progress bars and color-coded information
- Transaction History: Easy rollback of package installations
- Mirror Selection: Automatic selection of fastest mirrors with
nala fetch - Improved Error Messages: More readable and actionable error reporting
Performance Comparison
Nala typically achieves 2-3x faster package downloads compared to apt due to parallel downloading (default: 3 concurrent connections).
System Setup and Package Installation
1sudo apt update && sudo apt upgrade2sudo apt install nala3sudo nala fetch4sudo ubuntu-drivers devices5sudo nala install gnome-tweaks6sudo nala install gnome-shell-extension-manager7sudo nala install flatpak8
9flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo10
11sudo nala install htop neofetch bpytop clang cargo libc6-i386 libc6-x32 libu2f-udev samba-common-bin exfat-fuse default-jdk curl wget unrar linux-headers-$(uname -r) git gstreamer1.0-vaapi unzip ntfs-3g p7zip htop neofetch bpytop git12
13sudo apt install ubuntu-restricted-extrasDetailed Component Breakdown
1. Nala Configuration
After installing Nala, the fetch command tests mirrors and selects the fastest ones:
1sudo nala fetchThis command:
- Tests latency to multiple Ubuntu mirrors
- Ranks mirrors by speed
- Allows you to select top N mirrors (typically 3-5)
- Updates
/etc/apt/sources.list.d/nala-sources.list
Advanced Nala Usage:
1# View transaction history2nala history3
4# Rollback last transaction5sudo nala history undo6
7# Show detailed package information8nala show <package-name>9
10# Search with better formatting11nala search <keyword>2. Graphics Drivers
1sudo ubuntu-drivers devicesThis command detects your hardware and recommends appropriate proprietary drivers. Output example:
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C82sv00001458sd0000372Abc03sc00i00
vendor : NVIDIA Corporation
driver : nvidia-driver-535 - distro non-free recommended
driver : nvidia-driver-525 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
To install recommended drivers:
1sudo ubuntu-drivers autoinstall3. GNOME Customization Tools
GNOME Tweaks provides access to:
- Appearance customization (themes, icons, cursors)
- Font configuration
- Top bar settings
- Window management behavior
- Startup applications
- Extensions management
GNOME Shell Extension Manager offers:
- Browse and install extensions from extensions.gnome.org
- Enable/disable extensions
- Configure extension settings
- Update extensions
Useful GNOME Extensions:
1# After installing extension-manager, install popular extensions:2# - Dash to Dock/Panel3# - AppIndicator and KStatusNotifierItem Support4# - Blur my Shell5# - Clipboard Indicator6# - Vitals (system monitor)4. Flatpak Setup
Flatpak enables containerized application distribution with:
- Sandboxing: Enhanced security through isolation
- Universal Compatibility: Works across distributions
- Multiple Versions: Run different versions simultaneously
- Automatic Updates: Managed through flatpak update
Common Flatpak Commands:
1# List installed flatpaks2flatpak list3
4# Search for applications5flatpak search <app-name>6
7# Install application8flatpak install flathub <app-id>9
10# Update all flatpaks11flatpak update12
13# Remove unused runtimes14flatpak uninstall --unused15
16# View app permissions17flatpak info --show-permissions <app-id>5. Development Tools Explained
The bulk installation includes essential development packages:
System Monitoring
- htop: Interactive process viewer with CPU, memory, and swap usage
- bpytop: Resource monitor with network and disk I/O statistics
- neofetch: System information tool displaying OS, kernel, CPU, GPU, and memory
Compilers and Build Tools
- clang: C/C++/Objective-C compiler from LLVM project
- cargo: Rust package manager and build system
- default-jdk: Java Development Kit (OpenJDK)
System Libraries
- libc6-i386: 32-bit GNU C Library for running 32-bit applications on 64-bit systems
- libc6-x32: x32 ABI GNU C Library (64-bit CPU with 32-bit pointers)
- linux-headers-$(uname -r): Kernel headers for building kernel modules
File System Support
- exfat-fuse: ExFAT file system support (common for SD cards and USB drives)
- ntfs-3g: Read/write support for NTFS file systems (Windows partitions)
- samba-common-bin: SMB/CIFS file system tools for Windows network shares
Security and Hardware
- libu2f-udev: Universal 2nd Factor (U2F) USB device support for hardware security keys
Compression and Archive Tools
- unrar: RAR archive extraction
- unzip: ZIP archive extraction
- p7zip: 7-Zip archive support (7z, XZ, BZIP2, GZIP, TAR, ZIP, WIM)
Media and Codecs
- gstreamer1.0-vaapi: Hardware-accelerated video decoding using VA-API
Network and Download Tools
- curl: Command-line tool for transferring data with URL syntax
- wget: Non-interactive network downloader
Version Control
- git: Distributed version control system
6. Ubuntu Restricted Extras
This meta-package includes:
- Microsoft TrueType Core Fonts: Arial, Times New Roman, Comic Sans, etc.
- Media Codecs: MP3, AAC, H.264, H.265 playback support
- Flash Player: Legacy web content support
- Unrar: Proprietary RAR extraction
Note: During installation, you'll need to accept the Microsoft EULA for fonts.
Post-Installation Verification
Check Nala installation:
1nala --versionVerify Flatpak:
1flatpak --version2flatpak remotesCheck installed development tools:
1gcc --version2clang --version3cargo --version4java --version5git --versionLaunch GNOME Tweaks:
1gnome-tweaksSystem Resource Monitoring
After installing monitoring tools, you can check system resources:
1# Interactive process viewer2htop3
4# Python-based resource monitor5bpytop6
7# System information8neofetchPerformance Optimization Tips
-
Enable Parallel Downloads in Nala: Already enabled by default (3 connections)
-
Configure Swap (for systems with limited RAM):
1# Check current swap2swapon --show3
4# Create 4GB swap file (if needed)5sudo fallocate -l 4G /swapfile6sudo chmod 600 /swapfile7sudo mkswap /swapfile8sudo swapon /swapfile9
10# Make permanent11echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab- Optimize Flatpak:
1# Remove unused runtimes and reduce disk usage2flatpak uninstall --unused -y- Clean Package Cache:
1# With Nala2sudo nala clean3
4# With APT5sudo apt autoremove6sudo apt autocleanTroubleshooting
Nala Fetch Issues
If nala fetch fails or times out:
1# Manually edit sources2sudo nano /etc/apt/sources.list3
4# Or reset to original APT sources5sudo rm /etc/apt/sources.list.d/nala-sources.listGNOME Extensions Not Working
1# Restart GNOME Shell (X11)2Alt + F2, type 'r', press Enter3
4# On Wayland, log out and back inFlatpak Permission Issues
1# Install Flatseal for GUI permission management2flatpak install flathub com.github.tchx84.FlatsealDriver Conflicts
1# Check loaded modules2lsmod | grep -E 'nvidia|nouveau'3
4# If conflicts exist, blacklist nouveau5sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"6sudo update-initramfs -uAdditional Resources
- Nala GitHub: https://github.com/volitank/nala
- GNOME Tweaks: https://gitlab.gnome.org/GNOME/gnome-tweaks
- Flatpak Documentation: https://docs.flatpak.org/
- Ubuntu Driver Management: https://help.ubuntu.com/community/BinaryDriverHowto/