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

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
m (spaziatura/box iniziale)
 
(43 versioni intermedie di 13 utenti non mostrate)
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.
{{Old|Leggere la guida sul [[Repository & pinning|pinning]].}}
__TOC__
== Introduzione ==


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


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


In questo how-to mostrer� come utilizzare pacchetti Debian provenienti da Sarge, Unstable, Experimental, Marillat (multimedia/video) e Rarewares.org (multimedia/audio), ma le istruzioni sono facilmente riportabili anche ad altre situazioni (unstable + experimental, woody + sarge, woody + unstable, woody + sarge + sid, ecc...).
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>.


Assicuriamoci di essere l' utente root e procediamo.
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...).


Per prima cosa editiamo il file '''/etc/apt/sources.list''' ed inseriamo gli archivi dei pacchetti Debian che utilizzeremo:
== 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:
<pre>
<pre>
### Debian Ufficiale -- Sarge
### Debian Ufficiale -- Testing
deb http://ftp2.it.debian.org/debian/ testing main non-free contrib
deb http://ftp.it.debian.org/debian/ testing main contrib non-free


### Debian Ufficiale -- Sarge Sicurezza
### 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://ftp2.it.debian.org/debian/ unstable main non-free contrib
deb http://ftp.it.debian.org/debian/ unstable main contrib non-free


###  Debian Ufficiale -- Experimental
###  Debian Ufficiale -- Experimental
deb http://ftp.debian.org/debian/ ../project/experimental main
deb http://ftp.it.debian.org/debian/ experimental main contrib non-free


### Multimedia -- Audio -- Rarewares
### Multimedia -- Marillat
deb http://www.rarewares.org/debian/packages/unstable ./
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'''.


### Multimedia -- Video -- Marillat
== Configurare apt ==
deb ftp://ftp.nerim.net/debian-marillat/ testing main
deb ftp://ftp.nerim.net/debian-marillat/ unstable main
</pre>


A questo punto dobbiamo preparare due files normalmente non presenti sulla nostra debianbox: si tratta dei file '''preferences''' e '''apt.conf'''.
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 41: Riga 59:
<pre>
<pre>
Package: *
Package: *
Pin: release o=xmixahlx
Pin: release o=Unofficial Multimedia Packages
Pin-Priority: 950
Pin-Priority: 950
Package: *
Pin: release o=Unofficial Multimedia Packages
Pin-Priority: 900


Package: *
Package: *
Riga 61: Riga 75:
</pre>
</pre>


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 (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 non sempre e necessariamente presente (purtroppo).
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 "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>
bard:/home/nest# cd /var/lib/apt/lists/
$ cd /var/lib/apt/lists
bard:/var/lib/apt/lists# cat www.rarewares.org_debian_packages_unstable_._Release
 
Archive: unstable
$ cat deb-multimedia.org_dists_unstable_InRelease
Origin: xmixahlx                    
Label: xmixahlx_rarewares-unstable
Architecture: i386
bard:/var/lib/apt/lists# cat ftp.nerim.net_debian-marillat_dists_testing_main_binary-i386_Release
Archive: testing
Component: main
Origin: Unofficial Multimedia Packages
Origin: Unofficial Multimedia Packages
Label: Unofficial Multimedia Packages
Label: Unofficial Multimedia Packages
Architecture: i386
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;
* '''Label''' = identifica il repository: potete inserire descrizioni, ecc...;
* '''Architectures''' = l'architettura dei pacchetti contenuti nel repository (ad es.: i386, sparc, source, ecc...).


Archive = � l' archivio Debian a cui i pacchetti appartengono (ad es.: stable, testing. ecc...);
Possiamo vedere che nel file Release è contenuto proprio il dato che stavamo cercando: Origin.
 
Component = indica il tipo di componente (ad es.: main, contrib, non-free);


Origin = specifica il proprietario del repository;
=== Il file <code>apt.conf</code> ===


Label = identifica il repository: potete inserire descrizioni, ecc...;
Ora creiamo il file <code>/etc/apt/apt-conf</code>
 
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


<pre>
<pre>
Riga 107: Riga 129:
<pre>
<pre>
APT::Default-Release "testing";
APT::Default-Release "testing";
APT::Cache-Limit 10000000;
APT::Cache-Limit 15000000;
Apt::Get::Purge;
Apt::Get::Purge;
APT::Clean-Installed;
APT::Clean-Installed;
Riga 115: Riga 137:
</pre>
</pre>


Facciamo l' update del database dei pacchetti:
Facciamo l'update del database dei pacchetti:


<pre>
<pre>
Riga 121: Riga 143:
</pre>
</pre>


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


----
== Pagine correlate ==
[[Repository & pinning]]


Autore: [[User:Keltik|Keltik]]
{{Autori
|Autore = [[User:Keltik|Keltik]]
|Estesa_da =
:[[User:Nest|Nest]]
|Verificata_da=
:[[Utente:TheNoise|~ The Noise]]
|Numero_revisori = 1
}}

Versione attuale delle 11:37, 25 giu 2016

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.
Leggere la guida sul pinning.


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.

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 /etc/apt/preferences.

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.

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

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

### 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 contrib non-free

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

### Multimedia -- Marillat
deb http://www.deb-multimedia.org testing main non-free
deb http://www.deb-multimedia.org sid main non-free

In alternativa, invece di editare il file /etc/apt/sources.list, è possibile aggiungere nuovi files nella directory /etc/apt/sources.list.d/: dal manuale man sources.list

       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.

Fare attenzione al nome dei file: deve terminare con .list.

Configurare apt

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

Anche in questo caso, come per /etc/apt/sources.list, è possibile creare dei files nelle directory /etc/apt/preferences.d/ e /etc/apt/apt.conf.d/, anziché editare /etc/apt/preferences e /etc/apt/apt.conf. Vedere il manuale di apt_preferences e apt.conf per approfondimenti.


Il file preferences

Creiamo il file /etc/apt/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 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 (stable, testing, sid, jessie, ecc...).

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:

$ cd /var/lib/apt/lists

$ cat deb-multimedia.org_dists_unstable_InRelease
Origin: 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

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;
  • 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.

Il file apt.conf

Ora creiamo il file /etc/apt/apt-conf

# touch /etc/apt/apt.conf

editiamolo inserendo quanto segue:

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";

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!

Pagine correlate

Repository & pinning




Guida scritta da: Keltik Swirl-auth40.png Debianized 40%
Estesa da:
Nest
Verificata da:
~ The Noise

Verificare ed estendere la guida | Cos'è una guida Debianized