Old:APT uso avanzato: mixare releases diverse: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(Aggiornamento repositories di Marillat)
m (Impostato pinning Marillat > Rarewares per evitare conflitti)
Riga 1: Riga 1:
Spesso abbiamo la necessit� di installare la nuova versione di un pacchetto di cui proprio non possiamo fare a meno, che 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 Sarge 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.
Il caso più frequente è probabilmente quello di un' installazione di Testing (Etch) 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 releases diverse (e soddisfarne le dipendenze) senza costringerci ad un upgrade dell' intera distribuzione e senza dover impazzire per risolvere conflitti e incosistenze.
APT è nostro fido alleato anche in questi frangenti, permettendoci di utilizzare fonti per pacchetti di releases diverse (e soddisfarne le dipendenze) senza costringerci ad un upgrade dell' intera distribuzione e senza dover impazzire per risolvere conflitti e inconsistenze.


Per prima cosa dobbiamo preparare due files normalmente non presenti sulla nostra debianbox: si tratta dei file preferences e apt.conf.
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...).
Questi due file istruiranno APT su come gestire le dipendenze dei pacchetti, informandolo su come comportarsi in caso di conflitti e altri problemi.
 
Assicuriamoci di essere l' utente root e procediamo.
 
Per prima cosa editiamo il file '''/etc/apt/sources.list''' ed inseriamo gli archivi dei pacchetti Debian che utilizzeremo:
<pre>
### Debian Ufficiale -- Sarge
deb http://ftp.it.debian.org/debian/ testing main non-free contrib
 
### Debian Ufficiale -- Sarge 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


In questo how-to mostrer� come far convivere Sarge e Sid sulla stessa macchina, ma le istruzioni sono facilmente riportabili anche ad altre situazioni (unstable + experimental, woody + sarge, woody + unstable, woody + sarge + sid, ecc...).
### Multimedia -- Audio -- Rarewares
deb http://www.rarewares.org/debian/packages/unstable ./


Assicuriamoci di essere l' utente root e procediamo.
### Multimedia -- Video -- Marillat
deb ftp://ftp.nerim.net/debian-marillat/ etch main
deb ftp://ftp.nerim.net/debian-marillat/ sid main
</pre>
 
A questo punto dobbiamo preparare due files normalmente non presenti sulla nostra debianbox: si tratta dei file '''preferences''' e '''apt.conf'''.
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:
Creiamo il file preferences:
<pre>
<pre>
# touch /etc/apt/preferences
# touch /etc/apt/preferences
</pre>
</pre>
editiamolo col nostro editor di fiducia e inseriamo queste direttive:
<pre>
Package: *
Pin: release o=Unofficial Multimedia Packages
Pin-Priority: 950


editiamolo col nostro editor di fiducia e inseriamo queste direttive:
Package: *
Pin: release o=xmixahlx
Pin-Priority: 900
 
Package: *
Pin: release a=testing
Pin-Priority: 850


<pre>
Package: *
Package: *
Pin: release a=unstable
Pin: release a=unstable
Pin-Priority: 650
Pin-Priority: 800


Package: *
Package: *
Pin: release a=testing
Pin: release a=experimental
Pin-Priority: 600
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>
</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.


Ora creiamo il file apt-conf
Ora creiamo il file apt-conf
Riga 39: Riga 103:


<pre>
<pre>
APT::Default-Release "unstable";
APT::Default-Release "testing";
APT::Cache-Limit 10000000;
APT::Cache-Limit 10000000;
Apt::Get::Purge;
Apt::Get::Purge;
Riga 47: Riga 111:
APT::Get::Show-Upgraded "true";
APT::Get::Show-Upgraded "true";
</pre>
</pre>
Ora non ci resta che aggiungere i repository necessari al file /etc/apt/sources.list assicurandoci di avere un repositry per Sarge ed uno per Sid.


Facciamo l' update del database dei pacchetti:
Facciamo l' update del database dei pacchetti:
Riga 56: Riga 118:
</pre>
</pre>


D'ora in avanti avremo due possibilit� per installare un nuovo pacchetto: il metodo che usiamo di solito e cio� apt-get install nome_pacchetto oppure il comando apt-get install -t versione_di_debian nome_pacchetto che provveder� a installare il pacchetto da noi richiesto per la versione specificata (versione_debian), risolvendo automaticamente le dipendenze.
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.


Happy debian!
Happy debian!


Autore: [[User:Keltik|Keltik]]
----
 
Autore: [[User:Keltik|Keltik]]<br>
Revisione: [[User:Nest|Nest]] <br>
Verificato: [[Utente:TheNoise|~ The Noise]]

Versione delle 17:58, 26 set 2005

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 (Etch) 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 releases diverse (e soddisfarne le dipendenze) senza costringerci ad un upgrade dell' intera distribuzione e senza dover impazzire per risolvere conflitti e inconsistenze.

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...).

Assicuriamoci di essere l' utente root e procediamo.

Per prima cosa editiamo il file /etc/apt/sources.list ed inseriamo gli archivi dei pacchetti Debian che utilizzeremo:

### Debian Ufficiale -- Sarge
deb http://ftp.it.debian.org/debian/ testing main non-free contrib

### Debian Ufficiale -- Sarge 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

A questo punto dobbiamo preparare due files normalmente non presenti sulla nostra debianbox: si tratta dei file preferences e apt.conf. 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:

# touch /etc/apt/preferences

editiamolo col nostro editor di fiducia e inseriamo queste direttive:

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

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:

# 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

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.

Ora creiamo il file apt-conf

# touch /etc/apt/apt.conf

editiamolo inserendo quanto segue:

APT::Default-Release "testing";
APT::Cache-Limit 10000000;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Get::Fix-Broken;
APT::Get::Fix-Missing;
APT::Get::Show-Upgraded "true";

Facciamo l' update del database dei pacchetti:

# apt-get update

D'ora in avanti avremo due possibilità per installare un nuovo pacchetto: il metodo che usiamo di solito e cioè:

# apt-get install nome_pacchetto

che utilizzerà pacchetti proveniente dalla versione impostata come Default-Release in apt.conf, oppure il comando

# apt-get install -t versione_di_debian nome_pacchetto

che provvederà a installare il pacchetto da noi richiesto per la versione specificata (versione_debian), risolvendo automaticamente le dipendenze.

Happy debian!


Autore: Keltik
Revisione: Nest
Verificato: ~ The Noise