Capitolo successivo Capitolo precedente Indice

4. Installazione e aggiornamento di una distribuzione Slackware

La distribuzione Linux Slackware realizzata da Patrick J. Volkerding è facilmente ottenibile presso l'indirizzo seguente, oltre che dai vari mirror e dalle varie riproduzioni su CD-ROM.

ftp://sunsite.unc.edu/pub/Linux/distributions/slackware

Vantaggi

Adatta agli utenti che hanno una buona conoscenza dei sistemi Unix.

L'utente esperto può installare Linux anche in sistemi con particolare penuria di risorse (poca memoria, poco spazio nel disco fisso).

Può essere riprodotta su dischetti da 1440KB.

Dispone di una buona quantità di immagini di dischetti di avvio a seconda delle periferiche da gestire.

Permette l'installazione su un filesystem UMSDOS, cioè su una partizione già utilizzata per il Dos.

Svantaggi

L'installazione è un po' complicata e tende a scoraggiare l'utente inesperto.

Non dispone di un sistema efficace per la gestione degli aggiornamenti: si rischia spesso di lasciare in giro file che non servono più.

4.1 Organizzazione della distribuzione

L'essenziale della distribuzione Slackware è composto dalle directory seguenti.

install

Contiene una serie di utility Dos. In particolare sono importanti RAWRITE.EXE e FIPS.EXE.

bootdsks.144

Contiene una serie di file immagine di dischetti di boot, da utilizzare in abbinamento con uno dei dischetti di root per avviare Linux in condizioni di emergenza o per iniziare la sua installazione. Dal nome, si intende che si tratta di immagini di dischetti da 1440KB.

rootdsks

Contiene una serie di file di immagine di dischetti di root, da utilizzare in abbinamento con uno dei dischetti di boot per avviare Linux in condizioni di emergenza o per iniziare la sua installazione.

slakware

Contiene una serie di sottodirectory contenenti le varie parti di Linux che possono essere installate. Ogni sottodirectory fa riferimento a un blocchetto contenibile in un dischetto da 1440KB (in formato Dos FAT) in modo da permettere la preparazione di una serie di dischetti per l'installazione in un computer senza lettore CD-ROM e senza altre possibilità di comunicare con l'esterno. In questo senso, queste directory vengono definite set di dischi.

4.2 Dischetti di boot e di root

Con la distribuzione Slackware si devono preparare due dischetti, boot disk e root disk, per avviare il sistema la prima volta quando si vuole installare Linux nel disco fisso e quando si hanno dei problemi (gravi) da risolvere in una precedente installazione.

I dischetti si preparano a partire dai file-immagine. Se si ha a disposizione un sistema operativo Dos si può utilizzare l'utility RAWRITE.EXE nel modo seguente.

RAWRITE <file-immagine> A:

Se invece si dispone già di un sistema Linux, si può utilizzare semplicemente il programma cp nel modo seguente (bisogna operare come utente root).

cp <file-immagine> /dev/fd0

Il dischetto di boot, dal nome, serve a eseguire il boot, cioè ad avviare la parte essenziale del sistema; quello di root serve a contenere i programmi di utilità necessari per gli scopi che si intendono raggiungere: di solito l'installazione di Linux.

La scelta tra le varie immagini di dischetti di boot può essere imbarazzante data la grande quantità. Il motivo di questo dipende dalla necessità di prevedere la maggior quantità possibile di unità di memorizzazione e di interfaccie di rete utili per iniziare l'installazione.

4.3 Fonte della distribuzione

L'installazione può avvenire a partire da diverse fonti. La serie di directory definita set di dischetti, che segue slakware, può trovarsi in uno dei posti seguenti.

CD-ROM

È la situazione più comune, quando si acquista un CD-ROM o un libro contenente un CD-ROM.

Disco fisso

Quando si scarica la distribuzione Linux da Internet o quando si hanno difficoltà inizialmente con il lettore di CD-ROM. In quest'ultimo caso si deve copiare da qualche parte la struttura di directory che discende da slakware. Per esempio nel modo seguente, se il lettore CD-ROM corrisponde al drive D:.

C:> XCOPY D:\SLAKWARE\*.* C:\SLAK\*.* /E /S /V

Dischetti

L'ultima risorsa per l'installazione di Linux è la riproduzione dei cosiddetti disk set.

C:> COPY D:\SLAKWARE\A1\*.* A:\ /V

C:> COPY D:\SLAKWARE\A2\*.* A:\ /V

...

Directory condivisa in rete

Teoricamente, è possibile installare Linux partendo da una directory condivisa in rete, ma questo implica l'esistenza di una rete TCP/IP e di un computer nella rete che permette di accedere al proprio filesystem nel quale si trova una distribuzione Slackware di Linux. In questi casi si dice che si può accedere a un filesystem di rete attraverso il protocollo NFS. Questa soluzione non è quindi adatta a chi inizia ad utilizzare Linux e a chi non ha alcuna rete del genere.

Backup a nastro

Teoricamente è possibile installare Linux da una copia della distribuzione fatta su una cartuccia a nastro, normalmente utilizzata per le copie di sicurezza.


Immagine IDE/ATAPI SCSI NFS
bare.i No No
net.i No
scsinet.s alcune schede SCSI
Elenco delle immagini dei dischetti di boot più importanti.

La scelta dell'immagine giusta può diventare un po' complicata, e alle volte, se non si riesce a trovare quella adatta al proprio lettore CD-ROM, vale forse la pena di copiare tutto quello che serve nella preesistente partizione Dos di un disco IDE/EIDE e utilizzare l'immagine bare.i.

La scelta del disco di root è fortunatamente più semplice. Segue un elenco parziale.

color.gz

Consente l'installazione di Linux in una partizione ad esso dedicata utilizzando un filesystem ext2.

pcmcia.gz

Consente l'installazione di Linux utilizzando una scheda di rete di tipo PCMCIA per l'utilizzo del protocollo NFS.

rescue.gz

Consente la soluzione di problemi in caso di emergenza. Non è quindi adatto all'installazione di Linux.

umsdos.gz

Consente l'installazione di Linux in una partizione FAT, condividendo lo spazio utilizzato dal Dos, utilizzando un filesystem UMSDOS.

4.4 Avvio di Linux dai dischetti

Dopo aver preparato uno spazio sufficiente a contenere Linux nel disco fisso (una installazione pienamente soddisfacente richiede circa 400MB), riducendo la partizione precedente o utilizzando un disco fisso secondario, e dopo aver preparato i dischetti di boot e di root, si può avviare il proprio computer a partire dal dischetto di boot.

<!>   Si suppone di disporre di un computer con più di 4MB di RAM.

<!>   L'installazione di Linux in un sistema che dispone di solo 4MB di RAM è possibile, ma complicata. Per prima cosa le immagini dei dischetti root devono essere decompresse prima di essere copiate sui dischetti. Facendo in questo modo si evita che il dischetto root venga caricato in memoria centrale come ramdisk. Questo implica che il dischetto deve essere accessibile in scrittura e che non può essere rimosso. Probabilmente ciò può essere sufficiente a installare Linux da un CD-ROM o da una copia del ``set di dischetti'' nel disco fisso in una partizione Dos FAT, ma non può andare bene per una installazione da dischetti che richiederebbe la rimozione del dischetto root.

<!>   L'installazione di Linux in un sistema con meno di 4MB è ormai una situazione improponibile.

Dopo la conclusione della fase diagnostica attivata dal BIOS, viene letto e caricato il dischetto di boot e quindi visualizzato un messaggio introduttivo. Alla fine appare un prompt che permette di inserire istruzioni speciali da comunicare al kernel. Alcuni tipi di dispositivo richiedono l'indicazione di una istruzione di questo tipo perché il kernel possa riconoscerli. In questa fase potrebbe essere necessario per fare in modo che venga riconosciuto il lettore CD-ROM, o un disco fisso SCSI.

DON'T SWITCH ANY DISKS YET! This prompt is just entering extra parameters.
If you don't need to enter any parameters, hit ENTER to continue.

boot:

Di solito basta premere [Invio] senza indicare alcun parametro particolare.

[Invio]

Viene quindi caricato il kernel contenuto nel dischetto e durante questa fase vengono visualizzate una serie di informazioni diagnostiche sui componenti hardware riconosciuti o meno. È da questi messaggi che si può capire se le unità di memorizzazione e/o di connessione alla rete, che si vogliono utilizzare, sono state riconosciute come si voleva quando si è scelto il tipo di immagine di boot.

Alla fine, appare il messaggio seguente che invita a sostituire il dischetto di boot con quello di root (viene utilizzato color.gz).

VFS: Insert root floppy disk to be loaded into ramdisk and press ENTER

Appena è stato sostituito il dischetto si deve premere [Invio].

[Invio]

- You will need one or more partitions of type "Linux native" prepared. It is
  also recommended that you create a swap partition (type "Linux swap") prior
  to installation. Most users can use the Linux "fdisk" utility to create and
  tag the types of all these partitions. OS/2 Boot Manager users, however,
  should create their Linux partitions with OS/2 "fdisk", add the bootable
  (root) partition to the Boot Manager menu, and then use the Linux "fdisk" to
  tag the partitions as type "Linux native".
- If you have 4 megabytes or less of RAM, you must activate a swap partition
  before running setup. After making the partition with fdisk, use:
  mkswap /dev/<partition> <number of blocks> ; swapon /dev/<partition>
- Once you have prepared the disk partitions for Linux, and activated a swap
  partiton if you need one, type "setup" to begin the installation process.
- If you want to install program to use monochrome display, type:
  TERM=vt100
  before you start "setup".

Dopo una serie di altre informazioni che riassumono le operazioni da compiere in casi particolari di installazione, appare il messaggio seguente che invita a iniziare un login come utente root.

You may now login as "root"
slakware login:

root [Invio]

Dopo aver inserito il nome root e premuto [Invio], si ottiene il prompt rappresentato dal simbolo seguente.

#

<!>   Negli esempi seguenti si suppone di aver avviato questo mini sistema Linux utilizzando un disco di boot adatto al proprio sistema e un disco di root ottenuto dall'immagine color.gz.

4.5 Preparazione delle partizioni di Linux

Lo script di installazione predisposto all'interno della distribuzione Slackware è in grado di predisporre le partizioni attraverso un sistema guidato. In generale però l'uso diretto dei programmi che di occupano di questo, permette di essere più consapevoli di quanto si sta facendo.

Utilizzo sommario di fdisk

Tra le utility contenute nel dischetto di root si trova fdisk che permette di creare e modificare partizioni di molti tipi diversi.

fdisk [<dispositivo>]

fdisk riceve come argomento il nome del dispositivo che si riferisce all'intero disco fisso (o disco rimovibile) dal momento che agisce proprio sulle partizioni e non all'interno di queste ultime. Supponendo di lavorare sul primo disco fisso IDE all'interno del quale era presente una partizione FAT (Dos) ridotta per fare spazio a Linux, si dovrà avviare fdisk nel modo seguente.

# fdisk /dev/hda [Invio]

fdisk risponde con un prompt particolare.

