Repository 32bit  Forum
Repository 64bit  Wiki

Current for Dummies: differenze tra le versioni

Da Slacky.eu.
 
Riga 332: Riga 332:
----
----
Autore: [[Utente:Conraid|Conraid]]
+
Autore: [[Utente:Conraid|Conraid]] 19:42, 10 Dic 2007 (CET)

Versione delle 19:42, 10 dic 2007

Questo mini Howto spiega come aggiornare una versione della Slackware alla versione -current

Ho voluto creare un how-to generico in modo da essere sempre valido e non legato ad una versione specifica, che dia un infarinatura generale da abbinare alla lettura del file UPGRADE.TXT, visto che nel Forum di questa community si presentano spesso utenti che, oltre ad usare tool automatici senza leggere il file UPGRADE.TXT, chiedono altre cose non segnalate in tale file.


Indice

Avvertimenti

Come prima cosa mi sento di dire che la current è una versione in “sviluppo” e quindi soggetta a testing, e pertanto può avere bug, problemi e malfunzionamenti vari. Se avete bisogno di un sistema stabile e/o non avete voglia di sbattervi troppo, usate la versione stable ed applicateci le security patch. In questo modo avete anche a disposizione i tanti pacchetti già pronti dei vari repository.

Come seconda cosa invece mi sento di segnalare una regola importante: non usate swaret, slapt-get o simili, a meno che non siate sicuri di quel che state facendo, ma leggete il file UPGRADE.TXT del ramo current. Buona cosa sarebbe leggere tutti i file TXT presenti nella stessa directory. Il file UPGRADE.TXT è strettamente legato alla versione che andrete aggiornando, quindi leggetelo.

Questa regola, leggendo il forum di questa community, sembra sempre meno seguita da molti utenti, che pensano di aggiornare come in altri sistemi operativi semplicemente con un click. In Slackware non è così, e dovete sbattervi un poco, usare il cervello e leggere il file UPGRADE.TXT Nel testo troverete spesso la segnalazione di questa regola :-)


Fare un backup

Prima di qualsiasi cosa fate un backup del vostro sistema. Se non dell'intero sistema almeno della directory /etc, della $HOME e dei vostri file importanti.

Perché cominciare con un backup? Perché c'è sempre la possibilità che qualcosa vada storto, ed anche se tutto andasse per il meglio, potreste per sbaglio cancellare qualche file importante. In entrambi i casi con un backup completo potete sempre ripristinare le informazioni come erano prima di iniziare l'upgrade.

Per effettuare il backup potete seguire una delle guide presenti in questo wiki o in rete.

Una volta fatto il backup procediamo :-)


Scaricare i file necessari

Per scaricare i file necessari esistono vari metodi:

  1. Scaricare il ramo current da uno dei mirror in FTP
  2. Sincronizzare una directory nel proprio pc con la directory slackware-current con rsync o con lftp
  3. Scaricare solamente i pacchetti aggiunti o modificati. In questo caso esistono dei tool che aiutano nell'impresa
  4. Scaricare le ISO che alcuni mirror rendono disponibili

Per conformità al resto dell'how-to creiamo una directory mirrot all'interno di opt, in modo da avere /opt/mirror. In questa directory scaricheremo i pacchetti della current. Inoltre diamo a questa directory i permessi per l'utente solitamente usato, in modo da non compromettere la sicurezza del sistema collegandosi come root. Per fare questo date i seguenti comandi

# mkdir /opt/mirror
# chown nomeutente:users /opt/mirror

Naturalmente potete creare una directory dove volete e chiamarla come volete, ricordatevi però di cambiare percorso negli esempi seguenti.


Vediamo ogni metodo in dettaglio

Scaricare in FTP

Per scaricare il ramo current con il protocollo FTP, dovete collegarvi con il vostro client FTP ad uno dei mirror che trovate nella pagina http://www.slackware.com/getslack/ e scaricare la directory slackware-current.

