3 581
contributi
m (Impostato pinning Marillat > Rarewares per evitare conflitti) |
m (spaziatura/box iniziale) |
||
(35 versioni intermedie di 12 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Old|Leggere la guida sul [[Repository & pinning|pinning]].}} | |||
__TOC__ | |||
== Introduzione == | |||
Spesso abbiamo la necessità di installare la nuova versione di un pacchetto di cui proprio non possiamo fare a meno, che però non è disponibile per il rilascio di Debian che abbiamo installato. | Spesso abbiamo la necessità di installare la nuova versione di un pacchetto di cui proprio non possiamo fare a meno, che però non è disponibile per il rilascio di Debian che abbiamo installato. | ||
Il caso più frequente è probabilmente quello di un' installazione di Testing | Il caso più frequente è probabilmente quello di un'installazione di Testing con la necessità di installare anche pacchetti presenti solo in Unstable o in Experimental, oppure di voler usare un repository con pacchetti particolari, ma compilati per una release di Debian diversa dalla nostra. | ||
APT è nostro fido alleato anche in questi frangenti, permettendoci di utilizzare fonti per pacchetti di release diverse (e soddisfarne le dipendenze) senza costringerci ad un upgrade dell'intera distribuzione e senza dover impazzire per risolvere conflitti e inconsistenze. Questa caratteristica è definita anche '''apt-pinning''', dal ''pin'' che si imposta nel file <code>/etc/apt/preferences</code>. | |||
In questo how-to mostrerò come utilizzare pacchetti Debian provenienti da Testing, Unstable, Experimental e Marillat (deb-multimedia), ma le istruzioni sono facilmente riportabili anche ad altre situazioni (unstable + experimental, stable + testing, stable + unstable, stable + testing + unstable, ecc...). | |||
== Impostare i repository == | |||
Assicuriamoci di essere l' utente root e procediamo. | Assicuriamoci di essere l'utente root e procediamo. | ||
Per prima cosa editiamo il file | Per prima cosa editiamo il file <code>/etc/apt/sources.list</code> ed inseriamo gli archivi dei pacchetti Debian che utilizzeremo: | ||
<pre> | <pre> | ||
### Debian Ufficiale -- | ### Debian Ufficiale -- Testing | ||
deb http://ftp.it.debian.org/debian/ testing main non-free | deb http://ftp.it.debian.org/debian/ testing main contrib non-free | ||
### Debian Ufficiale -- | ### Debian Ufficiale -- Testing Sicurezza | ||
deb http://security.debian.org/ testing/updates main contrib non-free | deb http://security.debian.org/ testing/updates main contrib non-free | ||
### Debian Ufficiale -- Sid | ### Debian Ufficiale -- Sid | ||
deb http://ftp.it.debian.org/debian/ unstable main non-free | deb http://ftp.it.debian.org/debian/ unstable main contrib non-free | ||
### Debian Ufficiale -- Experimental | ### Debian Ufficiale -- Experimental | ||
deb http://ftp.debian.org/debian | deb http://ftp.it.debian.org/debian/ experimental main contrib non-free | ||
### Multimedia -- | ### Multimedia -- Marillat | ||
deb http://www. | deb http://www.deb-multimedia.org testing main non-free | ||
deb http://www.deb-multimedia.org sid main non-free | |||
</pre> | |||
In alternativa, invece di editare il file <code>/etc/apt/sources.list</code>, è possibile aggiungere nuovi files nella directory <code>/etc/apt/sources.list.d/</code>: dal manuale <code>man sources.list</code> | |||
<pre> | |||
La directory /etc/apt/sources.list.d fornisce un metodo per aggiungere | |||
voci di sources.list in file separati che terminano con .list. Il | |||
formato è il medesimo del file sources.list regolare. | |||
</pre> | |||
Fare attenzione al nome dei file: deve terminare con '''.list'''. | |||
== Configurare apt == | |||
A questo punto dobbiamo preparare due | A questo punto dobbiamo preparare due file normalmente non presenti sulla nostra debianbox: si tratta dei file <code>/etc/apt/preferences</code> e <code>/etc/apt/apt.conf</code>. | ||
Questi due file istruiranno APT su come gestire le dipendenze dei pacchetti, informandolo su come comportarsi in caso di conflitti e altri problemi. | Questi due file istruiranno APT su come gestire le dipendenze dei pacchetti, informandolo su come comportarsi in caso di conflitti e altri problemi. | ||
Creiamo il file preferences: | Anche in questo caso, come per <code>/etc/apt/sources.list</code>, è possibile creare dei files nelle directory <code>/etc/apt/preferences.d/</code> e <code>/etc/apt/apt.conf.d/</code>, anziché editare <code>/etc/apt/preferences</code> e <code>/etc/apt/apt.conf</code>. | ||
Vedere il manuale di <code>apt_preferences</code> e <code>apt.conf</code> per approfondimenti. | |||
=== Il file <code>preferences</code> === | |||
Creiamo il file <code>/etc/apt/preferences</code>: | |||
<pre> | <pre> | ||
# touch /etc/apt/preferences | # touch /etc/apt/preferences | ||
Riga 43: | Riga 61: | ||
Pin: release o=Unofficial Multimedia Packages | Pin: release o=Unofficial Multimedia Packages | ||
Pin-Priority: 950 | Pin-Priority: 950 | ||
Package: * | Package: * | ||
Riga 63: | Riga 77: | ||
Il pinning può essere orientato ad un archivio, un'origine, la versione di un pacchetto, un componente, ecc... | Il pinning può essere orientato ad un archivio, un'origine, la versione di un pacchetto, un componente, ecc... | ||
Con '''"o="''' si specifica l' origine (la distribuzione) del pacchetto, con '''"a="''' l'archivio ( | Con '''"o="''' si specifica l'origine (la distribuzione) del pacchetto, con '''"a="''' l'archivio (stable, testing, sid, jessie, ecc...). | ||
Questo dato è reperibile in modo inequivocabile attraverso APT, andando a sbirciare all'interno del file " | Questo dato è reperibile in modo inequivocabile attraverso APT, andando a sbirciare all'interno del file "InRelease" che è contenuto in tutti i repository ufficiali. Per archivi personali e/o non ufficiali, invece, non è sempre e necessariamente presente (purtroppo). | ||
Vediamo alcuni esempi: | Vediamo alcuni esempi: | ||
<pre> | <pre> | ||
$ cd /var/lib/apt/lists | |||
$ cat deb-multimedia.org_dists_unstable_InRelease | |||
Origin: Unofficial Multimedia Packages | Origin: Unofficial Multimedia Packages | ||
Label: Unofficial Multimedia Packages | Label: Unofficial Multimedia Packages | ||
Suite: unstable | |||
Version: None | |||
Codename: sid | |||
Date: Thu, 09 May 2013 21:26:40 UTC | |||
Architectures: amd64 armel armhf i386 ia64 mips mipsel powerpc sparc kfreebsd-i386 kfreebsd-amd64 | |||
Components: main non-free | |||
Description: This repository is mostly non-free | |||
$ cat liquorix.net_debian_dists_sid_InRelease | |||
Origin: liquorix | |||
Label: cool stuff | |||
Suite: unstable | |||
Codename: sid | |||
Date: Fri, 03 May 2013 00:32:30 UTC | |||
Architectures: i386 amd64 | |||
Components: main future past | |||
Description: liquorix repository | |||
</pre> | </pre> | ||
Dove: | Dove: | ||
* ''' | * '''Suite''' = è l'archivio Debian a cui i pacchetti appartengono (ad es.: stable, testing. ecc...); | ||
* ''' | * '''Components''' = indica il tipo di componente (ad es.: main, contrib, non-free); | ||
* '''Origin''' = specifica il proprietario del repository; | * '''Origin''' = specifica il proprietario del repository; | ||
* '''Label''' = identifica il repository: potete inserire descrizioni, ecc...; | * '''Label''' = identifica il repository: potete inserire descrizioni, ecc...; | ||
* ''' | * '''Architectures''' = l'architettura dei pacchetti contenuti nel repository (ad es.: i386, sparc, source, ecc...). | ||
Possiamo vedere che nel file Release è contenuto proprio il dato che stavamo cercando: Origin. | Possiamo vedere che nel file Release è contenuto proprio il dato che stavamo cercando: Origin. | ||
Ora creiamo il file apt-conf | === Il file <code>apt.conf</code> === | ||
Ora creiamo il file <code>/etc/apt/apt-conf</code> | |||
<pre> | <pre> | ||
Riga 104: | Riga 129: | ||
<pre> | <pre> | ||
APT::Default-Release "testing"; | APT::Default-Release "testing"; | ||
APT::Cache-Limit | APT::Cache-Limit 15000000; | ||
Apt::Get::Purge; | Apt::Get::Purge; | ||
APT::Clean-Installed; | APT::Clean-Installed; | ||
Riga 112: | Riga 137: | ||
</pre> | </pre> | ||
Facciamo l' update del database dei pacchetti: | Facciamo l'update del database dei pacchetti: | ||
<pre> | <pre> | ||
Riga 130: | Riga 155: | ||
</pre> | </pre> | ||
che provvederà a installare il pacchetto da noi richiesto per la versione specificata (versione_debian), risolvendo automaticamente le dipendenze. | che provvederà a installare il pacchetto da noi richiesto per la versione specificata (''versione_debian''), risolvendo automaticamente le dipendenze. | ||
Happy debian! | Happy debian! | ||
== Pagine correlate == | |||
[[Repository & pinning]] | |||
Autore | {{Autori | ||
|Autore = [[User:Keltik|Keltik]] | |||
|Estesa_da = | |||
:[[User:Nest|Nest]] | |||
|Verificata_da= | |||
:[[Utente:TheNoise|~ The Noise]] | |||
|Numero_revisori = 1 | |||
}} |
contributi