11.07.2015 Views

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.1. LA GESTIONE DI KERNEL E MODULI 171che in HTTP) e sono disponibili in tre forme, 5 le prime due sono degli archivi completi in formatotar compressi o con bzip2 o con gzip, il cui nome sarà qualcosa del tipo linux-2.4.24.tar.bz2o linux-2.4.24.tar.gz (il primo è più compresso e si scarica più velocemente, ma sono sempreuna ventina di megabyte abbondanti) oppure attraverso dei patch che permettono di passare dauna versione precedente alla successiva, in modo che sia possibile evitare di riscaricare da capol’archivio completo tutte le volte. Così ad esempio una volta che si abbiano i sorgenti del kernel2.4.23 si potrà passare al 2.4.24 scaricando soltanto il file patch-2.4.24.gz (di norma vienecompresso anche questo). Così diventa possibile aggiornare alla versione successiva senza dovereffettuare dei download di enormi dimensioni.Una volta scaricati gli archivi si dovranno scompattare questi ultimi che creeranno unadirectory linux-2.4.24 nella directory corrente. A seconda dei casi il comando da usare ètar -xvjf linux-2.4.24.tar.bz2 o tar -xvzf linux-2.4.24.tar.gz In genere si tende amettere detti sorgenti in /usr/src ma nella procedura di compilazione ed installazione nienteobbliga a questa scelta, anzi, dato che non è necessario usare root per la compilazione, l’usodella propria home directory potrebbe anche essere una scelta migliore.Un discorso diverso va fatto qualora si vogliano utilizzare i patch. Questo tra l’altro valesia per il passaggio da una versione di kernel all’altra, che per l’applicazione di patch relativiall’installazione di funzionalità aggiuntive che possono interessare, ma che non sono ancoraincluse nei sorgenti del kernel.Per questo occorre capire cos’è un patch: questo è definito sulla base della differenza fra duefile (in genere dei sorgenti, ma la cosa vale per qualunque file di testo), così come prodotta dalcomando diff, che permette di indicare quali righe sono cambiate dall’uno all’altro e salvareil tutto su un file. Così si può passare da una versione di un programma alla successiva trasmettendosolo le differenze nel relativo sorgente. Il comando diff può inoltre essere eseguitoricorsivamente su due intere directory, registrando le differenze sia per quanto riguarda i varifile che esse contengono, che per l’aggiunta o la rimozione di alcuni di essi. Si può poi salvare iltutto su unico file, che verrà a costituire per l’appunto il patch; un esempio di è il seguente:--- linux-2.4.20-ben8/arch/ppc/kernel/ppc_ksyms.c 2002-11-23 10:52:30.000000000 +0100+++ linux-2.4.20-ben8-xfs-lolat/arch/ppc/kernel/ppc_ksyms.c 2003-05-15 17:12:38.000000000 +0200@@ -163,6 +163,7 @@ EXPORT_SYMBOL(_outsw_ns);EXPORT_SYMBOL(_insl_ns);EXPORT_SYMBOL(_outsl_ns);EXPORT_SYMBOL(ioremap);+EXPORT_SYMBOL(ioremap_bot);EXPORT_SYMBOL(__ioremap);EXPORT_SYMBOL(iounmap);EXPORT_SYMBOL(iopa);@@ -196,6 +197,7 @@ EXPORT_SYMBOL(flush_dcache_range);EXPORT_SYMBOL(flush_icache_user_range);EXPORT_SYMBOL(flush_icache_page);EXPORT_SYMBOL(flush_dcache_page);+EXPORT_SYMBOL(local_flush_tlb_all);EXPORT_SYMBOL(xchg_u32);#ifdef CONFIG_ALTIVECEXPORT_SYMBOL(last_task_used_altivec);la prima riga qui indica il file originale, mentre la seconda la nuova versione, si noti che si trattadi un pathname relativo, che ha come origine la directory in cui si trovano i due diversi alberiquando è stato eseguito il diff. Le righe che iniziano per @@ indicano a quale riga nei due filefanno riferimento i dati riportati di seguito, nel caso 6 righe del primo file a partire dalla 163,e 7 del secondo a partire sempre dalla stessa riga. Le differenze sono mostrate apponendo un +alle righe aggiunte nel secondo file ed un - a quelle tolte.5 in realtà esiste anche una forma di distribuzione tramite il protocollo rsync, che permette di ridurre la quantitàdi dati da scaricare.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!