I repository ed il loro utilizzo: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Riga 106: Riga 106:
</pre>
</pre>
Bisogna specificare obbligatoriamente il percorso completo del file se questo non si trova nella directory <code>/etc/apt/sources.list.d</code>
Bisogna specificare obbligatoriamente il percorso completo del file se questo non si trova nella directory <code>/etc/apt/sources.list.d</code>
== Utilizzare repository appartenenti a differenti relase ==
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 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, Marillat (multimedia/video) e  Rarewares.org (multimedia/audio), 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.
Per  prima cosa editiamo il file  <code>/etc/apt/sources.list</code> ed inseriamo gli archivi  dei pacchetti Debian che utilizzeremo, per esempio:
<pre>
### Debian Ufficiale -- Testing
deb http://ftp.it.debian.org/debian/ testing main non-free contrib
### Debian Ufficiale -- Testing Sicurezza
deb http://security.debian.org/ testing/updates main contrib non-free
### Debian Ufficiale -- Sid
deb http://ftp.it.debian.org/debian/ unstable main non-free contrib
###  Debian Ufficiale -- Experimental
deb http://ftp.debian.org/debian/ ../project/experimental main
### Multimedia -- Audio -- Rarewares
deb http://www.rarewares.org/debian/packages/unstable ./
### Multimedia -- Video -- Marillat
deb ftp://ftp.nerim.net/debian-marillat/ etch main
deb ftp://ftp.nerim.net/debian-marillat/ sid main
</pre>
=== Configurare apt ===
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.
==== Il file <code>preferences</code> ====
Creiamo il file <code>/etc/apt/preferences</code>:
<pre>
# touch /etc/apt/preferences
</pre>
editiamolo col nostro editor di fiducia e inseriamo queste direttive:
<pre>
Package: *
Pin: release o=Unofficial Multimedia Packages
Pin-Priority: 950
Package: *
Pin: release o=xmixahlx
Pin-Priority: 900
Package: *
Pin: release a=testing
Pin-Priority: 850
Package: *
Pin: release a=unstable
Pin-Priority: 800
Package: *
Pin: release a=experimental
Pin-Priority: 750
</pre>
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 (sarge, sid, stable, ecc...).
Questo  dato è reperibile in modo inequivocabile attraverso APT, andando a  sbirciare all'interno del file "Release" che è contenuto in tutti i  repository ufficiali. Per archivi personali e/o non ufficiali, invece,  non è sempre e necessariamente presente (purtroppo).
Vediamo alcuni esempi:
<pre>
# cd /var/lib/apt/lists
# cat www.rarewares.org_debian_packages_unstable_._Release
Archive: unstable
Origin: xmixahlx                    
Label: xmixahlx_rarewares-unstable
Architecture: i386
# cat ftp.nerim.net_debian-marillat_dists_testing_main_binary-i386_Release
Archive: testing
Component: main
Origin: Unofficial Multimedia Packages
Label: Unofficial Multimedia Packages
Architecture: i386
</pre>
Dove:
* '''Archive''' = è l'archivio Debian a cui i pacchetti appartengono (ad es.: stable, testing. ecc...);
* '''Component''' = indica il tipo di componente (ad es.: main, contrib, non-free);
* '''Origin''' = specifica il proprietario del repository;
* '''Label''' = identifica il repository: potete inserire descrizioni, ecc...;
* '''Architecture''' = 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.
==== Il file <code>apt.conf</code> ====
Ora creiamo il file <code>/etc/apt/apt-conf</code>
<pre>
# touch /etc/apt/apt.conf
</pre>
editiamolo inserendo quanto segue:
<pre>
APT::Default-Release "testing";
APT::Cache-Limit 15000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";
</pre>
Facciamo l'update del database dei pacchetti:
<pre>
# apt-get update
</pre>
D'ora in avanti avremo due possibilità per installare un nuovo pacchetto: il metodo che usiamo di solito e cioè:
<pre>
# apt-get install nome_pacchetto
</pre>
che utilizzerà pacchetti proveniente dalla versione impostata come '''Default-Release''' in '''apt.conf''', oppure il comando
<pre>
# apt-get install -t versione_di_debian nome_pacchetto
</pre>
che  provvederà a installare il pacchetto da noi richiesto per la versione  specificata (versione_debian), risolvendo automaticamente le dipendenze.


----  
----  
[[User:MaXeR|MaXeR]]
{{Box|NOTE|
Autori:
* [[User:MaXeR|MaXeR]]
* [[User:Keltik|Keltik]]
Esteso da:
* [[User:Nest|Nest]]
Verificato da:
* [[Utente:TheNoise|~ The Noise]]<br>
}}


Corretto l'8/2/2011 da [[User:Ernestus|Ernestus]]
Corretto l'8/2/2011 da [[User:Ernestus|Ernestus]]
3 155

contributi