Si può usare un client ftp testuale o uno grafico, non ha importanza, usate quello che preferite.

Collegandosi per esempio al mirror ftp://ftp.slackware.at/ vedrete che al suo interno ci sono varie directory, tra cui slackware-current, che è quella che ci interessa. A questo punto dovete trasferire la directory slackware-current all'interno della vostra /opt/mirror in modo da avere nella vostra macchina una directory chiamata /opt/mirror/slackware-current con all'interno tutto il ramo della current.

Potete creare a mano tale directory e spostarci a mano solamente i file e le directory che vi servono, questo dipende dalla vostra esperienza e dalle vostre necessità.


Sincronizzare due directory

Sincronizzare due directory significa fare in modo che due directory, SORGENTE e DESTINAZIONE, abbiano gli stessi file, ed ogni aggiornamento che avviene nella directory SORGENTE andrà a modificare di pari passo la directory DESTINAZIONE. La directory DESTINAZIONE nel nostro casò sarà /opt/mirror/slackware-current quella SORGENTE rsync://rsync.slackware.at/slackware/slackware-current

Per procedere con la sincronizzazione portiamoci in /opt/mirror e diamo il seguente comando

$ rsync -avz --delete-after rsync://rsync.slackware.at/slackware/slackware-current ./

Come vedete non c'è stato bisogno di creare la directory slackware-current, ci penserà rsync stesso a crearla. L'importante è che per aggiornare la directory date il comando sempre dalla stessa posizione, in questo caso /opt/mirror.

Io consiglio di fare uno script all'interno di /opt/mirror e lanciare tale script.

Un esempio potrebbe essere uno script chiamato getslack così composto:

 #!/bin/bash
 # Dichiariamo le variabili
 SORGENTE="rsync://ftp.slackware.com/slackware/slackware-current"
 OPZIONI="-avz –delete-after"
 DESTINAZIONE="./"
 # Diamo il comando rsync
 /usr/bin/rsync $OPZIONI $SORGENTE $DESTINAZIONE

Per sincronizzare le due directory basterà quindi lanciare lo script dalla directory /opt/mirror

 $ cd /opt/mirror
 $ sh getslack

N.B. Cambiando i percorsi del vostro mirror o della posizione dello script dovrete cambiare la variabile DESTINAZIONE. Lo script dovrà comunque essere posizionato esternamente alla directory interessata, altrimenti la sincronizzazione lo cancellerà in quanto non presente nella directory SORGENTE


Il comando rsync ha varie opzioni, compresa quella di controllare eventuali aggiornamenti prima di scaricare qualcosa (--dry-run) e quella di escludere alcune directory (--exclude). Per maggiori dettagli

$ man rsync

Si può sincronizzare due directory anche con il client ftp lftp, in questo modo i server disponibili sono maggiori, infatti non tutti offrono l'accesso rsync. Per maggiori intormazioni su questo metodo

$ man lftp

(Se qualcuno vuole scrivere una breve spiegazione su lftp è ben accetto)


Scaricare solamente i pacchetti aggiornati

Per scaricare solamente i pacchetti aggiornati o nuovi si può andare a vedere http://dev.slackware.it/changelogs/view.php?q=current e cliccare in ogni pacchetto reso linkabile. Altrimenti usare qualche tool automatico come kslackcheck o slackcurrent Non avendo esperienza con questi due tool consiglio di leggere la documentazione relativa.

(Se qualcuno vuole scrivere una breve spiegazione su questi due tool è ben accetto)

A questo punto diamo per acquisito che i pacchetti siano salvati in /opt/mirror/slacware-current in modo da rendere omogeneo tutto l'how-to, ma anche in questo caso potete salvarli dove volete. Cambieranno però i comandi di esempio dati in seguito.


Scaricare le iso della current

Come detto alcuni mirror mettono a disposizione delle iso. Due che conosco sono:

