Applicare una patch ad un pacchetto Debian: differenze tra le versioni

m
nessun oggetto della modifica
mNessun oggetto della modifica
mNessun oggetto della modifica
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 per� non � disponibile per il rilascio di Debian che abbiamo installato.
==Introduzione==


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.
Da qualche anno si sono diffusi i 'pen drive', delle pennine usb con dei chip di memoria, per portare sempre con se ogni informazione.
Linux, in questo campo, ha sempre sofferto di un problema: il mount e umount delle periferiche...
Ora, grazie a questo interessante pacchetto, � possibile automatizzare questa procedura e, anzi, renderla ancora pi� semplice e comoda.


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...).
==Installazione==
 
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 -- 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>
 
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:
<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:


Per installare usbmount, bisogna scaricare il pacchetto Debian (che per ora non ancora stato incluso nei repository ufficiali) dal sito del progetto: http://usbmount.alioth.debian.org/ (i pacchetti si trovano qui: http://usbmount.alioth.debian.org/package/).
Una volta scaricato, sufficiente aprire una shell, e da root dare il seguente comando:
<pre>
<pre>
# cd /var/lib/apt/lists
# dpkg -i /path/per/raggiungere/il/pacchetto/usbmount_v.e.r.deb
# 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>
 
L'errore che si potrebbe riscontrare la mancanza di udev, la cui risoluzione molto semplice:
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
 
<pre>
<pre>
# touch /etc/apt/apt.conf
# apt-get install udev
</pre>
</pre>


editiamolo inserendo quanto segue:


<pre>
==Configurazione==
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:
Il pacchetto non necessita di riconfigurazione, in quanto i valori di default sono ottimali. Analizziamo comunque i file di configurazione e le opzioni: il file contenente la configurazione di usbmount � '''/etc/usbmount.conf'''.<br/>
Le direttive sono:<br/>
* '''MOUNTPOINTS''' Indicano le directory in cui dovranno essere montate le periferiche. Viene sempre utilizzata la prima disponibile (cosa molto comoda) e, se non sono presenti, vengono create.<br/>
* '''FILESYSTEMS''' Contiene la lista dei filesystem da provare, quando si esegue il mount del device. Il mio consiglio � di avere prima vfat e poi msdos, per evitare problemi di 'storpiatura' dei nomi dei file.<br/>
* '''MOUNTOPTIONS''' Serve per indicare le opzioni da passare al mount del device. Se non � presente, consiglio l'aggiunta dell'opzione 'quiet' che elimina i messaggi di errore relativi all'assenza di permessi nei filesystem di tipo fat.<br/>
* '''VERBOSE''' Utile per il debug (e se qualche cosa non va come deve). In caso di dubbio, lasciare su 'no'.<br/>


<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�:
==Utilizzo==


L'utilizzo piuttosto semplice.
sufficiente inserire il dispositivo, aspettare un secondo, e recarsi nella directory /media/usb (o usb0, usb1, ...), dove verr montata la periferica.
Per poter leggere e scrivere, bisogna appartenere al gruppo 'floppy': per ottenere ci e sufficiente un
<pre>
<pre>
# apt-get install nome_pacchetto
# adduser nomeutente floppy
</pre>
</pre>
Ovviamente il gruppo modificabile nelle impostazioni di usbmount.
Per quanto riguarda l'umount, non bisogna preoccuparsi: le periferiche sono montate con la flag 'sync' attiva, che comporta un accesso in scrittura in tempo reale. Per evitare perdite di dati basta aspettare il termine della copia dei dati, dopo di che possibile rimuoverla direttamente (facendo attenzione a non aver aperte applicazioni che accedono al mountpoint del device).


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


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


[[Categoria:Apt]]
UsbMount � una utility ancora giovane, che sicuramente verr� migliorata, ed ampliata. Sicuramente diventer� un must su tutti i computer (sinceramente, non riesco a farne a meno ^_^)!
[[Categoria:Apt-Dev]]
1 760

contributi