Pubblicato il 01/10/2023 da alnao nella categoria Debian

Per utilizzare al meglio i sistemi Debian è indispensabile conoscere la gestione dei pacchetti: i pacchetti sono un insieme di file organizzati e compressi in directory in modo che possano essere installati nel sistema velocemente e con ordine; esistono molti modi di compilare e preparare i pacchetti, Debian ha imposto da anni un suo standard che è facilmente riconoscibile per i file di estensione deb mentre altre distribuzioni possono avere altri formati come rpm. Uno dei motivi per cui Debian è molto famosa è proprio per la gestione eccellente dei pacchetti perché, pur contando oltre 25.000 pacchetti ufficiale, esiste un repository centrale che gestisce le le dipendenze in modo semplice e ordinato: ogni pacchetto ha una versione e una lista di dipendenze infatti ogni pacchetto al suo interno ha l’informazione di quali pacchetti sono necessari e con i quali entra in conflitto, per esempio il pacchetto “apache2-mpm-prefork” dipende dal pacchetto “apache2.2-common” e entra in conflitto con il pacchetto “apache2-mpm”, tutto questo dipende anche delle versioni, cioè ogni pacchetto è segnato anche da una versione, per esempio nel mio sistema è installato il pacchetto “apache2-mpm-prefork” alla versione 2.2.8-3: questo vuol dire che il pacchetto è alla versione 2.2.8 ma è la terza compilazione del pacchetto. Per fortuna i programmi che andremo ad usare gestiscono automaticamente con ordine e precisione i pacchetti quindi l’utente non deve mai preoccuparsi di risolvere le dipendenze.

La gestione dei pacchetti Debian nel sistema si basa sul componente DPKG (abbreviazione di Debian PacKaGe): è usato per installare, disinstallare ed ottenere informazioni sul singolo pacchetto in formato standard deb. Questo è un tool di basso livello e viene sempre affiancato da APT (che è l’abbreviazione di Advanced Packaging Tool) che è il gestore standard di pacchetti software della distribuzione Debian. Con APT è possibile anche configurare diversi mirror-sorgenti di pacchetti (sorgenti remote in internet, cdrom, DVD). Tutti i comandi dei due programmi sono:

  • # apt-get update aggiorna la lista dei pacchetti dopo la configurazione di un nuovo mirror
  • # apt-get install nomepacchetto installa il pacchetto nel sistema, scegliendo l’ultima versione disponibile ed risolvendo le dipendenze in maniera automatica (installando i pacchetti necessari e togliendo i pacchetti in conflitto)
  • # apt-get remove nomepacchetto rimuove il pacchetto e tutti i pacchetti che dipendono da esso
  • # apt-get --purge remove nomepacchetto rimuove il pacchetto e tutti i pacchetti che dipendono da esso compresi anche tutti i file di configurazione eventualmente presenti
  • # apt-get upgrade aggiorna tutti i pacchetti se sono disponibili aggiornamenti e verifica tutte le dipendenze delle nuove versioni
  • # apt-get clean cancella tuti i file temporanei di apt-get cioè i file deb scaricati e già installati
  • # apt-get install -f verifica che tutti i pacchetti siano installati e configurati correttamente, in caso di errori sistema automaticamente le dipendenze
  • # dkpg --configure -a come il precedente ma funziona anche in casi estremi e risolve tutti i problemi di conflitto tra i pacchetti
  • # dpkg-reconfigure pacchetto riconfigura un pacchetto già installato
  • # dpkg -i pacchetto installa un pacchetto da un file deb
  • # dpkg -r pacchetto rimuove un pacchetto
  • # dpkg --get-selections > nomefile.txt salva su un file l’elenco dei pacchetti installati
  • # dpkg --set-selections < nomefile.txt imposta i pacchetti presenti sul file
  • # apt-get moo regala all’utente un simpatico messaggio

All’interno di un sistema, la lista dei mirror-sorgenti è elencata nel file

/etc/apt/sources.list

e da tutti i file contenuti nella sotto-cartella

/etc/apt/sources.list.d/

e si possono creare dei file con estensione list per aggiungere altri mirror specifici. In questi file list, ad ogni riga corrisponde una sorgente che può essere un DVD, un mirror in internet oppure una cartella del sistema locale. Ogni riga di questi file è del tipo:

deb http://host/debian distribuzione sezione1 sezione2 sezione3
deb-src http://host/debian distribuzione sezione1 sezione2 sezione3

La prima parola di ogni riga (deb o deb-src) indica il tipo di archivio: se contiene pacchetti binari (deb) oppure indica se l’archivio contiene i pacchetti sorgente (deb-src), la seconda parte della riga indica l’indirizzo della sorgente. Nel terzo parametro si indica la distribuzione: di solito si tratta di uno dei tre rami di sviluppo: stable, testing o unstable, nelle righe di configurazione è possibile indicare esplicitamente il nome della versione come etch, sid o sarge). L’elenco delle sezioni indicano quali parti della distribuzione dovranno essere gestite, tipicamente si trova main (i pacchetti completamente liberi) oppure non-free (cioè i pacchetti rilasciati sotto una licenza non libera) oppure contrib (pacchetti liberi che però dipendono da altri non liberi). Al termine di ogni modifica di questi file di configurazione è necessario lanciare il comando per aggiornare il database di sistema:

