📦 Linux: Package Management & Automation
::: info In ambito ingegneristico, non installiamo software “manualmente”. Utilizziamo gestori di pacchetti avanzati, repository verificati e script di automazione per garantire che l’ambiente di sviluppo sia identico su ogni nodo della rete. :::
1. Nala: Un frontend moderno per APT
APT è lo standard, ma Nala è la sua evoluzione in termini di usabilità e performance. Nala offre download paralleli, un’interfaccia leggibile e, soprattutto, la gestione della cronologia delle transazioni.
Installazione e Primo Setup
sudo apt update && sudo apt install nala -y
# Trova i mirror più veloci per la tua posizione
sudo nala fetch
Comandi Utili per l’Ingegnere
- Parallelismo: Nala scarica automaticamente più pacchetti contemporaneamente.
- History: Permette di annullare un’installazione che ha rotto il sistema.
sudo nala history # Visualizza le ultime operazioni sudo nala history undo 3 # Annulla l'operazione ID 3
2. Flatpak vs Snap: Strategia Sandbox
Per le applicazioni desktop (es. VS Code, Obsidian, VLC), utilizziamo formati isolati dal core dell’OS per evitare conflitti di librerie.
| Formato | Filosofia | Uso Consigliato |
|---|---|---|
| Native (APT) | Massima performance, integrazione kernel. | Driver, compilatori (gcc, python), server services. |
| Flatpak | Open source, focalizzato sull’utente. | Applicazioni GUI, strumenti di produttività. |
| Snap | Gestito da Canonical, mount di loop device. | Server apps (Nextcloud, Certbot) su Ubuntu. |
Best Practice: Su Debian/Ubuntu “pulite”, preferire Flatpak per le GUI e APT per i tool CLI.
3. Automazione del Setup (Bootstrapping)
Invece di digitare comandi ogni volta, creiamo uno script di setup (setup.sh) per configurare una nuova macchina in pochi minuti.
#!/bin/bash
# Script di base per configurazione Workstation Debian/Ubuntu
echo "Configurazione sistema in corso..."
# 1. Update & Nala install
sudo apt update && sudo apt install nala -y
# 2. Bundle di tool essenziali per lo sviluppo
CORE_TOOLS=(
build-essential
git
curl
wget
btop
ripgrep
python3-venv
)
sudo nala install "${CORE_TOOLS[@]}" -y
# 3. Pulizia
sudo nala autoremove -y
echo "Setup completato correttamente."
📈 Ciclo di Vita del Pacchetto (Mermaid)
4. Dotfiles: Versionare le configurazioni
Le configurazioni (es. .zshrc, .tmux.conf, .gitconfig) sono codice. Devono stare in un repository Git.
- Crea una cartella
~/dotfiles. - Usa i Symlink (collegamenti simbolici) per puntare i file dalla tua HOME alla cartella dotfiles.
- Esegui il push su un repository privato (Gitea o GitHub).
- Tool consigliato per la gestione:
stow(GNU Stow).
💡 Note dell’Ingegnere (Critical Thinking)
- PPA (Personal Package Archives): Usa i PPA con estrema cautela. Possono introdurre dipendenze instabili che rendono difficile l’avanzamento di versione dell’OS. Se un software è disponibile come Flatpak, preferiscilo al PPA.
- Python & APT: Mai fare
sudo pip install. Questo rompe il gestore dei pacchetti di sistema. Usa sempre i Virtual Environments (python -m venv) o pacchetti Debian (python3-nomepacchetto). - Unattended Upgrades: Per i server (come il Mac Pro), abilita gli aggiornamenti di sicurezza automatici:
sudo nala install unattended-upgrades && sudo dpkg-reconfigure unattended-upgrades.
Ultimo aggiornamento: {{UPDATE_DATE}} | Tags: #Linux #Nala #Automation #Flatpak #DevOps