|
|
Riga 1: |
Riga 1: |
| ==Introduzione== | | ==INTRODUZIONE== |
|
| |
|
| In questo howto vedremo come sia possibile applicare una patch ad un pacchetto
| | Da qualche anno si sono diffusi i 'pen drive', delle pennine usb con dei chip di memoria, per portare sempre con se ogni informazione. |
| ufficiale Debian.
| | Linux, in questo campo, ha sempre sofferto di un problema: il mount e umount delle periferiche... |
| Prima di proseguire, però, vedremo quando non è possibile farlo:
| | Ora, grazie a questo interessante pacchetto, � possibile automatizzare questa procedura e, anzi, renderla ancora pi� semplice e comoda. |
| * il pacchetto non è stato distribuito anche in forma di sorgenti (capita per
| |
| qualche repository non ufficiale e per alcuni pecchetti uff. (una volta mi era
| |
| successo...).
| |
|
| |
|
| | ==INSTALLAZIONE== |
|
| |
|
| ==Preparazione del sistema==
| | 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: |
|
| |
|
| Per prima cosa bisogna assicurarsi di avere, in '''/etc/apt/sources.list''',
| |
| le sorgenti per scaricare i pacchetti di tipo deb-src:
| |
| <pre> | | <pre> |
| #--CUT HERE--# | | # dpkg -i /path/per/raggiungere/il/pacchetto/usbmount_v.e.r.deb |
| #per stable
| |
| deb-src http://ftp2.it.debian.org/debian/ stable main non-free contrib
| |
| deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib
| |
| non-free
| |
| | |
| #per testing
| |
| deb-src http://ftp2.it.debian.org/debian/ testing main non-free contrib
| |
| deb-src http://non-us.debian.org/debian-non-US testing/non-US main contrib
| |
| non-free
| |
| | |
| #per unstable
| |
| deb-src http://ftp2.it.debian.org/debian/ sid main non-free contrib
| |
| deb-src http://non-us.debian.org/debian-non-US sid/non-US main contrib non-free | |
| #--CUT HERE--#
| |
| </pre>
| |
| ora aggiorniamo il contenuto del database dei pacchetti:
| |
| <pre>
| |
| # apt-get update
| |
| </pre> | | </pre> |
|
| |
|
|
| |
|
| ==Procediamo==
| | L'errore che si potrebbe riscontrare � la mancanza di udev, la cui risoluzione � molto semplice: |
|
| |
|
| ===Metodo 1: `apt-get source && dpkg-buildpackage`===
| |
|
| |
| Per scaricare i sorgenti, seguiamo questa procedura:
| |
| Per avere tutto in ordine, creiamo una cartella di lavoro
| |
| <pre> | | <pre> |
| $ mkdir nomepacchetto && cd nomepacchetto
| | # apt-get install udev |
| </pre> | | </pre> |
|
| |
|
| Ora possiamo scaricare i sorgenti:
| |
| <pre>
| |
| $ apt-get source nomepacchetto
| |
| </pre>
| |
|
| |
|
| così facendo, scaricheremo 3 file, che verranno decompressi in una cartella
| |
| (nomepacchetto-ver.sio.ne)
| |
|
| |
|
| Ora possiamo entrare in questa cartella, scaricare la patch e applicarla:
| | ==CONFIGURAZIONE== |
| <pre>
| |
| $ cd nomepacchetto-ver.sio.ne
| |
| $ wget http://indirizzo/per/la/patch.patch
| |
| </pre>
| |
|
| |
|
| supponendo che la patch non sia compressa...
| | Il pacchetto non necessita di riconfigurazione, in quanto i valori di default sono ottimali. Analizziamo comunque i file di configurazione e le opzioni: |
| <pre>
| | il file contenente la configurazione di usbmount � /etc/usbmount.conf . |
| $ patch -p1 < patch.patch
| | Le direttive sono: |
| </pre>
| | 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. |
|
| |
|
| se è compressa:
| | ===FILESYSTEMS=== |
| <pre>
| | Contiene la lista dei filesystem da provare, quando si esegue il mount del device. |
| $ zcat patch.patch | patch -p1
| | Il mio consiglio � di avere prima vfat e poi msdos, per evitare problemi di 'storpiatura' dei nomi dei file. |
| </pre>
| |
|
| |
|
| Una volta applicata la patch, se non riceviamo errori, siamo pronti a
| | ===MOUNTOPTIONS=== |
| compilare il pacchetto.
| | Serve per indicare le opzioni da passare al mount del device. |
| Per fare questo utilizzeremo un altro tool Debian: dpkg-buildpackage
| | 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. |
| <pre>
| |
| # dpkg-buildpackage
| |
| </pre>
| |
| | |
| Il comando proverà a compilare il pacchetto, ed in caso di errori ci chiederà
| |
| di sistemare le dipendenze (se l'errore è dovuto alla mancanza di alcune
| |
| librerie) elencando tutti i pacchetti necessari, installabili con un normale
| |
| <pre>
| |
| # apt-get buid-dep 'nomepacchetto_da_installare'
| |
| </pre>
| |
| | |
| una volta giunta a termine la compilazione, troveremo (nella cartella
| |
| nomepacchetto da noi creata) una serie di file .deb!
| |
| ora possiamo installarli:
| |
| <pre>
| |
| # dpkg -i nomepacchetto_ver.sio.ne.deb
| |
| </pre>
| |
| | |
| Bene, se non riceviamo errori...il pacchetto è installato.
| |
|
| |
|
| | ===VERBOSE=== |
| | Utile per il debug (e se qualche cosa non va come deve). |
| | In caso di dubbio, lasciare su 'no'. |
|
| |
|
| ===Metodo 2: `apt-build`===
| |
|
| |
|
| Prima di iniziare, è d'obbligo una introduzione su apt-build.
| | ==UTILIZZO== |
| Questo tool è abbastanza giovane, e consente di compilare i pacchetti Debian
| |
| ottimizzandoli per la propria macchina. Durante l'installazione vengono poste
| |
| delle domande (tipo di processore, livello di ottimizzazione), e rispondendo
| |
| nel modo opportuno, sarà possibile compilare i pacchetti ottimizzandoli per la
| |
| propria macchina, cosa che, nel METODO 1 non avviene.
| |
|
| |
|
| Apt-build ci mette a disposizione una opzione, '''--patch''', che consente di applicare delle patch al pacchetto da installare.
| | L'utilizzo � piuttosto semplice. |
| Vediamo, ora, come fare.
| | � sufficiente inserire il dispositivo, aspettare un secondo, e recarsi nella directory /media/usb (o usb0, usb1, ...), dove verr� montata la periferica. |
| Scarichiamo la patch:
| | Per poter leggere e scrivere, bisogna appartenere al gruppo 'floppy': per ottenere ci� e sufficiente un |
| <pre>
| |
| $ wget http://indirizzo/per/la/patch.patch
| |
| </pre>
| |
|
| |
|
| ora diamo il semplice comando:
| |
| <pre> | | <pre> |
| # apt-build -p 0 --patch patch.patch install 'pacchetto' | | # adduser nomeutente floppy |
| </pre> | | </pre> |
|
| |
|
| ora mettiamoci comodi, armati di tazzona di caffè (rigorosamente marchiata con un bel Tux) e controlliamo a video mentre:
| | Ovviamente il gruppo � modificabile nelle impostazioni di usbmount. |
| * vengono scaricate i pacchetti *-dev per la compilazione;
| | 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). |
| * viene aggiornato l'elenco dei pacchetti dei vari repository (usare l'opzione '''--noupdate''' per evitarlo);
| |
| * vengono scaricati i sorgenti del pacchetto;
| |
| * viene applicata la patch;
| |
| * inizia la compilazione del pacchetto:
| |
| * viene/vengono installato/i il/i pacchetto/i generato/i.
| |
| | |
| Bene, ora il pacchetto è installato nel vostro sistema!
| |
|
| |
|
| | ==CONCLUSIONE== |
|
| |
|
| ---- [[User:MaXeR|MaXeR]]
| | 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 ^_^)! |