Repository 32bit  Forum
Repository 64bit  Wiki

Current for Dummies: differenze tra le versioni

Da Slacky.eu.
 
(12 revisioni intermedie di un utente non mostrate)
Riga 1: Riga 1:
[[categoria:Install_e_Upgrade]]
[[categoria:Install_e_Upgrade]]
Questo mini Howto spiega come aggiornare una versione della [http://www.slackware.com 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 [ftp://ftp.slackware.com/pub/slackware/slackware-current/UPGRADE.TXT UPGRADE.TXT], visto che nel [http://www.slacky.eu/forum 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.
+
Vedere
+
* [[Come_aggiornare_dalla_12.1_alla_12.2|Come aggiornare dalla 12.1 alla 12.2]]
+
* [http://www.slackers.it/slackware/slackware-howto/slackware-current-for-dummies/ Current for dummies ]
== Conoscenze ==
 
 
Do per scontato che chi si accinge ad aggiornare alla ''current'' abbia le conoscenze almeno base per usare una Slackware. Come installare, aggiornare o rimuovere i pacchetti, configurare la distribuzione, risolvere gli errori, trovare informazioni, etc...
 
 
E che conosca a memoria almeno [http://www.slacky.eu/index.php?option=com_content&task=view&id=21&Itemid=42 Slackware for Dummies] ;-)
 
 
 
== 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 '''<span style="color:red">leggete il file UPGRADE.TXT del ramo current</span>'''. Buona cosa sarebbe leggere tutti i file TXT presenti nella stessa [ftp://ftp.slackware.com/pub/slackware/slackware-current/ 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 <code>/etc</code>, della <code>$HOME</code> 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:
 
 
# [[#Scaricare_in_FTP|Scaricare il ramo current da uno dei mirror in FTP]]
 
# [[#Sincronizzare_due_directory|Sincronizzare una directory nel proprio pc con la directory slackware-current con rsync o con lftp]]
 
# [[#Scaricare_solamente_i_pacchetti_aggiornati|Scaricare solamente i pacchetti aggiunti o modificati.]] In questo caso esistono dei tool che aiutano nell'impresa
 
# [[#Scaricare_le_iso_della_current|Scaricare le ISO che alcuni mirror rendono disponibili]]
 
 
Per conformità al resto dell'how-to creiamo una directory mirrot all'interno di <tt>opt</tt>, in modo da avere <tt>/opt/mirror</tt>. 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
 
 
<code>
 
# mkdir /opt/mirror
 
# chown nomeutente:users /opt/mirror
 
</code>
 
 
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 <tt>/opt/mirror/slackware-current</tt> 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à <tt>/opt/mirror/slackware-current</tt> quella SORGENTE <tt>rsync://rsync.slackware.at/slackware/slackware-current</tt>
 
 
Per procedere con la sincronizzazione portiamoci in <tt>/opt/mirror</tt> e diamo il seguente comando
 
 
<code>
 
$ rsync -avz --delete-after rsync://rsync.slackware.at/slackware/slackware-current ./
 
</code>
 
 
Come vedete non c'è stato bisogno di creare la directory <tt>slackware-current</tt>, ci penserà <tt>rsync</tt> stesso a crearla. L'importante è che per aggiornare la directory date il comando sempre dalla stessa posizione, in questo caso <tt>/opt/mirror</tt>.
 
 
Io consiglio di fare uno script all'interno di <tt>/opt/mirror</tt> e lanciare tale script.
 
 
Un esempio potrebbe essere uno script chiamato <tt>getslack</tt> così composto:
 
 
<code>
 
#!/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
 
</code>
 
 
Per sincronizzare le due directory basterà quindi lanciare lo script dalla directory <tt>/opt/mirror</tt>
 
 
<code>
 
$ cd /opt/mirror
 
$ sh getslack
 
</code>
 
 
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 <tt>rsync</tt> 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
 
 
<code>
 
$ man rsync
 
</code>
 
 
Si può sincronizzare due directory anche con il client ftp [http://lftp.yar.ru/ lftp], in questo modo i server disponibili sono maggiori, infatti non tutti offrono l'accesso rsync.
 
Per maggiori intormazioni su questo metodo
 
 
<code>
 
$ man lftp
 
</code>
 
 
: <small style="color:green">(Se qualcuno vuole scrivere una breve spiegazione su lftp è ben accetto)</small>
 
 
 
=== 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 [http://www.deprecated.it/kslackcheck/ kslackcheck] o [http://slackcurrent.sourceforge.net/ slackcurrent]
 
Non avendo esperienza con questi due ''tool'' consiglio di leggere la documentazione relativa.
 
 
: <small style="color:green">(Se qualcuno vuole scrivere una breve spiegazione su questi due tool è ben accetto)</small>
 
 
A questo punto diamo per acquisito che i pacchetti siano salvati in <tt>/opt/mirror/slacware-current</tt> 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
 
 
<code>
 
# mount -o loop /path/file.iso /opt/mirror
 
</code>
 
 
 
'''Nota:'''
 
Tra i metodi di aggiornamento della ''current,'' io preferisco il secondo metodo usando <tt>rsync</tt>, così da avere sempre una versione ''current'' sempre aggiornata per poter magari [[Creare_CD/DVD_ISO_Slackware|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 <tt>slackware-current</tt>. 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 [[Traduzione_di_UPGRADE.TXT_del_20/10/2007|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
 
 
<code>
 
# telinit 1
 
</code>
 
 
A questo punto effettuiamo il ''log in'' come <tt>root</tt> e procediamo
 
 
 
=== Aggiornare Glibc e pacchetti di supporto ===
 
 
Il primo pacchetto da aggiornare sono le librerie <tt>glibc</tt>.
 
Consiglio di andare nella directory ''slackware'' all'interno della directory in cui avete creato il mirror, in modo da facilitare le cose.
 
 
<code>
 
# cd /opt/mirror/slackware-current/slackware
 
</code>
 
 
Se avete scaricato l'iso probabilmente il comando sarà qualcosa di simile a questo
 
<code>
 
# cd /opt/mirror/slackware
 
</code>
 
 
Ora procediamo ad aggiornare le librerie <tt>glibc</tt> e successivamente aggiornare il tool di gestione dei pacchetti, pkgtool
 
 
<code>
 
# upgradepkg a/glibc-solibs-*tgz
 
# upgradepkg a/pkgtools-*.tgz
 
</code>
 
 
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 <tt>sed</tt>.
 
 
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 [http://it.wikipedia.org/wiki/Patrick_Volkerding Pat] all'interno del file UPGRADE.TXT.
 
 
Per fare questo dall'interno della directory slackware bisogna dare
 
 
<code>
 
# upgradepkg --install-new */*.tgz
 
</code>
 
 
==== 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
 
 
<code>
 
# upgradepkg --install-new *.tgz
 
</code>
 
 
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 <tt>/etc/lilo.conf</tt> date il comando
 
 
<code>
 
# lilo -v
 
</code>
 
 
Per Grub una volta modificato il file <tt>/boot/grub/menu.lst</tt> 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.
 
 
[http://it.wikipedia.org/wiki/Patrick_Volkerding Pat] suggerisce ai più temerari di usare questo script:
 
 
<code>
 
#!/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
 
</code>
 
 
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 <tt>/etc</tt>. 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
 
 
<code>
 
# telinit 3
 
</code>
 
 
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 <tt>sendmail</tt> 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,
 
[http://it.wikipedia.org/wiki/Patrick_Volkerding Pat] nel file UPGRADE.TXT consiglia di rimuoverli successivamente in <tt>init 3</tt>
 
 
 
Per sapere quale pacchetti sono obsoleti bisogna leggere il file CHANGES_AND_HINTS.TXT
 
 
Per rimuovere i pacchetti usare il comando <tt>removepkg</tt>
 
 
La sintassi del comando è
 
 
<code>
 
# removepkg nomepacchetto.tgz
 
</code>
 
 
 
A questo punto potete riavviare e se tutto è andato per il verso giusto trovarvi nella Slackware -current
 
 
Buon divertimento con la -current :-)
 
 
 
== Installare direttamente la current ==
 
 
Se abbiamo un sistema "vuoto" e vogliamo installare direttamente la <tt>current</tt>, senza aggiornare una <tt>stable</tt>, allora basta procurarsi o crearsi le <tt>iso</tt> ([[#Scaricare_i_file_necessari|come spiegato sopra]]) ed installare il tutto come una ''normale'' Slackware.
 
Il procidemento di installazione di una <tt>current</tt> in questo caso non differisce da quello di una <tt>stable</tt>.
 
 
 
== Aggiornare periodicamente una current ==
 
 
Una volta che abbiamo una <tt>current</tt> funzionante, può capitare che Pat rilasci aggiornamenti per essa.
 
 
Come comportarsi in questo caso? Ci sono due strade
 
 
=== Aggiornare in init 1 ===
 
 
Se i pacchetti nuovi sono importanti e/o critici bisogna ripetere i passi [[Procedere_all.27upgrade|di cui sopra]] e passare in <tt>init 1</tt>.
 
Solitamente lo sono soprattutto le <tt>glibc</tt>, ma anche <tt>kernel</tt>, <tt>pkgtool</tt>, <tt>lilo</tt>, <tt>bash</tt> ed altri
 
 
Se bisogna aggiornare le <tt>glibc</tt> ricordarsi '''sempre''' che va fatto come prima cosa.
 
 
==== Come fare a capire se un pacchetto è importante? ====
 
 
Qui entra in gioco l'esperienza, la conoscenza del sistema e dei singoli pacchetti. Per questo dicevo all'inizio che la <tt>current</tt> richiede una conoscenza base della Slackware e dei suoi meccanismi almeno decente.
 
 
=== Aggiornare in init 3 ===
 
 
Se ci sono aggiornamenti di pacchetti non critici, per esempio <tt>libpng</tt> o <tt>php</tt>, si può fare in <tt>init 3</tt>
 
 
 
 
== 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 ==
 
 
* [[Traduzione_di_UPGRADE.TXT_del_20/10/2007|Traduzione del file UPGRADE.TXT del 20/10/2007]]
 
* [[Aggiornare_Slackware_9.1_alla_Current|How-to dell'upgrade della 9.1 alla current]]
 
* [[Aggiornare_Slackware_con_SWARET_e_SLAPT-GET|Spiegazione di Swaret e Slapt-Get]]
 
* [[Creare_CD/DVD_ISO_Slackware|Creare CD o DVD della Slackware]]
 
 
 
Script per backup
 
 
* [[Backup_by_Tongiu|Backup by Tongiu]]
 
* [[Organizzare un backup completo]]
 
 
 
== Collegamenti Esterni ==
 
 
* (en) [ftp://ftp.slackware.com/pub/slackware/slackware-current/UPGRADE.TXT Il file UPGRADE.TXT della -current]
 
* [http://www.slackware.com/getslack Scelta del mirror]
 
* [http://www.slacky.eu/index.php?option=com_content&task=view&id=21&Itemid=42 Slackware for Dummies]
 
 
----
 
 
Autore: [[Utente:Conraid|Conraid]] 19:42, 10 Dic 2007 (CET)
 

Versione attuale delle 11:48, 29 nov 2011


Vedere

Strumenti personali
Namespace

Varianti