6 999
contributi
S3v (discussione | contributi) |
S3v (discussione | contributi) |
||
(10 versioni intermedie di 3 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili}} | {{Versioni compatibili}} | ||
== 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 ( | 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 (spesso a loro volta metapacchetti) che lo costituisce.<br/> | ||
Un esempio è il [[pacchetto]] " | Un esempio è il [[pacchetto]] "kde-full" che permette di installare l'intero ambiente KDE in un colpo solo. Scarichiamo il pacchetto con [[apt-get]]: | ||
<pre> | |||
$ apt-get download kde-full | |||
</pre> | |||
e controlliamo la sua dimensione: | |||
<pre> | |||
$ ls -l kde-full* | |||
-rw-r--r-- 1 pippo pippo 11732 apr 19 2013 kde-full_77+deb7u1_all.deb | |||
</pre> | |||
Già le dimensioni lasciano presagire qualcosa: come può un pacchetto come "kde-full" occupare solo poco meno di 12 KB? Vediamo cosa contiene con [[dpkg]]: | |||
<pre> | <pre> | ||
$ dpkg --contents kde-full_77+deb7u1_all.deb | |||
drwxr-xr-x root/root 0 2013-04-19 01:18 ./ | |||
drwxr-xr-x root/root 0 2013-04-19 01:18 ./usr/ | |||
drwxr-xr-x root/root 0 2013-04-19 01:18 ./usr/share/ | |||
drwxr-xr-x root/root 0 2013-04-19 01:18 ./usr/share/doc/ | |||
drwxr-xr-x root/root 0 2013-04-19 01:18 ./usr/share/doc/kde-full/ | |||
-rw-r--r-- root/root 1038 2013-03-25 19:44 ./usr/share/doc/kde-full/copyright | |||
-rw-r--r-- root/root 9582 2013-04-19 01:18 ./usr/share/doc/kde-full/changelog.gz | |||
</pre> | |||
L'archivio <code>data.tar.gz</code> contiene solo due file.<br/> | |||
Diamo un'occhiata al file <code>control</code>: | |||
<pre> | <pre> | ||
$ dpkg --info kde-full_77+deb7u1_all.deb | |||
nuovo pacchetto debian, versione 2.0. | |||
dimensione 11732 byte: archivio di controllo=888 byte. | |||
1332 byte, 23 righe control | |||
137 byte, 2 righe md5sums | |||
Package: kde-full | |||
Source: meta-kde | |||
Version: 5:77+deb7u1 | |||
Architecture: all | |||
Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org> | |||
Installed-Size: 35 | |||
Depends: kde-plasma-desktop (>= 5:77+deb7u1), kde-plasma-netbook (>= 5:77+deb7u1), kdeadmin (>= 4:4.8.4), kdeartwork (>= 4:4.8.4), kdegraphics (>= 4:4.8.4), | |||
kdeedu (>= 4:4.8.4), kdegames (>= 4:4.8.4), kdemultimedia (>= 4:4.8.4), kdenetwork (>= 4:4.8.4), kdeutils (>= 4:4.8.4), kdepim (>= 4:4.4.11), | |||
kdeplasma-addons (>= 4:4.8.4) | |||
Recommends: kde-standard (>= 5:77+deb7u1), kdeaccessibility (>= 4:4.8.4), kdesdk (>= 4:4.8.4), kdetoys (>= 4:4.8.4), kdewebdev (>= 4:4.8.4) | |||
Suggests: kde-l10n (>= 4:4.8.4), calligra (>= 1:2.4.2), xorg | |||
Breaks: kde-minimal (<< 5:57) | |||
Provides: kde-software-compilation | |||
Section: metapackages | |||
Priority: optional | |||
Homepage: http://www.kde.org | |||
Description: ... | |||
</pre> | </pre> | ||
In realtà, vediamo che a costituire il cuore del pacchetto sono le sue [[dipendenze]] (a loro volta metapacchetti). Questo permette di installare KDE attraverso l'installazione di '''un solo''' pacchetto. Senza i metapacchetti bisognerebbe installare uno per uno i pacchetti che costituiscono KDE. | |||
L'output precedente indica chiaramente che il pacchetto "kde-full" è in realtà un metapacchetto: | |||
<pre> | |||
Section: metapackages | |||
</pre> | |||
== Lista dei metapacchetti == | == Lista dei metapacchetti == | ||
Si può ottenere una lista completa dei metapacchetti elencando i pacchetti che contengono la parola ''metapackage'' nei [[tag]] | Si può ottenere una lista completa dei metapacchetti elencando i pacchetti che contengono la parola ''metapackage'' nei [[tag]], nelle descrizioni oppure che appartengono alla sezione "metapackages"; servirà il pacchetto "debtags" e l'uso di [[aptitude]]: | ||
<pre> | <pre> | ||
$ aptitude search '(~Gmetapackage|~dmetapackage)' | less | $ aptitude search '(~Gmetapackage|~dmetapackage|~smetapackages)' | less | ||
</pre> | </pre> | ||
Se si vuole avere invece una lista dei metapacchetti installati sul sistema: | Se si vuole avere invece una lista dei metapacchetti installati sul sistema: | ||
<pre> | <pre> | ||
$ aptitude search '~i(~Gmetapackage|~dmetapackage)' | $ aptitude search '~i(~Gmetapackage|~dmetapackage|~smetapackages)' | ||
</pre> | </pre> | ||
A questi si aggiungono le eccezioni comprendenti i metapacchetti che riguardano l'installazione del kernel; questi sono nella forma: <code>linux-image-*</code> | |||
{{Warningbox|La ricerca della parola "metapackage" nelle descrizioni potrebbe fornire dei "falsi positivi". Per evitare problemi, indirizzarsi su una ricerca basata solo sui tag o sulla sezione del pacchetto:<pre>$ aptitude search '~i(~Gmetapackage|~smetapackages)'</pre>oppure leggere con attenzione la descrizione del pacchetto:<pre>$ apt-cache show nomepacchetto</pre>}} | |||
A questi si aggiungono le eccezioni comprendenti i metapacchetti che riguardano l'installazione del [[kernel]]; questi sono nella forma: <code>linux-image-*</code> | |||
<pre> | <pre> | ||
$ aptitude search ~nlinux-image-* | $ aptitude search '~nlinux-image-*' | ||
</pre> | </pre> | ||
che sono dei metapacchetti che dipendono sempre dall'ultimo kernel Linux disponibile per | che sono dei metapacchetti che dipendono sempre dall'ultimo kernel Linux disponibile per l'[[architettura]] specificata. In tal modo, installando il pacchetto adatto al proprio sistema, il kernel verrà automaticamente aggiornato non appena è disponibile una nuova versione (si passerà ad esempio dal 4.0 alla 4.2). Viceversa, se non si installa il metapacchetto, il kernel non verrà mai aggiornato ad una versione superiore poiché i kernel Debian hanno la versione come parte integrante del nome del pacchetto e quindi una nuova versione viene vista come un nuovo pacchetto e non come un aggiornamento, come giusto che sia.<br/> | ||
In mancanza del relativo metapacchetto: | |||
* restano comunque possibili i normali aggiornamenti automatici correlati alla versione minore del kernel installato (ad esempio dalla 4.0.1 alla 4.0.2); | |||
* se si vuol passare ad un kernel con ''major revision'' superiore (ad esempio se si vuole installare il kernel 4.2 quando sul proprio sistema è installato il kernel 4.0 o inferiore), sarà necessario installare esplicitamente il pacchetto per il nuovo kernel. | |||
== Installazione/Rimozione == | == Installazione/Rimozione == | ||
Riga 98: | Riga 93: | ||
=== 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 | In questo caso non occorre nessuna attenzione particolare: installeremo il metapacchetto come qualsiasi altro pacchetto con il nostro gestore preferito di [[APT]] ([[apt-get]], [[aptitude]], [[synaptic]], etc.), il quale si "porterà dietro" tutti i pacchetti del caso (come sue [[dipendenze]]). | ||
=== Rimuovere un metapacchetto === | === Rimuovere un metapacchetto === | ||
Riga 106: | Riga 101: | ||
=== Rimuovere l'intera ''suite'' === | === Rimuovere l'intera ''suite'' === | ||
Se vogliamo semplicemente eliminare tutta la ''suite'' del metapacchetto andremo semplicemente a rimuoverlo con il nostro gestore preferito. Nel caso di ''aptitude'', provvederà lui stesso ad eliminare le dipendenze (dunque i pacchetti della ''suite''); nel caso di apt-get, dopo il classico | Se vogliamo semplicemente eliminare tutta la ''suite'' del metapacchetto andremo semplicemente a rimuoverlo con il nostro gestore preferito. Nel caso di ''aptitude'', provvederà lui stesso ad eliminare le dipendenze (dunque i pacchetti della ''suite''); nel caso di [[apt-get]], dopo il classico | ||
<pre># apt-get | <pre># apt-get remove nomemetapacchetto</pre> | ||
dovremo eseguire ancora: | dovremo eseguire ancora: | ||
Riga 137: | Riga 132: | ||
</pre> | </pre> | ||
Quindi rimuoviamo il pacchetto che ci interessa: | Quindi rimuoviamo il pacchetto che ci interessa: | ||
<pre># apt-get | <pre># apt-get remove evolution</pre> | ||
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: | 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: | ||
Riga 158: | Riga 153: | ||
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: | ||
<pre># | <pre># apt-get install equivs</pre> | ||
A questo punto lanceremo il comando: | A questo punto lanceremo il comando: | ||
Riga 199: | Riga 194: | ||
<pre>$ equivs-build controller</pre> | <pre>$ equivs-build controller</pre> | ||
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. | ||
{{Warningbox | È possibile anche creare un metapacchetto con il nome e la versione di una dipendenza da soddisfare, ingannando così il sistema, che penserà che una data dipendenza è già soddisfatta e non cercherà quindi di installarla. Questo uso è però pericoloso, se non si è più che certi di quello che si sta facendo, e nel caso peggiore può rendere inusabile tanto il programma quanto l'intero sistema.}} | |||
=== Esempio pratico === | === Esempio pratico === | ||
Riga 221: | Riga 219: | ||
# Pre-Depends: <comma-separated list of packages> | # Pre-Depends: <comma-separated list of packages> | ||
Depends: libfaad2-0,libmp4-0,libfaac0,alsamixergui,toolame,lame,libmp3lame0,libdvdnav4,libdvdread3,libdvdcss2,w32codecs,ffmpeg | Depends: libfaad2-0,libmp4-0,libfaac0,alsamixergui,toolame,lame,libmp3lame0,libdvdnav4,libdvdread3,libdvdcss2,w32codecs,ffmpeg | ||
Recommends: | Recommends: deb-multimedia-keyring | ||
# Suggests: <comma-separated list of packages> | # Suggests: <comma-separated list of packages> | ||
# Provides: <comma-separated list of packages> | # Provides: <comma-separated list of packages> | ||
Riga 232: | Riga 230: | ||
Description: installa codec per DVD e mp3 | Description: installa codec per DVD e mp3 | ||
Questo metapacchetto installa le librerie per la riproduzione di DVD e mp3. | Questo metapacchetto installa le librerie per la riproduzione di DVD e mp3. | ||
Ricordiamo di aggiungere i repository | Ricordiamo di aggiungere i repository deb-multimedia (deb http://www.deb-multimedia.org lenny main) all'interno del proprio /etc/apt/sources.list | ||
</pre> | </pre> | ||
Riga 252: | Riga 250: | ||
Installed-Size: 36 | Installed-Size: 36 | ||
Depends: libfaad2-0, libmp4-0, libfaac0, alsamixergui, toolame, lame, libmp3lame0, libdvdnav4, libdvdread3, libdvdcss2, w32codecs, ffmpeg | Depends: libfaad2-0, libmp4-0, libfaac0, alsamixergui, toolame, lame, libmp3lame0, libdvdnav4, libdvdread3, libdvdcss2, w32codecs, ffmpeg | ||
Recommends: | Recommends: deb-multimedia-keyring | ||
Section: misc | Section: misc | ||
Priority: optional | Priority: optional | ||
Description: installa codec per DVD e mp3 | Description: installa codec per DVD e mp3 | ||
Questo metapacchetto installa le librerie per la riproduzione di DVD e mp3. | Questo metapacchetto installa le librerie per la riproduzione di DVD e mp3. | ||
Ricordiamo di aggiungere i repository | Ricordiamo di aggiungere i repository deb-multimedia (deb http://www.deb-multimedia.org lenny main) all'interno del proprio /etc/apt/sources.list</pre> | ||
Si ricordi che <code>dpkg</code> non si occupa di risolvere le dipendenze, quindi installare un pacchetto con dipendenze non soddisfatte ne aggiungerebbe uno con stato ''broken'' al sistema, che andrebbe corretto in seguito (per esempio con <code>apt-get --fix-broken</code>). È però consigliato utilizzare [[gdebi]], che si avvale subito di [[APT]] per cercare di risolvere le dipendenze del pacchetto prima di procedere alla sua installazione, evitando di installare pacchetti ''broken'' sul sistema. | |||
{{Autori | {{Autori | ||
|Autore=[[Utente:Brunitika|Brunitika]] 16:49, 8 apr 2009 (CEST) | |Autore=[[Utente:Brunitika|Brunitika]] 16:49, 8 apr 2009 (CEST) | ||
|Estesa_da= | |||
|Verificata_da= | |||
: [[Utente:HAL 9000|HAL 9000]] 11:05, 7 mag 2015 (CEST) | |||
|Numero_revisori=1 | |||
}} | }} | ||
[[Categoria:Apt]] | [[Categoria:Apt]] |
contributi