# apt-get update

In precedenti versioni di questo documento si indicava all’utente di modificare manualmente i file di list per inserire i mirror manualmente, questa operazione manuale è stata sostituita da operazioni più semplici che verranno introdotte man mano che sarà necessario installare pacchetti specifici non compresi nei mirror ufficiali di Debian che sono inseriti in automatico all’installazione del sistema base. I programmi di gestione APT & DPKG non sono stati studiati per essere interfacciati graficamente, quindi sono stati sviluppati e sono presenti in Debian diversi strumenti grafici che permettono di gestire i pacchetti attraverso una interfaccia grafica che può risultare più intuitiva all’utente meno esperto: il più importante programma per desktop per la gestione dei pacchetti è Synaptic che spesso si può trovare nei menù anche con il nome in italiano di Gestore pacchetti, la potenza di questo programma è la semplicità d’uso rispetto ad altri programmi simili come Aptitude e Adept che sono molto più poveri di funzioni. Con Synaptic è possibile vedere la lista dei pacchetti divisi in sezione per argomento (sistema, grafici, editor,…), per stato (installati, aggiornabili, non installati, corrotti), per origine (DVD, debian.org, ecc…) e la possibilità di cercare i pacchetti con una semplice ricerca testuale sui nomi e sulle descrizioni dei pacchetti stessi. La comodità principale di questo programma è la possibilità di gestire gli aggiornamenti del sistema con un semplice click su pulsante.

Nei sistemi Debian è possibile trovare diversi programmi che permettano la configurazione del sistema, nei vari menu dei desktop si possono trovare diverse voci all’interno della categoria Strumenti di sistema però per GNU Linux è stato sviluppato un potentissimo programma per il controllo generale: WebMin che prevedete moltissimi moduli al proprio interno e permette all’utente di amministrare tutti i componenti del sistema, uno dei grandi vantaggi di questo pacchetto è che si tratta di una applicazione web quindi viene usata tramite browser anche da remoto. Rispetto alle precedenti versioni, WebMin non è più all’interno dei mirror ufficiali di Debian e quindi bisogna configurare una sorgente esterna con i comandi:

# apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl 
# apt-get install libpam-runtime libio-pty-perl apt-show-versions python3 apt-transport-https
# apt-get install wget net-tools ufw
# cd /etc/apt/sources.list.d/
# echo "deb http://download.webmin.com/download/repository sarge contrib" > webmin.list
# wget http://www.webmin.com/jcameron-key.asc
# apt-key add jcameron-key.asc 
# apt-get update 
# apt-get install webmin
# ufw allow 10000/tcp
# ufw reload
# ufw enable

con questi comandi abbiamo installato dei pacchetti propedeutici, abbiamo scaricato il file list del mirror e la sua chiave di sicurezza, poi con il comando di apt abbiamo aggiornato l’elenco dei pacchetti e installato il programma, al termine è necessario configurare la rete visto che il programma utilizza la porta 10.000 dei sistemi. Dopo l’installazione è possibile già vedere se è disponibile e funzionante con il comando:

# systemctl status webmin

Se non dovesse essere avviato è possibile lanciare lo start con il comando:

# systemctl start webmin

Per poter accedere al pannello di controllo basta lanciare da un browser l’url:

https://localhost:10000/

nei comandi indicati c’è anche la configurazione del firewall ufw che bloccherebbe l’applicazione trattandosi di una applicazione di rete sulla porta 10000. All’interno delle ultime versioni di Webmin, c’è la possibilità di collegarsi alla console shell con l’icona >_ presente nel menù di sinistra al tab “dashbord” questo permette di usare il terminale da remoto anche se io lo ritengo molto scomodo.

WebMin è uno strumento molto potente ma anche troppo! Bisogna sempre prestare attenzione alle configurazioni eseguite e controllare più volte le operazioni potenzialmente distruttive per il sistema.

Il programma di installazione prevede la creazione di un primo utente che viene utilizzato al primo accesso, attraverso i vari tool di controllo disponibili è possibile creare e configurare altri utenti se necessario con la possibilità di raggrupparli e gestire l’accesso. Il gestore della login che compare all’avvio del sistema grafico si chiamata GDM (abbreviazione di Gnome Desktop Manager) esistono anche altri gestori ma è sconsigliato l’utilizzo per utente non esperti. Per gestire gli utenti è possibile usare i vari programmi disponibili nei browser ma è consigliato usare WebMin appena installato visto che ha una interfaccia molto semplice e intuitiva per la gestione degli utenti e dei gruppi. Il pannello di controllo WebMin è molto utile anche per la gestione di tutte le parti di un sistema: lo schedulatore di sistema CronTab, le configurazioni di rete, la gestione dei backup, il monitoraggio dei log e i demoni/server come sarà descritto in una sezione dedicata. In realtà è iii sconsigliato iii per alcuni temi specifici come la gestione delle partizioni (molto meglio Gparted) e tutto quello che ha a che fare con l’hardware e i dispositivi esterni.

MENU