Cosa sono le dipendenze

Ci sono diverse situazioni in cui un pacchetto ha bisogno, per funzionare, di un altro pacchetto, o anche più di uno. Per esempio la traduzione in italiano di Mozilla ha banalmente bisogno di Mozilla installato per funzionare.

In un sistema Unix, e ancor più in un sistema GNU/Linux, la gestione delle dipendenze dei pacchetti da altri pacchetti tende ad essere estremamente complicata, in quanto i casi che si possono verificare comprendono:

  • Pacchetti che dipendono semplicemente da altri pacchetti;
  • Pacchetti che vanno in conflitto con altri pacchetti;
  • Pacchetti che non dipendono da un pacchetto preciso, ma da una tipologia di pacchetti (un programma grafico ha bisogno, per esempio, di font, ma non di un tipo specifico di font: spesso è sufficiente che ci sia almeno un pacchetto di font installato);
  • Pacchetti che dipendono da una versione specifica di altri pacchetti (di solito è sufficiente una richiesta del tipo "dalla versione x.y.z in su");
  • Una combinazione anche molto complicata delle precedenti.

Debian vanta un gestore di pacchetti estremamente avanzato (APT), in grado, nella stragrande maggioranza dei casi, di risolvere automaticamente questo tipo di problemi.

APT: risolutore di dipendenze

Il sistema di gestione dei pacchetti Debian risolve automaticamente le dipendenze. Questo vuol dire che se cercate di installare un pacchetto verranno installati anche tutti i pacchetti necessari (ovvero le dipendenze) al suo funzionamento. In alcuni casi APT può anche decidere di rimuovere un pacchetto che va in conflitto con uno dei pacchetti da installare. Se nella risoluzione delle dipendenze ci sono diverse vie possibili, APT ne sceglie una a seconda del comando usato e dei valori di default impostati nei file di configurazione. Quando in base a queste regole APT non riesce a scegliere tra due o più azioni, viene segnalato il problema e sta all'amministratore decidere quale scelta intraprendere.

Dipendenze obbligatorie, consigliate e suggerite

Le dipendenze di cui si è parlato finora sono le cosiddette dipendenze obbligatorie. In realtà APT gestisce anche dipendenze più "deboli" che sono appunto pacchetti consigliati e pacchetti suggeriti.

Come suggerisce il nome, i pacchetti consigliati sono delle dipendenze non obbligatorie (senza le quali un dato pacchetto può funzionare ugualmente) che però aggiungono importanti funzionalità ad un programma. In genere è consigliabile installare i pacchetti consigliati :-P.

I pacchetti suggeriti sono, invece, pacchetti che aggiungono delle funzionalità a cui non tutti sono necessariamente interessati.

Dipendenze inverse

Con il nome dipendenze inverse si indica l'insieme dei pacchetti che dipendono da un dato pacchetto. Le dipendenze inverse sono i pacchetti che vengono eliminati quando si rimuove un dato pacchetto.

Il modo più semplice per visualizzare le dipendenze inverse è lanciare aptitude, selezionare il pacchetto interessato e premere 'r' (Reverse dependencies). Per maggiori informazioni vedere la guida dedicata ad Aptitude.