ftp://ftp.slackware.no/pub/linux/ISO-images/slackware/Current-ISO-build/

ftp://mirrors.unixsol.org/slackware/current-isos

Una volta scaricata la iso potete masterizzarla o usarla come file system. Per fare questo

# mount -o loop /path/file.iso /opt/mirror


Nota: Tra i metodi di aggiornamento della current, io preferisco il secondo metodo usando rsync, così da avere sempre una versione current sempre aggiornata per poter magari fare autonomamente delle immagini iso da mettere su DVD. Se non avete una connessione ADSL potete scegliere il punto 3. La scelta dipende dai vostri gusti e dalla vostra connessione.


Procedere all'upgrade

Una volta acquisiti i file necessari procediamo all'aggiornamento della slackware.

Il primo passo, e più importante, è quello di leggere il file UPGRADE.TXT e possibilmente ogni file TXT presente nella directory slackware-current. Questo perché in quel file ci sono le istruzioni per aggiornare con sicurezza, istruzioni che a volte cambiano a seconda della versione e delle modifiche apportate.

Il secondo passo è rileggere il file UPGRADE.TXT ed essere sicuri della scelta che si sta effettuando. Non mi stanco di ricordare che la current è pur sempre una versione in sviluppo.

A questo punto l'how-to potrebbe essere finito, in quanto è scritto tutto in tale file, ma voglio dare ugualmente una spiegazione generica dell'aggiornamento. Prendete quanto scritto come infarinatura per capire il file UPGRADE.TXT

Una sommaria traduzione del file UPGRADE.TXT del 20/10/2007 relativo all'aggiornamento della 12 alla current (pre 12.1) potete leggerla in questo wiki


Andare in modalità single user

Solitamente la prima cosa da fare è passare in modalità single user, cosa che si fa con questo comando

# telinit 1

A questo punto effettuiamo il log in come root e procediamo


Aggiornare Glibc e pacchetti di supporto

Il primo pacchetto da aggiornare sono le librerie glibc. Consiglio di andare nella directory slackware all'interno della directory in cui avete creato il mirror, in modo da facilitare le cose.

# cd /opt/mirror/slackware-current/slackware

Se avete scaricato l'iso probabilmente il comando sarà qualcosa di simile a questo

# cd /opt/mirror/slackware

Ora procediamo ad aggiornare le librerie glibc e successivamente aggiornare il tool di gestione dei pacchetti, pkgtool

# upgradepkg a/glibc-solibs-*tgz
# upgradepkg a/pkgtools-*.tgz

Questi passi sono importanti e vanno eseguiti, in questo ordine, prima di tutto il resto. Altrimenti si rischia di non poter installare i nuovi pacchetti.

A volte nel file UPGRADE.TXT si legge di aggiornare altri pacchetti prima di accingersi all'aggiornamento totale, per esempio potrebbe esserci l'aggiornamento di sed.

Consiglio quindi di leggere bene il file UPGRADE.TXT prima di qualsiasi cosa. Non mi stancherò mai di ripeterlo.


Aggiornamento di tutti i pacchetti

Una volta aggiornati i pacchetti di supporto si può procedere all'aggiornamento totale della distribuzione. In questo caso ci sono due metodi:

Installare tutti i nuovi pacchetti

Questo è il metodo suggerito da Pat all'interno del file UPGRADE.TXT.

Per fare questo dall'interno della directory slackware bisogna dare

   # upgradepkg --install-new */*.tgz

Aggiornare solamente i pacchetti nuovi o modificati

In questo caso se avete seguito il punto 3 relativo al reperimento dei file necessari basta andare in tale directory e dare

   # upgradepkg --install-new *.tgz

Se invece avete creato il mirror, dovete seguire il file ChangeLog.txt alla lettera, guardando quale sono i pacchetti aggiornati. E' un procedimento lungo, ma è quello che io preferisco perché mi evita di installare pacchetti che non mi interessano e perché mi permette di vedere i cambiamenti effettuati. Per esempio non installo mai sendmail in quanto uso postfix. Se non volete perdere tempo installate tutto e rimuovete in seguito ciò che non vi serve.


