In risposta a ……..

(Siate gentili, aiutatemi a sostituire adeguatamente i puntini del titolo, a questo indirizzo trovate tutte le informazioni sul mio coraggioso interlocutore): Dario, credo che tu abbia esperienza in fatto di utenti anonimi, nevvè?

Caro GM,

sei davvero simpatico, mentre te mi chiami per cognome io non ho neanche la più pallida idea di chi tu sia, ma si sa, questa è una delle comodità offerte dall’anonimato.

Ma facciamo un po’ di chiarezza: nel campo Depends presente nel file debian/contol di un pacchetto sorgente sono elencati tutti i pacchetti necessari all’esecuzione del relativo pacchetto binario (a n pacchetti binari nel source package corrispondono dunque n campi Depends) (+ macro come ${shlibs:Depends}, ${misc:Depends}, etc che vengono lette e convertire in nomi di pacchetti a tempo di building); vale un discorso simile anche per i campi Suggests e Recommends, con la differenza che i pacchetti elencati nei campi Suggests non vengono installati di default.

Quando si installa un pacchetto $p con apt-get (o aptitude) vengono installati e configurati $p + $pacchetti_dai_quali_dipende_p.

Successivamente, se si disinstalla lo stesso pacchetto $p con l’opzione autoremove, vengono disinstallati $p + $pacchetti_dai_quali_dipende_p + $pacchetti_precedentemente_installati_come_dipendenze_ora_non_più_necessari$pacchetti_marcati_per_l_installazione_manuale.

Se si disinstallasse $p senza l’opzione autoremove, i $pacchetti_dai_quali_dipende_p rimarrebbero installati e marcati come $pacchetti_precedentemente_installati_come_dipendenze_ora_non_più_necessari.

Il concetto di pacchetti orfani in sé é una supercazzora (also known as bosif) e ora ti do la dimostrazione (su Jaunty) della validità delle mie affermazioni:

sudo apt-get install meld

meld si tira dietro diverse dipendenze (queste sono quelle che compaiono a me):

I seguenti pacchetti NUOVI (NEW) saranno installati:
libgda3-3 libgda3-bin libgda3-common libgdl-1-0 libgdl-1-common meld
python-gnome2-extras
0 aggiornati, 7 installati, 0 da rimuovere e 8 non aggiornati.
È necessario prendere 0B/1867kB di archivi.
Dopo quest'operazione, verranno occupati 11,7MB di spazio su disco.

Una volta installato, prova a dare:

sudo apt-get autoremove meld

Il risultato é il seguente:
Lettura della lista dei pacchetti in corso... Fatto
Generazione dell'albero delle dipendenze in corso
Lettura informazioni sullo stato... Fatto
I seguenti pacchetti erano stati automaticamente installati e non sono più richiesti:
python-gnome2-extras libgdl-1-common libgda3-common libgda3-bin libgda3-3
libgdl-1-0
I seguenti pacchetti saranno RIMOSSI:
libgda3-3 libgda3-bin libgda3-common libgdl-1-0 libgdl-1-common meld
python-gnome2-extras
0 aggiornati, 0 installati, 7 da rimuovere e 8 non aggiornati.
Dopo quest'operazione, verranno liberati 11,7MB di spazio su disco.

Come puoi vedere, le dipendenze sono correttamente calcolate. Ma cosa succede se dai un comando come il seguente?

sudo apt-get install meld && sudo apt-get install libgda3-bin

