Gestione dei metapacchetti: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 2: Riga 2:
== Cosa sono i metapacchetti ==
== Cosa sono i metapacchetti ==
Esiste un tipo particolare di pacchetto detto [[metapacchetto]] che in realtà non contiene alcun eseguibile o sorgente, ma serve semplicemente per installare tutto l'insieme di pacchetti (a volte a loro volta metapacchetti) che lo costituisce.
Esiste un tipo particolare di pacchetto detto [[metapacchetto]] che in realtà non contiene alcun eseguibile o sorgente, ma serve semplicemente per installare tutto l'insieme di pacchetti (a volte a loro volta metapacchetti) che lo costituisce.
Un esempio è il pacchetto kdebase:
Un esempio è il [[pacchetto]] "kdebase":


<pre> # ls -l
<pre> # ls -l
Riga 72: Riga 72:


== Lista dei metapacchetti ==
== Lista dei metapacchetti ==
Si può ottenere una lista completa dei metapacchetti semplicemente elencando i pacchetti che contengono la parola ''metapackage'' nei [[tag]] o nelle descrizioni; servirà il pacchetto "debtags":
Si può ottenere una lista completa dei metapacchetti elencando i pacchetti che contengono la parola ''metapackage'' nei [[tag]] o nelle descrizioni; servirà il pacchetto "debtags":
<pre>
<pre>
$ aptitude search '(~Gmetapackage|~dmetapackage)' | less
$ aptitude search '(~Gmetapackage|~dmetapackage)' | less
Riga 98: Riga 98:
=== Installare un metapacchetto ===
=== Installare un metapacchetto ===


In questo caso non occorre nessuna attenzione particolare: installeremo il metapacchetto come qualsiasi altro pacchetto con il nostro gestore preferito (aptitude, apt-get, synaptic,etc.), il quale si "porterà dietro" tutti i pacchetti del caso (come sue dipendenze).
In questo caso non occorre nessuna attenzione particolare: installeremo il metapacchetto come qualsiasi altro pacchetto con il nostro gestore preferito ([[aptitude]], [[apt-get]], [[synaptic]], etc.), il quale si "porterà dietro" tutti i pacchetti del caso (come sue [[dipendenze]]).


=== Rimuovere un metapacchetto ===
=== Rimuovere un metapacchetto ===
Riga 124: Riga 124:
* andremo ad eliminare il pacchetto ''evolution'' della ''suite'', senza eliminare quest'ultima.
* andremo ad eliminare il pacchetto ''evolution'' della ''suite'', senza eliminare quest'ultima.


Inizieremo dunque con ''apt-get'':
Inizieremo innanzitutto ad aggiornare il sistema per prevenire sopraggiunte modifiche nelle dipendenze tra pacchetti:
 
<pre>
# apt-get update
</pre>
e poi:
<pre>
# apt-get upgrade
</pre>
oppure:
<pre>
# apt-get dist-upgrade
</pre>
Quindi rimuoviamo il pacchetto che ci interessa:
<pre># apt-get purge evolution</pre>
<pre># apt-get purge evolution</pre>


Lanciato il comando andremo ad eliminare 5 pacchetti: ''gnome'', ''gnome-desktop-environment'', ''evolution'',  ''evolution-exchange'', ''evolution-plugins'', tra i quali noteremo i due metapacchetti della ''suite'' in questione. Lo stesso ''apt-get'' ci suggerirà poi di utilizzare ''apt-get autoremove'' per eliminare le dipendenze non soddisfatte (che sono però in questo caso tutti i pacchetti della ''suite''). Per mantenere questi pacchetti daremo il comando:
Lanciato il comando, verremo avvertiti che saranno eliminati cinque pacchetti: ''gnome'', ''gnome-desktop-environment'', ''evolution'',  ''evolution-exchange'', ''evolution-plugins'', tra i quali noteremo i due metapacchetti della ''suite'' in questione. Lo stesso ''apt-get'' ci suggerirà poi di utilizzare ''apt-get autoremove'' per eliminare le dipendenze non soddisfatte (che sono però in questo caso tutti i pacchetti della ''suite''). Per mantenere questi pacchetti daremo il comando:


<pre># aptitude keep-all</pre>
<pre># aptitude keep-all</pre>


che andrà ad eliminare la loro eliminazione (scusate il gioco di parole). L'opzione ''keep-all'' di ''aptitude'' cancella tutte le azioni impostate per ogni pacchetto; qualsiasi azione d'installazione, rimozione o aggiornamento verrà rimossa dallo stato di tutti i pacchetti interessati.<br /><br />
che andrà ad eliminare la loro eliminazione (scusate il gioco di parole). L'opzione ''keep-all'' di ''aptitude'' cancella tutte le azioni impostate per ogni pacchetto; qualsiasi azione d'installazione, rimozione o aggiornamento verrà rimossa dallo stato di tutti i pacchetti interessati.
 
Un risultato identico si ottiene con <code>apt-mark</code>:
<pre>
# apt-mark manual pacchetto1 pacchetto2 pacchetto3 ...
</pre>
che marcherà il pacchetto (o i pacchetti) come "manual" al posto di "auto". Questo eviterà che "autoremove" lo consideri come pacchetto da disinstallare.<br/>
"apt-mark", a differenza di "aptitude keep-all", necessita che il nome dei pacchetti sia specificato esplicitamente.


A questo punto, avremo la nostra ''suite'' perfettamente funzionante con le "modifiche" apportate.
A questo punto, avremo la nostra ''suite'' perfettamente funzionante con le "modifiche" apportate.


==Creare un metapacchetto==
== Creare un metapacchetto ==


Come noto i metapacchetti sono molto utili per installare ''suite'' di programmi con un solo comando (installando il metapacchetto appunto). Con il pacchetto '''equivs''' tutto è molto semplice; incominceremo con l'installarlo:
Come noto i metapacchetti sono molto utili per installare ''suite'' di programmi con un solo comando (installando il metapacchetto appunto). Con il pacchetto '''equivs''' tutto è molto semplice; incominceremo con l'installarlo:
Riga 183: Riga 201:
che creerà il metapacchetto <code>.deb</code> che potremo poi installare come qualsiasi pacchetto
che creerà il metapacchetto <code>.deb</code> che potremo poi installare come qualsiasi pacchetto


===Esempio pratico===
=== Esempio pratico ===


Prendiamo ad esempio questa guida: [[Installare_e_configurare_i_codec_per_DVD_e_Mp3]]. Sarebbe ora interessante creare un metapacchetto che installi i pacchetti necessari con un solo comando. Iniziamo dunque a creare un controller:
Prendiamo ad esempio questa guida: [[Installare_e_configurare_i_codec_per_DVD_e_Mp3]]. Sarebbe ora interessante creare un metapacchetto che installi i pacchetti necessari con un solo comando. Iniziamo dunque a creare un controller:
6 999

contributi