Command (m for help)

fdisk accetta comandi composti da una sola lettera e per vederne un breve promemoria, basta utilizzare il comando m.

m [Invio]

Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatiblity flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   p   print the partition table
   q   quit without saving changes
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Dischi di grandi dimensioni

Quando si utilizzano dischi IDE di grandi dimensioni, che cioè hanno un numero di cilindri superiore a 1024, si deve tenere presente che i file utilizzati per l'avvio del sistema devono trovarsi prima di quel limite. Per questo, se si presenta questa situazione, è importante predisporre una partizione di piccole dimensioni (pochi MB) nella parte iniziale del disco fisso.

Creazione della partizione di swap

Dopo aver avviato fdisk, la prima cosa da fare è quella di conoscere la situazione del proprio disco fisso.

# fdisk /dev/hda [Invio]

Command (m for help)

Il comando p permette di visualizzare l'elenco delle partizioni esistenti.

p [Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
/dev/hda2           83       83     1024   474768    6  DOS 16-bit >=32M

Per ottenere questa situazione, di due partizioni Dos, era stato utilizzato il programma FIPS: la prima delle due è la partizione Dos che resta, la seconda è vuota e verrà sostituita. Si procede quindi a eliminare la seconda partizione.

d [Invio]

Partition number (1-4):

2 [Invio]

A questo punto resta una sola partizione.

p [Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M

Per inserire la nuova partizione di swap si utilizza il comando n che permette di creare una nuova partizione.

n [Invio]

Command action
   e   extended
   p   primary partition (1-4)

Si deve selezionare un tipo di partizione primaria.

p [Invio]

Partition number (1-4):

Trattandosi della seconda partizione, si inserisce il numero due.

2 [Invio]

Viene richiesta quindi l'indicazione del primo cilindro a partire dal quale inizierà la nuova partizione. Vengono già proposti il valore minimo e quello massimo.

First cylinder (83-1024):

83 [Invio]

Quindi viene richiesta l'indicazione dell'ultimo cilindro, o della dimensione minima della partizione. In questo caso si richiede una dimensione minima di 16MB.

Last cylinder or +size or +sizeM or +sizeK (83-1024):

+16M [Invio]

Per visualizzare il risultato basta utilizzare il solito comando p.

p [Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
/dev/hda2           83       83      148    33264   83  Linux native

Come si vede è stata aggiunta una partizione di tipo Linux nativa di 33264 blocchi da 512 byte. La partizione Linux nativa è adatta ad accogliere un filesystem ext2 e non lo swap della memoria, quindi occorre cambiare il tipo di identificazione della partizione.

t [Invio]

Partition number (1-4):

2 [Invio]

Hex code (type L to list codes):

Come suggerito, conviene visualizzare l'elenco dei codici.

L [Invio]

 0  Empty            9  AIX bootable    75  PC/IX           b7  BSDI fs
 1  DOS 12-bit FAT   a  OS/2 Boot Manag 80  Old MINIX       b8  BSDI swap
 2  XENIX root      40  Venix 80286     81  Linux/MINIX     c7  Syrinx
 3  XENIX usr       51  Novell?         82  Linux swap      db  CP/M
 4  DOS 16-bit <32M 52  Microport       83  Linux native    e1  DOS access
 5  Extended        63  GNU HURD        93  Amoeba          e3  DOS R/O
 6  DOS 16-bit >=32 64  Novell Netware  94  Amoeba BBT      f2  DOS secondary
 7  OS/2 HPFS       65  Novell Netware  a5  BSD/386         ff  BBT
 8  AIX

Il codice di una partizione di swap è 82 e così viene indicato.

82 [Invio]

Changed system type of partition 2 to 82 (Linux swap)

p [Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
/dev/hda2           83       83      148    33264   82  Linux swap

Per registrare definitivamente le variazioni apportate si utilizza il comando w. Se invece si preferisce rinunciare, basta utilizzare il comando q che si limita a concludere l'esecuzione del programma annullando le operazioni svolte.

w [Invio]

The partition table has been altered!

Calling ioctl() to re-read partition table.
(Reboot to ensure the partition table has been updated.)
Syncing disks.
Re-read table failed with error 22: Invalid argument.
Reboot your system to ensure the partition table is updated.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.

Se si ottiene una segnalazione di errore come quella indicata sopra, prima di procedere conviene concludere l'attività e riavviare il sistema.

# shutdown -r now [Invio]

Una volta riavviato il sistema attraverso i soliti dischetti, si deve procedere con l'inizializzazione della partizione di swap appena creata, attraverso il programma mkswap. Il numero indicato alla fine della riga di comando è la dimensione in blocchi della partizione. È importante indicarlo e lo si desume dalle informazioni ottenute in precedenza da fdisk.

# mkswap -c /dev/hda2 33264 [Invio]

Se necessario (di solito quando si ha a disposizione poca memoria RAM), è possibile attivare subito la memoria virtuale, ovvero l'utilizzo di questa partizione di swap appena creata, attraverso il programma swapon.

# swapon /dev/hda2 [Invio]

Creazione della partizione Linux

Dopo aver avviato un'altra volta fdisk, si ricomincia visualizzando la situazione delle partizioni.

# fdisk /dev/hda [Invio]

Command (m for help)

p [Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
/dev/hda2           83       83      148    33264   82  Linux swap

Si procede richiedendo la creazione di una nuova partizione.

n [Invio]

Command action
   e   extended
   p   primary partition (1-4)

Si deve selezionare un tipo di partizione primaria.

p [Invio]

Partition number (1-4):

Trattandosi della terza partizione, si inserisce il numero tre.

3 [Invio]

Viene richiesta quindi l'indicazione del primo cilindro a partire dal quale inizierà la nuova partizione. Viene già proposto l'intervallo di valori possibili.

First cylinder (149-1024):

149 [Invio]

Quindi viene richiesta l'indicazione dell'ultimo cilindro, o della dimensione minima della partizione. In questo caso si richiede la dimensione massima indicando il numero dell'ultimo cilindro.

Last cylinder or +size or +sizeM or +sizeK (149-1024):

1024 [Invio]

Per visualizzare il risultato basta utilizzare il solito comando p.

p [Invio]

Disk /dev/hda: 16 heads, 63 sectors, 1024 cylinders
Units = cylinders of 1008 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
/dev/hda2           83       83      148    33264   82  Linux swap
/dev/hda3          149      149     1024   441504   83  Linux native

Si conclude nel modo consueto utilizzando il comando w per registrare le modifiche.

w [Invio]

La partizione Linux deve essere inizializzata attraverso il programma mke2fs, ma prima potrebbe essere necessario riavviare il sistema per essere sicuri che la nuova partizione sia letta correttamente.

# shutdown -r now [Invio]

Una volta riavviato il sistema attraverso i soliti dischetti, si deve procedere con l'inizializzazione della partizione appena creata, attraverso il programma mke2fs, ma prima conviene riattivare la partizione di swap attraverso swapon, come descritto in precedenza. L'ultimo numero indicato nella riga di comando di mke2fs, rappresenta la dimensione in blocchi. È importante fornire questa indicazione.

# mke2fs -c /dev/hda3 441504 [Invio]

Al termine, la partizione conterrà un filesystem ext2.

<!>   I dischetti Slackware possono essere utilizzati per preparare le partizioni, nel modo appena visto, anche per l'utilizzo successivo di altre distribuzioni Linux, o per il recupero da copie di sicurezza, o altro ancora. In questi casi, non si procede con l'installazione ma si termina semplicemente con uno spegnimento.

# shutdown -h now [Invio]

4.6 Setup nella prima installazione

Dopo la preparazione delle partizioni, si è già fatto molto e si è pronti per iniziare l'installazione vera e propria di Linux attraverso la procedura di installazione avviata dallo script setup.

# setup [Invio]

Si ottiene la visualizzazione del menu generale della procedura di installazione.

HELP       Read the Slackware Setup HELP file
KEYMAP     Remap your keyboard if you are not using a US one
MAKE TAGS  Experts may customize tagfiles to preselect packages
ADDSWAP    Set up your swap partition(s)
TARGET     Set up your target partition(s)
SOURCE     Select source media
DISK SETS  Decide which disk sets you wish to install
INSTALL    Install selected disk sets
CONFIGURE  Reconfigure your Linux system
EXIT       Exit Slackware Linux Setup

<!>   Questo script può essere utilizzato anche all'interno di un sistema Linux già installato e funzionante. In tal caso, il menu cambia leggermente e alcune opzioni hanno un comportamento un po' diverso.

Configurazione della partizione di swap

La partizione di swap è già stata creata, inizializzata e attivata, ma, per fare in modo che venga riconosciuta automaticamente dalla nuova installazione di Linux, occorre che la procedura di installazione sia informata della sua presenza. Si procede quindi selezionando la voce ADDSWAP dal menu generale.

a <ok>

La procedura mostra quindi l'elenco delle partizioni di swap ritrovate.

Slackware setup has detected a swap partition:

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda2           83       83      148    33264   82  Linux swap

Do you wish to install this as your swap partition?

La risposta a questa domanda è un sì.

<yes>

La procedura si premura di avvisare che occorre fare attenzione a non inizializzare e nemmeno attivare una partizione di swap già attivata, con o senza l'ausilio della procedura stessa. Se sono stati seguiti i passi precedenti della creazione di una partizione di swap, ci si trova con una partizione già pronta e attivata.

IMPORTANT NOTE: if you have already made any of your swap
partitions active (using the swapon command), then you
should not allow Setup to use mkswap on your swap partitions,
because it may corrupt memory pages that are currently
swapped out. Instead, you will have to make shure that your
swap partitions have been prepared (with mkswap) before they
will work. You might want to do this to any inactive swap
partitions before you reboot.

<ok>

La procedura di installazione, dopo l'avvertimento appena riportato, chiede se si intende inizializzare le partizioni attraverso l'utilizzo di mkswap. L'inizializzazione della partizione di swap è già stata fatta e quindi non viene ripetuta.

Do you want Setup to use mkswap on your swap partitions?

<no>

La procedura di installazione chiede quindi se si desiderano attivare le partizioni di swap attraverso l'utilizzo di swapon. La partizione di swap è già stata attivata (a meno che il sistema sia stato riavviato) e quindi l'operazione non viene ripetuta.

If you have not already activated your swap partitions
with 'swapon', you should do so at this time. Activate
swap partitions with 'swapon'?

<no>

Come s'era detto all'inizio, lo scopo di utilizzare l'opzione ADDSWAP è quello di informare la procedura di installazione che si vuole utilizzare una partizione di swap e fare quindi in modo che alla fine, il file /etc/fstab contenga un riferimento a questa partizione.

Your swapspace has been configured. This information will
be added to your /etc/fstab:

/dev/hda2      swap        swap        defaults   1   1

<ok>

Al termine, la procedura di installazione propone di proseguire consigliando la prossima fase, ma è anche possibile tornare al menu generale.

Now that you've set up your swap space, you may
continue on with the installation. Otherwise, you'll
be returned to the main menu. Would you like to
continue the installation and set up your TARGET
drive(s)?

<no>

Selezione della partizione Linux di destinazione

Dal menu generale della procedura di installazione si può selezionare l'opzione TARGET: verranno visualizzate tutte le partizioni di tipo 83 o Linux nativa.

t <ok>

Please select a partition from the following list to use for
your root (/) Linux partition.

        /dev/hda3  Linux native, 441504K
        ----
        ----

La partizione di root è quella principale, che serve ad avviare il sistema. Nella maggior parte dei casi è anche l'unica. L'elenco di partizioni, in questo caso si tratta di un elenco di una unica partizione, si comporta come un menu: si tratta si selezionare la prima e unica partizione portandoci sopra il cursore con l'aiuto dei tasti [freccia su] o [freccia giù] e selezionando ok.

<ok>

La procedura di installazione propone di inizializzare o controllare la partizione.

Format   Quick format with no bad block checking
Check    Slow format that checks for bad blocks
No       No, do not format this partition

La prima delle scelte corrisponde all'esecuzione di mke2fs, la seconda all'esecuzione di mke2fs -c, la terza non esegue alcuna inizializzazione. Se la partizione era già stata inizializzata in precedenza, non occorre ripetere l'operazione, ma se viene ripetuta non comporta inconvenienti.

n <ok>

Se era stata rilevata una sola partizione Linux, la procedura di installazione controlla l'eventuale esistenza di partizioni Dos FAT, e/o OS/2 HPFS.

The following DOS FAT or OS/2 HPFS partitions were found:

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M

Would you like to make some of these partitions visible from Linux?

È sempre comodo poter accedere ai dati di una partizione Dos, quindi conviene rispondere affermativamente a questo tipo di domanda.

<yes>

These DOS or OS/2 partitions are available to mount:
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M
Please enter the partition you want to access from Linux,
or type [q] to quit adding new partitions:

/dev/hda1 <ok>

Now this new partition must be mounted somewhere in your
directory tree. Please enter the directory under which
you would like to get it. For instance, you might want to
replay /dosc, /dosd, or something like that. NOTE: This
partition won't actually be mounted until you reboot.

Where would you like to mount /dev/hda1?

/dosc <ok>

DOS partition added to /etc/fstab:

/dev/hda1      /dosc        msdos        defaults   1   1

<ok>

L'indicazione delle partizioni Dos o OS/2 serve solo per automatizzare la configurazione del file /etc/fstab che potrebbe comunque essere predisposto manualmente dopo l'installazione di Linux.

Al termine, come al solito, la procedura di installazione propone di proseguire passando all'indicazione della sorgente della distribuzione di Linux. Per semplicità si ritorna al menu generale.

Now that you've set up your target partition, would
you like to go on to the SOURCE section and select
your installation media?

<no>

Quando si dispone di più partizioni Linux

Quando si hanno a disposizione più dischi fissi e si vogliono utilizzare tutti per Linux, è necessario collegarli insieme in modo da generare un unico filesystem globale. Per questo motivo, se la procedura di installazione rivela la presenza di più partizioni Linux (83), dopo l'indicazione della partizione di root richiede la selezione delle altre partizioni con l'indicazione di una directory di destinazione. In pratica, quella partizione, conterrà tutti i dati a partire da quella directory.

Selezione della sorgente della distribuzione Linux

Attraverso questa fase, si informa la procedura di installazione della posizione in cui si trovano i file della distribuzione Linux da utilizzare per l'installazione. Dal menu generale si seleziona l'opzione SOURCE.

s <ok>

Viene proposto un menu di scelta della possibile origine.

1  Install from a hard drive partition
2  Install from floppy disks
3  Install via NFS
4  Install from a pre-mounted directory
5  Install from CD-ROM

  1. La prima di queste possibilità fa riferimento a una partizione non ancora inserita nel filesystem attualmente in funzione, attraverso una operazione di mount.
  2. La seconda si riferisce alla possibilità di utilizzare i dischetti.
  3. La terza permette di installare a partire da un filesystem di rete o NFS.
  4. La quarta si riferisce a una directory collegata attraverso un mount nel filesystem attualmente in funzione. Ciò può avvenire solo se è già stato fatto il mount manuale prima di avviare setup.
  5. L'ultima si riferisce a un CD-ROM ed è anche la situazione più frequente.

Install from a hard drive partition

Se per qualsiasi ragione, la distribuzione di Linux è stata copiata in una partizione di tipo Dos FAT, o OS/2 HPFS, o Linux nativa, è possibile utilizzare questa opzione per permettere alla procedura di installazione di utilizzarla. Nell'esempio che segue, la directory slakware si intende copiata in C:\SLAK, cioè nella prima partizione di tipo Dos FAT.

1 <ok>

In order to install directly from the hard disk you must
have a partition with a directory containing the Slackware
distribution such that each disk other then the boot disk
is contained in the subdirectory. For example, if the
distribution is in /stuff/slack, then you have to have
directories named /stuff/slack/a1, /stuff/slack/a2, and so
on each containing the files that would be on that disk.
You may install from DOS, HPFS, or Linux partitions.
Please enter the partition where the Slackware sources can
be found, or [enter] to see a partition list:

/dev/hda1 <ok>

Now we need to know what directory on this partition
the Slackware sources can be found in. (The directory
in which the subdirectories for each disk is found)
NOTE: You must give the directory name relative to the
top of the partition. So, for example, if you are going
to mount this partition under /usr, don't include the
'/usr' at the beguinning of the pathname.

What directory are the Slackware sources in?

/slak <ok>

Install from floppy disks

Se non si riesce a installare la distribuzione Linux in un modo più comodo, è necessario farlo da una serie di dischetti. In tal caso occorre specificare il drive ed il formato di questi.

2 <ok>

The base Slackware series (A) can be installed from 1.2M
or 1.44M media. Most of the other disks will not fit on
1.2M media, but can be downloaded to your hard drive and
installed from there later.

Which drive do you want to install from?

                /dev/fd0u1440  1.44M drive a:
                /dev/fd1u1440  1.44M drive b:
                /dev/fd0h1200  1.2M drive a:
                /dev/fd1h1200  1.2M drive b:

Dopo aver selezionato con il cursore il formato prescelto, si conferma con un ok.

<ok>

Install via NFS

Anche se la possibilità di installare una distribuzione Linux attraverso la rete, per la maggior parte delle persone, è piuttosto remota, vale ugualmente la pena di avere almeno un esempio di questo tipo. Si suppone di avere un computer che condivide il suo filesystem e che contiene una distribuzione Slackware nella directory /slak. Il suo indirizzo sia 192.168.1.1, la maschera di rete utilizzata sia 255.255.255.0. Si suppone inoltre che il computer che si sta per predisporre possa utilizzare l'indirizzo 192.168.1.2. Naturalmente, per poter utilizzare questa possibilità, oltre a tutte le difficoltà che comporta la presenza della rete, bisogna aver scelto il dischetto di boot adatto alla scheda di rete che si ha a disposizione.

3 <ok>

WARNING! Installing via NFS can be a real time-saver if you're
good with TCP/IP, but is a tricky installation choice for the
beginner. Some of the things you may have to do to get this
option to work include:

  -- Setting up an /etc/networks file on the bootdisk
  -- Mandatory: getting the source directory exported from
     your NFS server
  -- Starting up 'portmap'

Are you sure you want to try to install via NFS?

<yes>

You will need to enter the IP address you wish to
assign to this machine. Example: 111.112.113.114

What is your IP address?

192.168.1.2 <ok>

Now we need to know your netmask.
Typically this will be 255.255.255.0
but this can be different depending on
your local setup

What is your netmask?

255.255.255.0 <ok>

Do you have a gateway?

<no>

Good! We're all set on the local end, but now we need to know
where to find the software packages to install. First, we need
the IP address of the machine where the Slackware sources are
stored.

What is the IP address for your NFS server?

192.168.1.1 <ok>

There must be a directory on the server with the Slackware
sources for each disk in the subdirectories beneath it.

The installation script needs to know the name of the
directory on your server  that contains the disk
subdirectories. For example, if your A3 disk is found at
/slackware/a3, then you would respond /slackware

What is the Slackware source directory?

/slak <ok>

A questo punto vengono visualizzati una serie di messaggi generati dalle utility utilizzate per connettere il sistema in rete con il server NFS. Se è andato tutto bene, alla fine si dovrebbe notare la situazione del mount come nell'esempio seguente.

Current mount table:
/dev/fd0 on / type minix (rw)
none on /proc type proc (rw)
/dev/hda3 on /mnt type ext2 (rw)
192.168.1.1:/slak on /var/adm/mount type nsf (rw,addr=192.168.1.1)

Do you think you need to try this again ([y]es, [n]o)?

n [Invio]

Install from a pre-mounted directory

Se è già stata collegata (attraverso un mount) una directory contenente la distribuzione Slackware, questo è il modo giusto per indicarne la posizione. Si suppone di aver collegato una ipotetica partizione all'interno della quale, la directory /slack contiene la distribuzione, e di aver usato come punto per il collegamento la directory /sorgente (precedentemente creata). La posizione della distribuzione sarà /sorgente/slak.

4 <ok>

OK, we will install from a directory within the current
filesystem. If you have mounted this directory yourself,
you should not use /mnt or /var/adm/mount as mount points,
since Setup might need to use these directories.  You may
install from any part of the current directory structure,
no matter what the media is (including NFS). You will need
to type in the name of the directory containing the
subdirectories for each source disk.

Which directory would you like to install from?

/sorgente/slak <ok>

Install from CD-ROM

Come si era detto, l'installazione a partire da un CD-ROM è la più comune. Per poter effettuare questo tipo di installazione occorre che il lettore CD-ROM che si dispone sia individuato dal kernel utilizzato nel dischetto di boot prescelto.

5 <ok>

You should be able to install directly from the Slackware CD-ROM
if you have one of the drive types listed below. (If this
doesn't work for some reason, you can still install by copying
the a1...y1 directories to your hard drive and installing from
there, or by making the floppy disks under DOS) If your CD-ROM
uses an ATAPI or IDE interface (see the manual) then use option
(1) even if you recognize the brand name of your drive further
down the list. What type of CD-ROM drive do you have?

1    Works with most ATAPI/IDE CD drives (dev/hd*)
2    SCSI (dev/scd0 or /dev/scd1)
3    Sony CDU31A/CDU33A (/dev/sonycd)
4    Sony 531/535 (/dev/cdu535)
5    Mitsumi (proprietary interface, not IDE) (/dev/mcd)
6    New Mitsumi (also not IDE) (/dev/mcdx0)
7    Sound Blaster Pro/Panasonic (/dev/sbpcd)
8    Aztech/Orchid/Okano/Wearnes (/dev/aztcd)
9    Phillips and some ProAudioSpectrum16 (/dev/cm206cd)
10   Goldstar R420 (/dev/gscd)
11   Optics Storage 8000 (/dev/optcd)
12   Sanyo CDR-H94 + ISP16 soundcard (/dev/sjcd)
scan Try to scan for your CD drive

Si suppone di avere un normalissimo CD ATAPI/IDE connesso come terza unità EIDE, cioè /dev/hdc.

1 <ok>

Which IDE device is your CD-ROM drive connected to? If you're
not sure, we can try to scan for your drive.

Scan      Try to scan for your drive
/dev/hda  Primary IDE interface, drive 1
/dev/hdb  Primary IDE interface, drive 2
/dev/hdc  Secondary IDE interface, drive 1
/dev/hdd  Secondary IDE interface, drive 2
...

Si seleziona /dev/hdc portandoci sopra il cursore.

<ok>

La distribuzione Slackware su CD-ROM è predisposta in modo da permettere di effettuare una installazione minima su disco fisso, utilizzando per quanto possibile una preinstallazione fatta sul CD-ROM. Se possibile è meglio non utilizzare questa possibilità, installando quindi tutto quello che serve sul disco fisso.

You can run most of the system from the Slackware CD-ROM  if you're
short of drive space or if you just want to test Linux without going
through a complete installation. If you are new to this, PLEASE read
the help file before you make your selection. Which option would you
like?

Help      Read the installation method help file
slakware  Normal installation to hard drive
slaktest  Link /usr -> /cdrom/usr to run mostly from CD
custom    Install from a custom directory

slakware <ok>

Al termine è meglio tornare al menu generale.

Now that you've set up your source
location, would you like to go on
to the DISK SETS section and decide
which disk sets you wish to
install?

<no>

Selezione dei gruppi di pacchetti da installare

Attraverso questa fase, si identificano le categorie delle applicazioni Linux da installare nel disco fisso. Dal menu generale si seleziona l'opzione DISK SETS.

d <ok>

Viene proposto l'elenco seguente nel quale il gruppo A appare già selezionato.

Select an option below using the UP/DOWN keys and SPACE or ENTER.
Alternative keys may also be used '+', '-', and TAB.

        [ ] CUS  Also prompt for CUSTOM disk sets
        [X] A    Base Linux system
        [ ] AP   Various Applications that do not need X
        [ ] D    Program Development (C, C++, Lisp, Perl, etc.)
        [ ] E    GNU Emacs
        [ ] F    FAQ lists, HOWTO documentation
        [ ] K    Linux kernel source
        [ ] N    Networking (TCP/IP, UUCP, Mail, News)
        [ ] T    TeX typesetting software
        [ ] TCL  Tcl/Tk script languages
        [ ] X    XFree86 X Window System
        [ ] XAP  X Applications
        [ ] XD   X Server development kit
        [ ] XV   XView (OpenLook Window Manager, apps)
        [ ] Y    Games (that do not require X)

Per selezionare o deselezionare un gruppo, è possibile portarvi sopra il cursore e usare la barra spaziatrice.

Nell'elenco seguente è riportata la descrizione dei gruppi più importanti che vale la pena di installare.

A

Essenziale. Si tratta della serie di file più importante che deve essere installata necessariamente. La serie A da sola permette di ottenere un mini sistema completo anche se non molto ``divertente''.

AP

Importante. Si tratta della serie di programmi più importanti subito dopo quelli della serie A.

D

Importante. Si tratta degli strumenti di sviluppo. In pratica il compilatore C/C++ e altri linguaggi. La maggior parte del software per Linux (e per gli altri sistemi Unix), viene distribuito senza file binari eseguibili e quindi con i sorgenti da compilare.

K

Importante. Contiene i sorgenti del kernel di Linux. I sorgenti sono importantissimi per poter generare un kernel ottimizzato per la particolare configurazione del proprio sistema. Per poter compilare il kernel occorre ovviamente installare anche i gruppo D che contiene il compilatore.

N

Importante. Si tratta del software per la gestione della rete in generale. Linux è un sistema operativo molto potente per la gestione della rete. Sarebbe un peccato non sfruttare questa caratterstica.

TCL

Importante. Si tratta di un linguaggio interpretato (che quindi esegue degli script) molto importante. In particolare, i sorgenti del kernel di Linux contengono una versione della procedura di configurazione basata su questo linguaggio.

X

Importante. Si tratta del sistema grafico X Window System. Se non si intende votare il proprio computer a scopi specifici limitati (come per esempio un router o un firewall) vale veramente la pena di installarlo.

XAP

Utile. Si tratta di una serie di applicazioni che utilizzano l'ambiente grafico X Window System. Alcune di queste sono molto importanti.

I gruppi di applicazioni sono distribuiti nelle sottodirectory che seguono slakware e sono suddivise in gruppetti numerati in modo da essere contenibili all'interno di dischetti da 1440KB. Si hanno quindi nomi del tipo seguente.

A1
A2
A3
...
AP1
AP2
...
D1
D2
...

Una volta segnati i gruppi che si intendono installare si conferma con ok

<ok>

Contentuo dei set di dischi

Ogni sottodirectory dei cosiddetti disk set, ovvero dei gruppi di applicativi, contiene i file seguenti.

tagfile

Si trova solo nella prima delle sottodirectory di ogni gruppo e serve per segnare quali pacchetti sono considerati essenziali, quali sono opzionali e quali sono da saltare. Permette di dare dei suggerimenti in fase di installazione, quando si utilizza la modalità normale, e di automatizzare l'installazione custom. Si tratta quindi di un file da modificare in base alle proprie esigenze, nel caso si voglia utilizzare quest'ultima modalità di installazione (custom).

<!>   Naturalmente, è possibile modificare questo file solo se si trova su una unità di memorizzazione che lo consente. In pratica, non si può modificare quanto contenuto nel CD-ROM.

tagfile.org

È la versione originale di tagfile. Non deve essere modificato.

tagfile.pat

È una versione non commentata di tagfile. Non deve essere modificato.

maketag.ez

Si trova solo nella prima delle sottodirectory di ogni gruppo e si tratta di uno script che genera il tagfile per l'installazione in base alle selezioni effettuate attraverso lo script stesso. Viene utilizzato quando si seleziona un tipo di installazione a menu. Questo script in particolare viene utilizzato quando si usa la procedura di installazione per installare il sistema la prima volta.

maketag

È uno script analogo a maketag.ez con la differenza che viene utilizzato quando si usa la procedura di installazione per installare nuovi componenti in un sistema già funzionante.

disk*

Contiene le descrizioni dei pacchetti contenuti nelle sottodirectory. Queste descrizioni vengono visualizzate durante la fase di installazione.

*.tgz

Si tratta dei pacchetti veri e propri, compressi utilizzando tar e gzip. In particolare, per evitare il più possibile conflitti con una eventuale versione precedentemente installata di Linux, si trova in ognuno una directory aggiuntiva, install, contenente lo script doinst.sh. Questo ha lo scopo di sistemare le cose dopo l'esplosione del pacchetto e in particolare di ricreare i link simbolici. I pacchetti realizzati in questo modo, possono essere installati anche senza l'ausilio dello script di installazione setup, utilizzando invece installpkg ( installpkg). Questo naturalmente quando si ha già un sistema Linux funzionante.

Installazione dei pacchetti

Dopo la selezione dei gruppi si può passare alla installazione vera e propria: direttamente dopo la selezione o a partire dal menu generale selezionando l'opzione INSTALL.

i <ok>

Viene quindi visualizzato un altro menu che permette di scegliere il modo con cui si vogliono selezionare i vari pacchetti all'interno dei gruppi prescelti.

Now you must select which type of prompting you would like to
use while installing your software packages. If you're not
sure which mode to use, read the help file.

Which type of prompting would you like to use?

   NORMAL  Use the default tagfiles for verbose prompting
   MENU    Choose package subsystems from interactive menus
   CUSTOM  Use custom tagfiles in the package directories
   PATH    Use tagfiles in the subdirectories of a custom path
   EXPERT  Choose individual packages from interactive menus
   NONE    Use no tagfiles - install everything
   HELP    Read the prompt mode help file

La scelta più comoda, almeno per gli utenti normali, è MENU. Si porta il cursore sopra questa voce e si seleziona ok.

<ok>

Da questo punto in poi, prima di ogni gruppo, viene presentato un elenco di pacchetti da installare dove è possibile eseguire la selezione utilizzando la barra spaziatrice per mettere o togliere la selezione rappresentata da una lettera X. Per esempio, il menu del gruppo D appare come segue.

Please select the components you wish to install from series D.
Use the UP/DOWN keys to scroll through the list, and the SPACE
key to select the items you wish to install. Recommended
components have already been selected for you, but you may
unselect them if you wish. Press ENTER when you are done.

    [X] c         GNU C/C++ compiler and support utilities
    [ ] objc272   GNU Objective-C compiler (needs 'c')
    [ ] caout     GNU C/C++ for the old a.out format
    [ ] objcaout  GNU Objective-C for old a.out format
...

Configurazione del sistema

Al termine dell'installazione dei pacchetti prescelti, la procedura di installazione propone di iniziare la fase della configurazione del sistema. Si può passare alla fase di configurazione anche utilizzando l'opzione CONFIGURE del menu generale.

<!>   In caso di ripensamenti, la configurazione può essere ripetuta, saltando l'indicazione degli elementi che si ritiene siano configurati correttamente.

c <ok>

Now it's time to configure your Linux system. If this
is a new system, you must configure it now or it will
not boot correctly. Otherwise, you can back out to the
main menu if you're sure you want to skip this step. If
you've installed a new kernel image, it's important to
reconfigure your system so that you can install LILO
(the Linux loader) or create a bootdisk using the new
kernel. Do you want to move on to the CONFIGURE option?

<ok>

<!>   La sequenza delle richieste fatte dalla procedura dipende da cosa è stato installato.

Dischetto di avvio

La prima fase è quella di preparare un dischetto da usare per l'avviamento del sistema in caso di emergenza. In pratica viene utilizzato il kernel prescelto (o l'ultimo se si è tentato di installarne più di uno) copiandolo in un dischetto. Conviene rispondere affermativamente alla proposta della procedura di installazione. Si tratta quindi di togliere il dischetto di root dal drive e inserire un dischetto precedentemente inizializzato. Naturalmente, questa sostituzione di dischetti può essere effettuata solo se l'avvio del mini sistema Linux è stato fatto utilizzando un cosiddetto ram disk, che è, in effetti, la situazione normale a meno che non ci sia particolare penuria di memoria RAM.

It is HIGHLY recommended that you make a standard boot
disk for your Linux system at this time. Such a disk
can be very handy if LILO is ever improperly installed.
Since the boot disk will contain a kernel that is
independent of LILO and the kernel on your hard drive,
you'll still be able to use it to boot your system no
matter what you do to LILO or your hard drive kernel.
Would you like to make a standard boot disk?

<ok>

Il file del kernel ha la possibilità di memorizzare informazioni di configurazione per l'avvio del sistema. La prima di queste riguarda la possibilità di avviare inizialmente il filesystem in sola lettura in modo da poterne controllare l'integrità. Si tratta di un concetto nuovo per tutti i principianti, ma comune per i sistemi operativi multiutente: non è possibile fare un controllo di un disco mentre un altro utente, o anche solo un programma autonomo, possono accedere e modificarlo.

If you use a native Linux filesystem such as ext2 or
xiafs for your root partition, then you should select
YES in order to allow for safe filesystem checking. If
you use UMSDOS for your root partition, select NO or
you'll run into problems when your system boots. Do you
want this bootdisk to mount your root partition as
read-only?

<yes>

Now put a formatted floppy in your boot drive.
This will be made into your Linux boot disk. Use this to
boot Linux until LILO has been configured to boot from
the hard drive.

Any data on the target disk will be destroyed.

       YES creates the disk, NO aborts

<yes>

Modem

La fase successiva consiste nella configurazione del modem. In pratica si tratta di creare o modificare un link simbolico all'interno della directory contente i file di dispositivo: si vuole fare in modo che il link /dev/modem punti alla porta seriale cui è effettivamente connesso il modem.

This part of the configuration process will create a link in /dev
from your callout device (cua0, cua1, cua2, cua3) to /dev/modem.
You can change this link later if you put your modem on a different
port.

           Would you like to set up your modem?

<yes>

Please select the callout device which you would like
to use for your modem:

                cua0  com1: under DOS
                cua1  com2: under DOS
                cua2  com3: under DOS
                cua3  com4: under DOS

Per scegliere la porta seriale si sposta il cursore in modo da evidenziare il nome prescelto e quindi si conferma con ok.

<ok>

Mouse

La fase successiva consiste nella configurazione del mouse. In pratica si tratta anche qui di creare o modificare un link simbolico all'interno della directory contente i file di dispositivo: si vuole fare in modo che il link /dev/mouse punti correttamente al dispositivo cui è connesso.

This part of the configuration process will create a link in /dev
from your mouse device to /dev/mouse. You can change this link
later if the setting chosen does not work, or if you switch to a
different type of mouse.

           Would you like to set up your mouse?

<yes>

         These mouse types are supported:

1  Microsoft compatible serial mouse
2  C&T 82C710 or PS/2 style mouse (Auxiliary port)
3  Logitech Bus Mouse
4  ATI XL Bus Mouse
5  Microsoft Bus Mouse
6  Mouse Systems serial mouse
7  Logitech (MouseMan) serial mouse

Questo menu serve per determinare quale sia il tipo di interfaccia usata per connettere il mouse. Si suppone di avere un normalissimo mouse seriale a due tasti compatibile con lo standard Microsoft.

1 <yes>

Your mouse requires a serial port. Which one would you
like to use?

              ttyS0  com1: under DOS
              ttyS1  com2: under DOS
              ttyS2  com3: under DOS
              ttyS3  com4: under DOS

Per scegliere la porta seriale si deve evidenziarne il nome spostando il cursore e quindi selezionando ok.

<ok>

CD-ROM

La fase successiva consiste nella configurazione del CD-ROM. In pratica si tratta anche qui di creare o modificare un link simbolico all'interno della directory contente i file di dispositivo: si vuole fare in modo che il link /dev/cdrom punti correttamente al file di dispositivo cui è connesso.

Do you have a CD-ROM?

<yes>

What type of CD-ROM drive do you have?

1    Works with most ATAPI/IDE CD drives (dev/hd*)
2    SCSI (dev/scd0 or /dev/scd1)
3    Sony CDU31A/CDU33A (/dev/sonycd)
4    Sony 531/535 (/dev/cdu535)
5    Mitsumi (proprietary interface, not IDE) (/dev/mcd)
6    New Mitsumi (also not IDE) (/dev/mcdx0)
7    Sound Blaster Pro/Panasonic (/dev/sbpcd)
8    Aztech/Orchid/Okano/Wearnes (/dev/aztcd)
9    Phillips and some ProAudioSpectrum16 (/dev/cm206cd)
10   Goldstar R420 (/dev/gscd)
11   Optics Storage 8000 (/dev/optcd)
12   Sanyo CDR-H94 + ISP16 soundcard (/dev/sjcd)
scan Try to scan for your CD drive

Si immagina di avere un tipico CD-ROM ATAPI/IDE connesso come terzo disco EIDE.

1 <yes>

Which IDE device is your CD-ROM drive connected to? If you're
not sure, we can try to scan for your drive.

Scan      Try to scan for your drive
/dev/hda  Primary IDE interface, drive 1
/dev/hdb  Primary IDE interface, drive 2
/dev/hdc  Secondary IDE interface, drive 1
/dev/hdd  Secondary IDE interface, drive 2
...

Si seleziona /dev/hdc portandoci sopra il cursore.

<ok>

Caratteri video

La fase successiva consiste nella configurazione dei caratteri da utilizzare per il video. In linea di massima, conviene lasciare quelli predefiniti, di conseguenza è meglio saltare questa fase.

Would you like to try out some
custom screen fonts?

<no>

Velocità massima del modem

La fase successiva consiste nella definizione della velocità massima di funzionamento del modem. In pratica, la procedura di installazione si occupa di modificare i file di configurazione di alcuni programmi utilizzati con il modem, installati con questa distribuzione Linux.

Please select a modem speed. You may use setserial
later to make 38400 stand for a higher baud rate if
these speeds aren't fast enough.

                      38400
                      19200
                      9600
                      4800
                      2400
                      1200
                      300    Ouch!

Si sceglie la velocità massima (di solito si indica 38400) spostando il cursore in modo da evidenziare quella prescelta e quindi si seleziona ok.

<ok>

LILO

Inizia quindi una fase piuttosto delicata: quella della impostazione di LILO, ovvero del sistema che si occupa di eseguire l'avvio del kernel di Linux. In pratica, la procedura di installazione, esegue a sua volta liloconfig.

Per poter avviare il sistema, si deve modificare il Master Boot Record, o MBR, di conseguenza, se prima esisteva un altro sistema operativo che si avviava autonomamente, dopo la configurazione di LILO non si avvierà più, se non per mezzo di LILO stesso. Se però LILO viene configurato male, allora non si avvierà né Linux e nemmeno gli altri eventuali sistemi operativi.

In generale, se si dispone di una partizione con un sistema operativo Dos o MS-Windows95, può essere preferibile utilizzare loadlin per eseguire il l'avvio di Linux, magari attraverso una configurazione multipla di CONFIG.SYS e AUTOEXEC.BAT. Se si dispone di una partizione contenente OS/2, conviene utilizzare il Boot Manager di OS/2 e installare LILO, invece che a partire dall'MBR, all'inizio della partizione contenente Linux. Quando (finalmente) Linux è l'unico padrone del computer, si deve installare LILO in modo che questo controlli l'MBR.

LILO (the Linux Loader) allows you to boot Linux from your hard
drive. To install, you make a new LILO configuration file by
creating a new header and then adding at least one bootable
partition to the file. Once you've done this, you can select the
install option. Alternately, if you already have an /etc/lilo.conf,
you may reinstall using that. If you make a mistake, you can always
start over by choosing 'Begin'. Which option would you like?

      Begin    Start LILO configuration with a new LILO header
      Linux    Add a Linux partition to the LILO config file
      OS/2     Add an OS/2 partition to the LILO config file
      DOS      Add a DOS partition to the LILO config file
      Install  Install LILO
      Recycle  Reinstall LILO using the existing lilo.conf
      Skip     Skip LILO installation and exit this menu
      View     View your current /etc/lilo.conf
      Help     Read the Linux Loader HELP file

Quando si configura LILO, viene creato un file di configurazione: /etc/lilo.conf. Questo non viene utilizzato direttamente per eseguire l'avvio, ma serve come punto di partenza per installare il sistema di avvio.

b <ok>

Some systems might require extra parameters to be passed to the
kernel in order to boot. An example would be the hd=cyl,hds,secs
needed with some SCSI systems and some machines with IBM
motherboards. If you needed to pass parameters to the kernel when
you booted the Slackware bootkernel disk, you'll probably want to
enter the same ones here. Most systems won't require any extra
parameters. If you don't need any, just hit ENTER to continue.

A volte capita che il kernel che si utilizza, pur essendo corretto per le unità che si utilizzano, non sia in grado di riconoscerne alcune. In questi casi, deve essere informato degli indirizzi necessari ad individuarle. Per ottenere questo, si danno delle istruzioni al kernel al momento dell'avvio. In questo caso si deve informare LILO di queste eventuali istruzioni. Di solito, ciò non è necessario.

<ok>

So LILO can be installed to a variety of places: the master
boot record of your first hard drive, the superblock of your
root Linux partition (which could then be made the bootable
partition with fdisk), or a formatted floppy disk. If you're
using a boot system such as OS/2's Boot Manager, you should
use the Root selection. Please pick a target location:

   MBR     Use the Master Boot Record
   Root    Use superblock of the root Linux partition
   Floppy  Use a formatted floppy disk in the boot drive

Si procede con l'installazione sull'MBR.

m <ok>

<!>   Se ci sono dubbi, o se semplicemente si vuole poter avviare il sistema senza toccare l'MBR, si può installare il sistema di boot di LILO su un dischetto. Se non altro, permetterà di verificare che non ci siano incompatibilità di alcun genere. Per farlo occorre avere a disposizione un dischetto formattato.

So How long would you like LILO to wait for you to hit left-shift to
get a prompt after rebooting? If you let LILO time out, it will
boot the first OS in the configuration file by default.

    None     Don't wait at all - boot straight into the first OS
    5        5 seconds
    30       30 seconds
    Forever  Present a prompt and wait until a choice is made

Si opta per un tempo di attesa di 5 secondi.

5 <ok>

A questo punto occorre definire le partizioni di cui LILO deve occuparsi. Per questo ritorna il menu precedente dal quale si deve selezionare l'opzione Lilo.

l <ok>

Appare l'elenco delle partizioni Linux native.

These are your Linux partitions:

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda3          149      149     1024   441504   83  Linux native

Which one would you like LILO to boot?

/dev/hda3 <ok>

Viene quindi richiesto di indicare il nome da dare a questa partizione per poterne selezionare l'avvio. Fortunatamente, non è importante la differenza tra maiuscole e minuscole.

So Now you must select a short, unique name for this
partition. You'll use this name if you specify a
partition to boot at the LILO prompt. 'Linux' might not
be a bad choice. THIS MUST BE A SINGLE WORD.

linux <ok>

A questo punto ritorna il menu. Per poter avviare con l'aiuto di LILO il Dos installato nella prima partizione si può procedere come segue.

d <ok>

These are possibly DOS partitions. They will be treated
as such if you install them using this menu.

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       82    41296+   6  DOS 16-bit >=32M

Which one would you like LILO to boot?

/dev/hda1 <ok>

So Now you must select a short, unique name for this
partition. You'll use this name if you specify a
partition to boot at the LILO prompt. 'DOS' might not
be a bad choice. THIS MUST BE A SINGLE WORD.

dos <ok>

Prima di registrare queste informazioni modificano l'MBR, è possibile dare una occhiata al file /etc/lilo.conf. Si seleziona quindi l'opzione View del menu.

v <ok>

# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/hda
#compact        # faster, but won't work on all systems.
delay = 50
vga = normal    # force sane state
# ramdisk = 0     # paranoia setting
# End LILO global section
# Linux bootable partition config begins
image = /vmlinuz
  root = /dev/hdb1
  label = linux
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Linux bootable partition config ends
# DOS bootable partition config begins
other = /dev/hda1
  label = dos
  table = /dev/hda
# DOS bootable partition config ends

Giunti a questo punto, se tutto sembra in ordine, è possibile modificare l'MBR selezionando l'opzione Install del menu.

i <ok>

<!>   Se in seguito si vuole utilizzare l'utility liloconfig per ripristinare il sistema di boot, si possono riciclare le informazioni contenute nel vecchio file di configurazione: /etc/lilo.conf. In tal caso si inizierà con la selezione dell'opzione Recicle senza utilizzare l'opzione Begin che invece serve a creare un file di configurazione vuoto.

Rete

Si passa quindi alla configurazione della rete. Vale la pena di configurarla anche se di fatto il computer risulta isolato. Tutto quanto risulterà più logico. Si suppone di voler chiamare il proprio computer pippo, con un indirizzo IP 192.168.1.2, di avere una rete locale in cui il nome di dominio è zigozago.dg, e una maschera di rete 255.255.255.0.

Would you like to configure your network?

<yes>

Now we will attempt to configure your mail and TCP/IP. This
process probably won't work on all possible network
configurations, but should give you a good start. You will be
able to reconfigure your system at any time by typing:

   netconfig

Come informa la procedura di installazione, per configurare la rete viene utilizzato il programma netconfig.

<ok>

First, we'll need the name you'd like to give your host. Only
the base hostname is needed right now. (not the domain)

Enter hostname:

pippo <ok>

Now, we need the domain name. Do not supply a leading '.'

Enter domain name for pippo:

zigozago.dg <ok>

If you only plan to use TCP/IP through loopback, then your
IP address will be 127.0.0.1 and we can skip a lot of the
following questions.

Do you plan to ONLY use loopback?

Non è questa l'intenzione. L'indirizzo di loopback verrà utilizzato comunque anche se si aggiunge un indirizzo più verosimile.

n <ok>

Enter your IP address for the local machine. Example:
111.112.113.114
Enter IP address for pippo (aaa.bbb.ccc.ddd):

192.168.1.2 <ok>

Enter your gateway address, such as 111.112.113.1

If you don't have a gateway on your network, you can enter
your own IP address.

Enter gateway address (aaa.bbb.ccc.ddd):

In una piccola rete locale è normale che non ci sia alcun computer che funga da router (gateway). In tal caso si può inserire il proprio indirizzo.

192.168.1.2 <ok>

Enter your netmask. This will generally look something
like this: 255.255.255.0
Enter netmask (aaa.bbb.ccc.ddd):

255.255.255.0 <ok>

Will you be accessing a nameserver?

Il name server è un computer nella rete che si occupa di tradurre i nomi dei computer in indirizzi IP. Raramente si utilizza un computer con tale funzione in una piccola rete locale.

<no>

Your networking software has now been configured.
IMPORTANT: Remember that most precompiled Linux kernels
do not have network drivers compiled into them, since
compiling them all in results in kernels that are too
large to boot. If you need a driver that is not present
in your kernel, either recompile the kernel to include
the necessary driver or load the driver as a module --
see the modules directory on the Slackware CD-ROM.

<ok>

Programma di gestione del mouse

Per la gestione del mouse durante l'utilizzo dello schermo a caratteri, cioè senza il supporto di X Window System, si può utilizzare il programma gpm che in tal caso deve essere avviato automaticamente utilizzando un script che è parte del sistema di avvio (init) di Linux.

gpm is a program that allows you to do cut and paste
on the virtual consoles using a mouse. If you choose to
have it run at boot time, the line:

    gpm -t

will be added to the end of your /etc/rc.d/rc.local.

Running selection with a bus mouse can cause problems with
XFree86.  If XFree86 refuses to start and complains that it
cannot open the mouse then you might want to comment the line
out of /etc/rc.d/rc.local.  Would you like to add

    gpm -t

to /etc/rc.d/rc.local so that selection will load at boot
time?

<yes>

Sendmail

Il sistema di gestione della posta deve essere configurato a seconda del tipo di comunicazione che si intende attuare. Si hanno a disposizione tre possibilità:

La procedura di installazione si occupa di definire in linea di massima il contenuto del file di configurazione /etc/sendmail.cf, a seconda della scelta effettuata.

Sendmail requires a configuration file (/etc/sendmail.cf). Three
versions are provided: TCP/IP with a nameserver, TCP/IP without a
nameserver, and UUCP. If none of these proves suitable, you can
make your own later. (look in /usr/src/sendmail). It won't hurt
to try one of these, though.

   SMTP+BIND  Connected to the net with nameserver access
   SMTP       Connected to a network with no nameserver
   UUCP       Use UUCP for mail transmission

Si sceglie la modalità preferita con l'aiuto del cursore e quindi si conferma con un ok.

<ok>

Fuso orario

Per la determinazione dell'appartenenza a un fuso orario, viene proposto un elenco lunghissimo. Per identificare i paesi sono state usate le capitali.

Select one of the following
timezones:

  ...
  Europe/Prague
  Europe/Riga
  Europe/Rome
  Europe/San_Marino
  Europe/Sarajevo
  Europe/Simferopol
  Europe/Skopje
  ...

Come al solito si sposta il cursore, in questo caso su Europe/Rome e quindi si seleziona ok.

<ok>

Al termine riappare il menu generale della procedura di installazione, dal quale si può finalmente selezionare l'uscita. L'installazione è (o dovrebbe essere) terminata.

# shutdown -h now [Invio]

4.7 Configurazione di un sistema già funzionante

Una volta installato e avviato Linux con successo, si può usare ancora la procedura di installazione per riconfigurare alcuni elementi o per elimiare o aggiungere dei componenti.

# setup [Invio]

Il menu generale che viene visualizzato è un po' diverso da quello della prima installazione.

HELP       Read the Slackware Setup HELP file
KEYMAP     Remap your keyboard
MAKE TAGS  Tagfile customization program
TARGET     Select target directory [now: /]
SOURCE     Select source media
DISK SETS  Decide which disk sets you wish to install
INSTALL    Install selected disk sets
CONFIGURE  Reconfigure your Linux system
PKGTOOL    Install or remove packages with Pkgtool
EXIT       Exit Slackware Linux Setup

Si notano in particolare alcune differenze.

Configurazione della tastiera

L'impostazione della mappatura della tastiera poteva essere fatta durante la prima installazione, ma può comunque essere fatta o ripetuta successivamente. L'opzione KEYMAP permette di configurare il sistema in tal senso.

k <ok>

You may select one of the following keyboard maps.
You may use the UP/DOWN arrow keys to scroll through
the whole list of choices.

                ...
                gr
                hebrew
                it-ibm
                it
                no-latin1
                no
                pl
                ru
                ru1
                ...

L'elenco è molto lungo. Si deve scorrere utilizzando i tasti [freccia su] e [freccia giù] fino a trovare la sigla desiderata. La mappa it dovrebbe andare bene. Al termine si conferma con un ok.

<ok>

Subito dopo viene proposto di verificare la correttezza della mappa utilizzata.

TEST YOUR NEW KEYBOARD MAP (it)

Please test your new keyboard map by typing in some characters.  If you're
satisfied with the new map and would like it loaded at boot time, enter 'y'
on a line by itself.  If you don't like the new map and want to choose a
different one, then enter 'n' on a line by itself.

Dopo qualche tentativo per verificare se tutto funziona come previsto, basta inserire una lettera y all'inizio di una riga e premere [Invio].

[Invio]

y [Invio]

Per fare in modo che la tastiera risulti sempre funzionante in questo modo, occorre fare sì che la procedura di inizializzazione di Linux (init), esegua il programma loadkeys. In pratica, questa richiesta viene inserita in uno script che fa parte di quelli che vengono eseguiti automaticamente all'atto dell'avviamento del sistema. Questo script è /etc/rc.d/rc.keymap.

The 'it' keyboard map will now be loaded
automatically at boot time by your
/etc/rc.d/rc.keymap script.

<ok>

Riconfigurazione generale del sistema

L'opzione CONFIGURE permette di ripetere la configurazione del sistema, così come era stata fatta durante la prima installazione. Non è necessario riconfigurare tutto: quando si incontra una parte che non si vuole modificare, basta rispondere con un no o con un cancel a seconda dei casi.

L'inconveniente di questo sistema è che funziona a senso unico, e non è possibile rinunciare ad applicare le modifiche richieste: se si sbaglia, si ricomincia da capo.

Manutenzione dei pacchetti installati

Il sistema di installazione della distribuzione Slackware tiene traccia dei pacchetti installati e della loro collocazione attraverso una serie di file collocati all'interno della directory /var/log/packages. Questo permette l'eliminazione (disinstallazione) di un pacchetto senza interferire con gli altri. Il meccanismo funziona solo se tutto ciò che viene installato passa per questo metodo di registrazione della collocazione.

L'opzione PKGTOOL si occupa di avviare la procedura di installazione/disinstallazione dei pacchetti applicativi.

p <ok>

Which option would you like?

  Current  Install packages from the current directory
  Other    Install packages from some other directory
  Floppy   Install packages from floppy disks
  Remove   Remove packages that are currently installed
  View     View the list of files contained in a package
  Exit     Exit Pkgtool

Current

La prima opzione permette di installare, a partire dalla directory corrente, uno o più pacchetti realizzati secondo lo stile Slackware: .tgz, cioè archiviati attraverso tar e gzip, con uno script (/install/doinst.sh) per la ricostruzione dei link simbolici. In generale, dovrebbe essere in grado di installare anche pacchetti che non dispongono di questo script.

Dopo aver selezionato questa opzione, vengono visualizzati, uno a uno, i file con estensione .tgz e per ognuno viene richiesta la conferma dell'installazione.

L'installazione avviene a partire dalla directory /, cioè dalla radice.

Other

Permette di eseguire lo stesso tipo di installazione visto per la prima opzione, con la differenza che viene richiesto il percorso della directory contenente i pacchetti tgz.

Floppy

Permette di eseguire lo stesso tipo di installazione visto per la prima opzione, con la differenza che viene richiesto il nome di un drive per dischetti dal quale effettuare l'installazione dei pacchetti tgz.

Remove

Permette di rimuovere uno o più pacchetti registrati con questo sistema di installazione. Per individuare i pacchetti si utilizza il nome e una breve descrizione. Di solito, conviene utilizzare prima l'opzione View per sapere meglio di cosa si tratta.

View

Permette di visualizzare la distribuzione dei pacchetti installati. È molto utile utilizzare questa opzione prima di cancellare un pacchetto.

4.8 Aggiornamento di una distribuzione Linux Slackware

Quando si vuole installare una nuova versione di Linux sul proprio computer senza perdere i dati esistenti si pongono tre scelte fondamentali:

Copia del vecchio sistema

Prima di procedere con qualunque tipo di aggiornamento, è assolutamente necessario inziare con una copia di tutti i dati. Questi dati, dovranno poi essere facilmente accessibili. Lo sono per esempio quando risiedono in un'altra partizione o in un altro disco (anche rimovibile se si dispone di un kernel in grado di accedervi). Un solo backup su nastro è insufficiente.

Salvataggio del vecchio kernel

Vale la pena di salvare anche il vecchio kernel prima di procedere con un aggiornamento del sistema che potrebbe modificarlo. Si tratta di salvare il file di immagine del kernel /vmlinuz oppure di qualunque altro file utilizzato per questo scopo. Oltre a questo, per essere sicuri di avere la possibilità di riavviare il sistema utilizzando il vecchio kernel è necessario preparare un dischetto di avviamento con questo vecchio file.

# cp /vmlinuz /dev/fd0 [Invio]

Sovrascrivere

La scelta di installare i nuovi pacchetti sopra una installazione preesistente implica la sicurezza di lasciare in giro file che non servono più. Si può attuare questo tipo di sistema solo se si rinuncia a installare La maggior parte dei pacchetti del gruppo A. Se lo si desidera, questi pacchetti potranno essere installati manualmente decompattando inizialmente gli archivi in una directory temporanea.

Disinstallare/reinstallare

Se quello che si desidera è solo di sostituire alcune parti del vecchio sistema, è possibile disinstallare le parti vecchie utilizzando l'utility pkgtool e poi reinstallare quelle nuove utilizzando installpkg. Non è il caso di utilizzare setup. Naturalmente, si può fare questo solo se la vecchia installazione era stata fatta utilizzando una distribuzione Slackware che aveva registrato le informazioni necessarie alla disinstallazione all'interno di /var/log/packages.

Rifare tutto da capo

È la scelta più impegnativa che però da la garanzia di un risultato pulito. Per iniziare occorre preparare i soliti dischetti di boot e di root necessari per una nuova installazione di Linux. La scelta delle immagini dei dischetti dovrà essere fatta tenendo conto della necessità di accedere al disco fisso all'interno del quale sarà reinstallato Linux e alla fonte della distribuzione di Linux che si intende utilizzare. Dopo aver avviato il sistema con i dischetti preparati poco prima, si avvia il setup e si specifica l'unità di destinazione indicando il disco o la partizione Linux che si intende ripulire. Si procederà con la reinizializzazione.

Dopo l'inizializzazione dell'unità di destinazione si procede con la normale installazione di Linux. Se si disponeva già di un kernel aggiornato, non occorre installarlo di nuovo, basterà il dischetto preparato per l'avviamento del sistema, e il file immagine che si trova nelle copie fatte poco prima. Ammesso che l'installazione sia stata completata con successo, si riesce ad avviare il nuovo sistema che però non ha più nulla delle precedenti configurazioni e nemmeno dei dati archiviati. Con pazienza si deve procedere a ripristinare tutto quello che serve. Quello che segue è un elenco molto approssimativo che serve solo come esempio per comprendere la vastità del problema.

/etc/

La directory /etc contiene i file di configurazione e gli script più importanti. I file di questa directory devono essere confrontati con quelli vecchi e modificati in modo da rispecchiare la configurazione precedente, almeno per quanto ancora si desidera mantenere del passato.

<!>   Questa fase è delicatissima.

/home/

Tutte le sottodirectory di /home devono essere ripristinate in modo da permettere agli utenti di ritrovare i loro file ed in particolare le loro particolari configurazioni.

/root/

È la directory home dell'utente root e deve essere ripristinata, sia per riavere le configurazioni precedenti che per ritrovare eventuali altri dati.

/usr/

Al di sotto di questa directory, oltre a gran parte del sistema Linux normale, si trovano tutti gli applicativi aggiunti. È abbastanza difficile ricreare le stesse condizioni iniziali a meno di non reinstallare quegli applicativi esterni.

/var/lib/

Anche questa directory viene utilizzata dai programmi applicativi estranei alle distribuzioni di Linux. Per scoprire cosa manca basta utilizzare questi applicativi che molto probabilmente segnaleranno la mancanza di qualcosa.

/var/spool/

Al di sotto di questa directory, si attaccano altre varie directory di spool, in particolare quelle delle stampanti. È necessario ricreare questa struttura, eventualmente controllando il contenuto del file /etc/printcap all'interno del quale sono descritti queste directory di spool per la stampa.

Altre directory

Se nel vecchio sistema si utilizzavano file collocati al di fuori della struttura tradizionale, questi file, insieme alla loro struttura di directory, devono essere ripristinati.

Dopo il ripristino delle configurazioni più importanti e dei dati del vecchio sistema, ci si può occupare di quelle configurazioni che vale la pena di rinnovare. La più importante è quella del sistema grafico XFree86. Vale la pena quindi di procedere con xf86config e rifare questa configurazione. Se la struttura del gestore di finestre che si utillizza (per esempio fvwm) è cambiata notevolmente è molto probabile che ogni utente debba modificare il file di configurazione collocati nella propria directory home.

4.9 Riepilogo degli strumenti di installazione Slackware

Gli strumenti forniti con la distribuzione Slackware per la gestione dei pacchetti installati e per la configurazione del sistema, sono generalmente realizzati in forma di script di shell.

# explodepkg

explodepkg <pacchetto-applicativo>...

explodepkg gestisce la decompressione e dearchiviazione di file tar compressi con gzip (.tar.gz o .tgz) nella directory corrente.

# installpkg

installpkg [<opzioni>] <pacchetto>

installpkg gestisce l'installazione dei pacchetti applicativi. Consente di installare i pacchetti di software in formato tar.gz (.tgz). Perché l'installazione avvenga correttamente, occorre che i file siano stati memorizzati con l'informazione delle directory a partire da quella principale, la radice, perché installpkg installa proprio a partire dalla directory radice. installpkg consente anche di installare un ramo di directory che verrà copiato così come'è a partire dalla radice. Il vantaggio di utilizzare installpkg sta nel fatto che è possibile visualizzare o disinstallare l'applicazione attraverso pkgtool ( pkgtool).

Opzioni

-warn

Non effettua alcuna installazione, mostra invece i file e le directory che verrebbero creati.

-r

Installa quanto contenuto a partire dalla directory corrente. Il nome del pacchetto servirà solo per identificare l'applicazione quando si utilizza pkgtool ( pkgtool).

-m

Crea un file .tgz utilizzando quanto contenuto a partire dalla directory corrente.

Esempi

$ installpkg -warn netscape-v301-export.i486-unknown-linux-elf.tar.gz

Mostra i file e le directory che verrebbero creati installando così il pacchetto Netscape.

# installpkg -r Netscape3.01

Installa quanto contenuto a partire dalla directory corrente utilizzando come nome per identificare il pacchetto Netscape3.01.

# makepkg

makepkg <pacchetto-applicativo>

makepkg gestisce la creazione di file compressi .tgz (tar-gzip) secondo lo standard dei pacchetti applicativi della distribuzione Slackware. Viene creato un archivio compresso tar-gzip con lo stesso nome utilizzato come argomento e con estensione .tgz, a partire dalla directory corrente. I link simbolici vengono convertiti in codice script che viene aggiunto al file install/doinst.sh (che se necessario viene creato e aggiunto all'archivio). I pacchetti così realizzati, sono compatibili con le altre utility di installazione delle distribuzioni Slackware.

# pkgtool

pkgtool [<opzioni>]

pkgtool è il sistema standard di gestione dei pacchetti installati della distribuzione di Slackware. Consente di installare nuovi pacchetti, di disinstallare e visualizzare la collocazione dei pacchetti installati. Di solito non viene utilizzata alcuna opzione.

# removepkg

removepkg [-warn] <nome-del-pacchetto>

removepkg gestisce la disinstallazione dei pacchetti applicativi installati secondo lo standard della distribuzione Slackware. Consente di eliminare i pacchetti applicativi precedentemente installati attraverso le utility della distribuzione Slackware: setup e installpkg. Se viene utilizzata l'opzione -warn, l'operazione viene soltanto simulata.

# setup

setup

setup è il sistema standard di installazione e configurazione essenziale della distribuzione Slackware.

/var/log/disk_contents/*

I file contenuti in /var/log/disk_contents/ contengono ognuno delle brevi descrizioni dei set di dischi di installazione della distribuzione Slackware di Linux.

/var/log/packages/*

I file contenuti in /var/log/packages/ contengono ognuno le informazioni necessarie per conoscere la distribuzione del pacchetto applicativo che ha il loro nome, oltre a una breve descrizione del pacchetto in questione. L'aggiornamento di questi file è importante per permetterne in seguito la disinstallazione attraverso removepkg o pkgtool. In tal senso è, opportuno utilizzare installpkg, quando possibile, anche per l'installazione di pacchetti applicativi che non fanno parte della distribuzione Slackware normale.

/var/log/scripts/*

È una raccolta di spezzoni di file script, ognuno dei quali si riferisce a uno dei pacchetti applicativi installati attraverso gli strumenti di installazione della distribuzione Slackware. Questi spezzoni di script servono per ricostruire i link simbolici utilizzati dai pacchetti applicativi stessi.

4.10 Un sistema per gestire le installazioni tradizionali

Quando si installa un programma distribuito in forma originale, quando cioè lo si deve prima compilare e poi installare nel modo previsto dall'autore, di solito non si ha la possibilità di disinstallarlo in un secondo momento.

Gli strumenti forniti dalle distribuzioni Slackware permettono di installare e disinstallare in modo spartano i programmi, purché siano rispettate certe condizioni. Quando si installa un programma che prima deve essere compilato e poi installato attraverso uno script o un makefile fatti dall'autore, non è possibile fare in modo che il meccanismo dell'installazione Slackware ne diventi consapevole.

Per fare in modo che il programma installato possa essere disinstallabile attraverso gli strumenti Slackware, occorre creare per lui un file all'interno di /var/log/packages/ contenente l'elenco dei file che lo compongono.

SlackwareTrace

In questa sezione viene mostrato uno script da utilizzare per avviare le operazioni di installazione di un programma distribuito in forma normale, ovvero non nel modo previsto dalla distribuzione Slackware. Quando lo script viene avviato, memorizza la situazione del filesystem globale, quindi permette all'utente di svolgere le operazioni necessarie a compiere l'installazione e al termine confronta la nuova situazione del filesystem con quella precedente per determinare quali file siano stati aggiunti. In questo modo, viene poi aggiunta la descrizione di un nuovo pacchetto all'interno di /var/log/packages/. Lo script può essere utilizzato solo dall'utente root ed è opportuno che durante il suo funzionamento non siano in corso altre attività, soprattutto, nessun'altra applicazione deve creare dei file.

#!/bin/bash
#======================================================================
# SlackwareTrace
#======================================================================

#======================================================================
# Variabili.
#======================================================================

    #------------------------------------------------------------------
    # Nome per un file temporaneo utilizzato per ricevere le risposte
    # all'esecuzione del comando ``dialog --inputbox''.
    #------------------------------------------------------------------
    RISPOSTA="/tmp/risposta"
    #------------------------------------------------------------------
    # Nome per un file temporaneo contenente l'elenco dei file presenti
    # nel filesystem PRIMA.
    #------------------------------------------------------------------
    ELENCO_FILE_PRIMA="/tmp/elenco_PRIMA"
    #------------------------------------------------------------------
    # Nome per un file temporaneo contenente l'elenco dei file presenti
    # nel filesystem DOPO.
    #------------------------------------------------------------------
    ELENCO_FILE_DOPO="/tmp/elenco_DOPO"
    #------------------------------------------------------------------
    # Nome per un file temporaneo contenente l'elenco dei file aggiunti
    # nel filesystem dopo le operazioni di installazione.
    #------------------------------------------------------------------
    ELENCO_FILE_AGGIUNTI="/tmp/elenco_AGGIUNTI"
    #------------------------------------------------------------------
    # Variabile utilizzata per ricevere i comandi.
    #------------------------------------------------------------------
    COMANDO=""
    #------------------------------------------------------------------
    # Variabile utilizzata per ricevere il nome del pacchetto.
    #------------------------------------------------------------------
    PACCHETTO=""
    #------------------------------------------------------------------
    # Variabile utilizzata per ricevere la descrizione del pacchetto.
    #------------------------------------------------------------------
    DESCRIZIONE=""
    #------------------------------------------------------------------
    # Variabile utilizzata per salvare il prompt.
    #------------------------------------------------------------------
    SALVA_PROMPT=$PS1

#======================================================================
# Inizio.
#======================================================================

    #------------------------------------------------------------------
    # Verifica la quantità di argomenti.
    #------------------------------------------------------------------
    if [ $# != 0 ]
    then
        echo "Questo script è completamente interattivo e quindi non \
utilizza alcun argomento."
        exit 1
    fi
    #------------------------------------------------------------------
    # Verifica che l'utente sia 'root'.
    #------------------------------------------------------------------
    if [ $UID != 0 ]
    then
        echo "Questo script può essere utilizzato solo dall'utente \
'root'."
        exit 1
    fi
    #------------------------------------------------------------------
    # Salva la situazione del filesystem PRIMA.
    # Sono esclusi i percorsi ``/tmp'', ``/proc'' e ``/mnt''.
    #------------------------------------------------------------------
    reset
    echo "---------------------------------------------------"
    echo "È in corso la scansione del filesystem per "
    echo "determinare la situazione iniziale dei file esistenti."
    echo ""
    echo "Attendere prego..."
    echo "---------------------------------------------------"
    find \
/ -path "/proc" -prune -o -path "/tmp" -prune -o -path "/mnt" -prune \
-o -print | sort > $ELENCO_FILE_PRIMA
    #------------------------------------------------------------------
    # Avvia una subshell per l'esecuzione dei comandi necessari
    # all'installazione. Si comincia dall'avvisare l'utente.
    #------------------------------------------------------------------
    reset
    dialog --msgbox \
"Attenzione! Sta per essere avviata una subshell per\
\n\
l'esecuzione dei comandi necessari all'installazione\
\n\
del software.\
\n\
Di solito si tratta di eseguire qualcosa di molto simile\
\n\
a 'make install'.\
\n\
\n\
Al termine si dovrà tornare allo script utilizzando\
\n\
il comando exit." \
18 70
    #------------------------------------------------------------------
    # Modifica il prompt.
    #------------------------------------------------------------------
    PS1=\
"Eseguire i comandi necessari a compiere l'installazione \
quindi utilizzare il comando exit per tornare allo script.\
\n\
$0>"
    export PS1
    #------------------------------------------------------------------
    # Avvia la subshell.
    #------------------------------------------------------------------
    /bin/sh
    #------------------------------------------------------------------
    # Ripristina il prompt.
    #------------------------------------------------------------------
    PS1=$SALVA_PROMPT
    export PS1
    #------------------------------------------------------------------
    # Salva la situazione del filesystem DOPO.
    # Sono esclusi i percorsi ``/tmp'', ``/proc'' e ``/mnt''.
    #------------------------------------------------------------------
    reset
    echo "---------------------------------------------------"
    echo "È in corso la scansione del filesystem per "
    echo "determinare la nuova situazione dei file esistenti."
    echo ""
    echo "Attendere prego..."
    echo "---------------------------------------------------"
    find \
/ -path "/proc" -prune -o -path "/tmp" -prune -o -path "/mnt" -prune \
-print | sort > $ELENCO_FILE_DOPO
    #------------------------------------------------------------------
    # Confronta i due file ed emette solo le righe del secondo elenco
    # che non appaiono nel primo.
    # Salva il risultato in un altro file temporaneo.
    #------------------------------------------------------------------
    comm -13 \
$ELENCO_FILE_PRIMA $ELENCO_FILE_DOPO > $ELENCO_FILE_AGGIUNTI
    #------------------------------------------------------------------
    # Verifica che il file generato non sia vuoto.
    #------------------------------------------------------------------
    if [ -z "`cat $ELENCO_FILE_AGGIUNTI`" ]
    then
        #--------------------------------------------------------------
        # Non ha trovato alcun file in più rispetto alla
        # situazione precedente. Lo script avvisa e termina.
        #--------------------------------------------------------------
        reset
        dialog --msgbox \
"Non è stato aggiunto alcun file.\
\n\
Non verrà fatta alcuna registrazione di questa installazione." \
7 70
        exit 2
    fi
    #------------------------------------------------------------------
    # Richiede il nome del pacchetto.
    #------------------------------------------------------------------
    while [ 0 ]                                               # FOREVER
    do
        reset
        dialog --inputbox \
"Inserisci il nome da usare per identificare questo pacchetto.\
\n\
Per seguire la convenzione usata dalla procedura di installazione\
\n\
Slackware, si possono usare solo otto caratteri.\
\n\
Il nome del pacchetto servirà per creare un file contenere le\
\n\
informazioni sul pacchetto, di conseguenza, occorre rispettare le\
\n\
regole per i nomi dei file.\
\n\
\n\
\n\
<Ok> prosegue,\
\n\
<Cancel> ripete la richiesta." \
17 70 2> $RISPOSTA
        #--------------------------------------------------------------
        # Controlla la risposta data dall'utente.
        #--------------------------------------------------------------
        if [ $? = 0 ]
        then
            #----------------------------------------------------------
            # La risposta è stata un OK e quindi prosegue.
            #----------------------------------------------------------
            PACCHETTO=`cat $RISPOSTA`
        else
            #----------------------------------------------------------
            # La risposta è stata un CANCEL e quindi ripete il loop.
            #----------------------------------------------------------
            continue
        fi
        #--------------------------------------------------------------
        # Controlla che il nome non sia già utilizzato.
        #--------------------------------------------------------------
        if [ -e "/var/log/packages/$PACCHETTO" ]
        then
            #----------------------------------------------------------
            # Il nome esiste già. Ripete il loop.
            #----------------------------------------------------------
            reset
            dialog --msgbox \
"Attenzione! il nome $PACCHETTO è già stato usato.\
\n\
Se ne deve inserire un altro."\
6 70
            continue
        fi
        #--------------------------------------------------------------
        # Controlla che il nome sia accettabile tentando di creare
        # un file con quello.
        #--------------------------------------------------------------
        rm "/tmp/$PACCHETTO"
        echo "prova" > "/tmp/$PACCHETTO"
        #--------------------------------------------------------------
        # Se è riuscito a a creare il file, tutto dovrebbe
        # essere in ordine.
        #--------------------------------------------------------------
        if [ -e "/tmp/$PACCHETTO" ]
        then
            #----------------------------------------------------------
            # Il nome è valido.
            #----------------------------------------------------------
            echo "ok" > /dev/null
        else
            #----------------------------------------------------------
            # Il nome non è valido. Ripete il loop.
            #----------------------------------------------------------
            reset
            dialog --msgbox \
"Attenzione! il nome $PACCHETTO non è valido.\
\n\
Se ne deve inserire un altro." \
7 70
            continue
        fi
        #--------------------------------------------------------------
        # Se sono stati superati tutti gli ostacoli, il loop viene
        # interrotto.
        #--------------------------------------------------------------
        break
    done
    #------------------------------------------------------------------
    # Finalmente è stato inserito il nome del pacchetto.
    # Si passa ora alla sua descrizione.
    #------------------------------------------------------------------
    while [ 0 ]                                               # FOREVER
    do
        reset
        dialog --inputbox \
"Inserisci una breve descrizione del pacchetto.\
\n\
\n\
\n\
<Ok> prosegue,\
\n\
<Cancel> ripete la richiesta." \
12 70 2> $RISPOSTA
        #--------------------------------------------------------------
        # Controlla la risposta data dall'utente.
        #--------------------------------------------------------------
        if [ $? = 0 ]
        then
            #----------------------------------------------------------
            # La risposta è stata un OK e quindi prosegue.
            #----------------------------------------------------------
            DESCRIZIONE=`cat $RISPOSTA`
        else
            #----------------------------------------------------------
            # La risposta è stata un CANCEL e quindi ripete il loop.
            #----------------------------------------------------------
            continue
        fi
        #--------------------------------------------------------------
        # Se sono stati superati tutti gli ostacoli, il loop viene
        # interrotto.
        #--------------------------------------------------------------
        break
    done
    #------------------------------------------------------------------
    # Scrive il file del pacchetto.
    #------------------------------------------------------------------
    echo "PACKAGE NAME:     $PACCHETTO" > /var/log/packages/$PACCHETTO
    echo "COMPRESSED PACKAGE SIZE:" >> /var/log/packages/$PACCHETTO
    echo "UNCOMPRESSED PACKAGE SIZE:" >> /var/log/packages/$PACCHETTO
    echo "PACKAGE LOCATION:" >> /var/log/packages/$PACCHETTO
    echo "PACKAGE DESCRIPTION:" >> /var/log/packages/$PACCHETTO
    echo "$PACCHETTO: $DESCRIZIONE" >> /var/log/packages/$PACCHETTO
    echo "$PACCHETTO:" >> /var/log/packages/$PACCHETTO
    echo "$PACCHETTO:" >> /var/log/packages/$PACCHETTO
    echo "$PACCHETTO:" >> /var/log/packages/$PACCHETTO
    echo "$PACCHETTO:" >> /var/log/packages/$PACCHETTO
    echo "$PACCHETTO:" >> /var/log/packages/$PACCHETTO
    echo "$PACCHETTO:" >> /var/log/packages/$PACCHETTO
    echo "FILE LIST:" >> /var/log/packages/$PACCHETTO
    cat $ELENCO_FILE_AGGIUNTI >> /var/log/packages/$PACCHETTO
    #------------------------------------------------------------------
    # Avvisa l'utente della conclusione dell'operazione.
    #------------------------------------------------------------------
    reset
    dialog --msgbox \
"La registrazione del pacchetto $PACCHETTO è terminata." \
5 70

#======================================================================
# Fine.
#======================================================================

Prima di poter eseguire uno script è importante attribuirgli i permessi di esecuzione necessari.

chmod +x <nome-del-file>

 

1997.10.26 - Scritto da Daniele Giacomini   daniele@calion.com   (vedi copyright: Appunti Linux).


Capitolo successivo Capitolo precedente Indice