Lettura della lista dei pacchetti in corso... Fatto
Generazione dell'albero delle dipendenze in corso
Lettura informazioni sullo stato... Fatto
I seguenti pacchetti verranno inoltre installati:
libgda3-3 libgda3-bin libgda3-common libgdl-1-0 libgdl-1-common
python-gnome2-extras
Pacchetti suggeriti:
libgda3-mysql libgda3-postgres libgda3-odbc libgda3-sqlite
python-gnome2-extras-doc python-gnome2-extras-dbg
I seguenti pacchetti NUOVI (NEW) saranno installati:
libgda3-3 libgda3-bin libgda3-common libgdl-1-0 libgdl-1-common meld
python-gnome2-extras
0 aggiornati, 7 installati, 0 da rimuovere e 8 non aggiornati.
È necessario prendere 0B/1867kB di archivi.
Dopo quest'operazione, verranno occupati 11,7MB di spazio su disco.
Continuare [S/n]?
Selezionato il pacchetto libgda3-common, che non lo era.
(Lettura del database ... 204085 file e directory attualmente installati.)
Spacchetto libgda3-common (da .../libgda3-common_3.0.2-5ubuntu1_all.deb) ...
Selezionato il pacchetto libgda3-3, che non lo era.
Spacchetto libgda3-3 (da .../libgda3-3_3.0.2-5ubuntu1_amd64.deb) ...
Selezionato il pacchetto libgda3-bin, che non lo era.
Spacchetto libgda3-bin (da .../libgda3-bin_3.0.2-5ubuntu1_amd64.deb) ...
Selezionato il pacchetto libgdl-1-common, che non lo era.
Spacchetto libgdl-1-common (da .../libgdl-1-common_2.26.0-0ubuntu1_all.deb) ...
Selezionato il pacchetto libgdl-1-0, che non lo era.
Spacchetto libgdl-1-0 (da .../libgdl-1-0_2.26.0-0ubuntu1_amd64.deb) ...
Selezionato il pacchetto meld, che non lo era.
Spacchetto meld (da .../meld_1.2-0ubuntu1_all.deb) ...
Selezionato il pacchetto python-gnome2-extras, che non lo era.
Spacchetto python-gnome2-extras (da .../python-gnome2-extras_2.19.1-0ubuntu14_amd64.deb) ...
Processing triggers for man-db ...
Processing triggers for menu ...
Configuro libgda3-common (3.0.2-5ubuntu1) ...
Configuro libgda3-3 (3.0.2-5ubuntu1) ...
Configuro libgda3-bin (3.0.2-5ubuntu1) ...
Configuro libgdl-1-common (2.26.0-0ubuntu1) ...
Configuro libgdl-1-0 (2.26.0-0ubuntu1) ...
Configuro meld (1.2-0ubuntu1) ...
Configuro python-gnome2-extras (2.19.1-0ubuntu14) ...
Processing triggers for libc6 ...
ldconfig deferred processing now taking place
Processing triggers for menu ...
Processing triggers for python-support ...
Lettura della lista dei pacchetti in corso... Fatto
Generazione dell'albero delle dipendenze in corso
Lettura informazioni sullo stato... Fatto
libgda3-bin è già alla versione più recente.
libgda3-bin impostato per installazione manuale.
0 aggiornati, 0 installati, 0 da rimuovere e 8 non aggiornati.

La penultima riga è quella di nostro interesse: apt-get, dopo aver installato meld + dipendenze, ti dice che il pacchetto libgda3-bin é già installato ed é stato impostato come manuale.

Ora, proviamo a digitare di nuovo sudo apt-get autoremove meld:

Lettura della lista dei pacchetti in corso... Fatto
Generazione dell'albero delle dipendenze in corso
Lettura informazioni sullo stato... Fatto
I seguenti pacchetti erano stati automaticamente installati e non sono più richiesti:
python-gnome2-extras libgdl-1-common libgdl-1-0
I seguenti pacchetti saranno RIMOSSI:
libgdl-1-0 libgdl-1-common meld python-gnome2-extras
0 aggiornati, 0 installati, 4 da rimuovere e 8 non aggiornati.
Dopo quest'operazione, verranno liberati 5579kB di spazio su disco.
Continuare [S/n]?

È facile notare come libgda3-bin (e le relative dipendenze) non vengano più citati, perchè precedentemente marcati come installati manualmente.

Ora, come vedi, invece che rispondere alle tue battute scontate con altre che, sono sicuro, riscuoterebbero molto più successo (già, perchè devi sapere che, oltre che autorefenzialista sviluppatore pluridecorato, sono anche simpatico, intelligente e, beh, mettici anche sessualmente molto attivo), preferisco venirti incontro, illuminando quei lati a te oscuri del sistema che probabilmente usi.

Per concludere: l’unica cosa di cui davvero vado fiero, è quello di far parte di una Comunità meravigliosa formata da persone vere, corrette e competenti e che non hanno bisogno di celarsi dietro misteriosi acronimi.

Si chiama Comunità Italiana di Ubuntu: puoi passarci a trovare quando vuoi, la nostra porta è sempre aperta.

Facebook Twitter Linkedin Plusone Pinterest Email

5 pensieri su “In risposta a ……..

  1. ma che commento è?!?!
    O____o

    O meglio, posta il codice e vediamo cosa esce fuori in sid.
    Così come postato, non riesco a non leggere il commento con un tono tra l’acido ed il piccato.

  2. Eccomi! :-)

    Dal momento che sono citato, non potevo tirarmi indietro! Nel mio post sugli utenti anonimi, non ho inserito i “Consigli dello Zio Dario sul trattamento dei post anonimi”, magari ne farò argomento di un prossimo post..

    In questi casi lo Zio consiglia di lasciare perdere. Ci sono molti motivi, uno peggio dell’altro, per continuare a fare ping-pong, con lo svantaggio:
    a) non si capisce più chi ha torto
    b) si da’ troppa importanza a persone che non hanno nemmeno il coraggio di metterci il nome

    ciao! D

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>