Modificare il boot manager

Una volta installati tutti i nuovi pacchetti bisogna essere sicuri che il sistema faccia il boot normalmente, quindi modificare LILO o Grub in base al nuovo kernel installato.

Se usate LILO una volta modificato il file /etc/lilo.conf date il comando

# lilo -v

Per Grub una volta modificato il file /boot/grub/menu.lst non c'è bisogno di nessun comando


Modificare i file di configurazione

Arrivati a questo punto bisogna controllare quali modifiche hanno portato i nuovi file di configurazione all'interno di /etc e fare il merge con i propri.

Pat suggerisce ai più temerari di usare questo script:

#!/bin/sh
cd /etc
find . -name "*.new" | while read configfile ; do
if [ ! "$configfile" = "./rc.d/rc.inet1.conf.new" \
    -a ! "$configfile" = "./group.new" \
    -a ! "$configfile" = "./passwd.new" \
    -a ! "$configfile" = "./shadow.new" ]; then
  cp -a $(echo $configfile | rev | cut -f 2- -d . | rev) \
      $(echo $configfile | rev | cut -f 2- -d . | rev).bak 2> /dev/null
  mv $configfile $(echo $configfile | rev | cut -f 2- -d . | rev)
fi
done

ci ritroveremo così con i vecchi file con estensione .bak A questo punto inseriamo le nostre modifiche nei nuovi file.

Questo perché i nuovi file nuovi potrebbero contenere informazioni che i vecchi non hanno, o potrebbero avere una sintassi diversa. I cambiamenti effettuati nei nuovi pacchetti possono infatti recare dei cambiamenti nel formato dei file di configurazione e negli script di avvio contenuti in /etc. Al tempo stesso dovrete immettere i vostri vecchi dati nei nuovi file per mantenere le vecchie configurazioni.

Bisogna stare attenti a questo passo perché si rischia di perdere utenti e configurazioni che avevamo in precedenza.


Tornare in modalità multiutente

Una volta fatte queste modifiche e dopo essere sicuri che tutto sia giusto si può tornare in modalità multiutente

# telinit 3

A volte al termine della procedura di riavvio non compare la shell, ma niente paura, basta premere invio per visualizzarla.


Rimozione pacchetti obsoleti

Ora abbiamo aggiornato alla current, ma ci manca di rimuovere i pacchetti obsoleti e, se le abbiamo installate, i vari file delle varie lingue di KDE e Koffice Oltre naturalmente ai pacchetti che non utilizzate, per esempio come detto prima sendmail se usate un altro server mail.

Io uso un metodo diverso, prima rimuovo quel che dal changelog vedo obsoleto (direttamente in init 1) e dopo installo i nuovi pacchetti. Ma ognuno è libero di scegliere il metodo preferito, Pat nel file UPGRADE.TXT consiglia di rimuoverli successivamente in init 3


Per sapere quale pacchetti sono obsoleti bisogna leggere il file CHANGES_AND_HINTS.TXT

Per rimuovere i pacchetti usare il comando removepkg

La sintassi del comando è

# removepkg nomepacchetto.tgz


A questo punto potete riavviare e se tutto è andato per il verso giusto trovarvi nella Slackware -current

Buon divertimento con la -current :-)

Conclusioni

Spero che la guida possa essere stata di aiuto, qualsiasi critica, modifica o aggiunta è ben accetta

Se nonostante questa breve guida e la lettura del file UPGRADE.TXT avete ancora dubbi o problemi potete chiedere nel forum.


Voci correlate


Script per backup


Collegamenti Esterni



Autore: Conraid 19:42, 10 Dic 2007 (CET)

Strumenti personali
Namespace

Varianti