Current for Dummies
Inserito il 2 marzo 2010 in Slackware How-To 
Introduzione
In questo Howto vedremo come aggiornare una versione della Slackware all’ultima versione -current.
Ho voluto creare un how-to generico in modo da essere sempre valido e non legato ad una versione specifica (anche se alcune sezioni riguardano l’aggiornamento dalla 13.0 alla -current), che dia un infarinatura generale da abbinare alla lettura del file UPGRADE.TXT e che non contempli l’uso di software di aggiornamento automatici, che a volte rendono il sistema inutilizzabile.
Vista la natura del documento, sarà sempre in -current, con opportune modifiche quando, visto il changelog, lo riterrò opportuno
Prima di tutto alcune premesse:
- Non mi assumo la responsabilità di eventuali danni provocati al vostro computer. Fate sempre le cose dopo averle ben capite e verificate
- 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 Slackware for Dummies
- 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. Non sempre è aggiornato rispetto alla precedente versione, solitamente questo significa che nella -current non ci sono accorgimenti particolari da fare per l’aggiornamento, ma non fidatevi troppo
- 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.
Avvertimenti
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 avrete anche a disposizione i tanti pacchetti già pronti dei vari repository di slacky.eu
Il metodo che spiegherò di seguito non contempla l’uso di software come Slackpkg, Swaret, Slapt-Get e simili, ma descrive e cerca di spiegare, ed in alcuni casi integrare, il procedimento consigliato da Pat nel suo UPGRADE.TXT
Io sconsiglio sempre l’uso di software come Slapt-Get, Swaret o simili per aggiornare l’intera distribuzione, a meno di non conoscere bene i pregi ed i difetti di tali software e sapere come procedere. Questo perché non sempre rispecchiano il corretto ordine di aggiornamento e non sempre installano i “nuovi” pacchetti. Se proprio si vuole usare uno di questi software, quel che posso consigliare è di leggere bene la documentazione, di aggiornare prima di tutto glibc e pkgtool.
Se proprio si vuole di utilizzare un software di questo tipo consiglio slackpkg, che è entrato ufficialmente a far parte della Slackware ed è l’unico che aggiorna nell’ordine giusto
Il kernel minimo per installare una -current è il 2.6.18, e se vogliamo utilizzare HAL, almeno il 2.6.19
Vi consiglio inoltre di stampare questa guida prima di procedere al suo utilizzo. In modo da avere sempre le informazioni sottomano
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, avere dei ripensamenti, anche solo controllare la vecchia impostazione. In ogni caso con un backup completo potete sempre ripristinare le informazioni come erano prima di iniziare l’aggiornamento.
Per effettuare il backup potete seguire una delle guide presenti in rete.
Una volta fatto il backup procediamo con l’aggiornamento
Scaricare i file necessari
Per scaricare i file necessari esistono vari metodi:
- Scaricare il ramo current da uno dei mirror in FTP
- Sincronizzare una directory nel proprio pc con la directory slackware-current con rsync o con lftp
- Scaricare solamente i pacchetti aggiunti o modificati. In questo caso esistono dei tool che aiutano nell’impresa
- Scaricare le ISO che alcuni mirror rendono disponibili
Per conformità al resto dell’how-to creiamo una directory mirror 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
1. 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à.
2. 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 e 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 e lanciare tale script.
Un esempio potrebbe essere uno script chiamato getslack così composto:
#!/bin/sh -e # Dichiariamo le variabili # scegliere uno dei seguenti mirror (sono quelli che trovo più veloci, ma potete utilizzare quello a voi preferito che supporti rsync) SORGENTE="rsync://rsync.slackware.at/slackware/slackware-current" SORGENTE="rsync.slackware.org.uk::slackware/slackware-current" SORGENTE="slackware.mirrors.tds.net::slackware/slackware-current" OPZIONI="-avz --delete-after" DESTINAZIONE="/opt/mirror/" # 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
Nota: Cambiando i percorsi del vostro mirror o della directory di destinazione 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
3. 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.
Naturalmente questa procedura è consigliata farla per aggiornamenti che coinvolgono pochi pacchetti (guardare sempre il changelog), per esempio i primi tempo di “movimento” della current. In altri casi consiglio di scaricare tutto.
4. Scaricare le iso della current
Come detto alcuni mirror mettono a disposizione delle immagini 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 e dando per acquisito che i pacchetti siano salvati in /opt/mirror/slacware-current, in modo da rendere omogeneo tutto l’how-to, procediamo all’aggiornamento della Slackware.
Anche in questo caso potete salvarli dove volete. Cambieranno però i comandi di esempio dati in seguito.
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
1. Andare in single user mode
La prima cosa da fare è passare in modalità singolo utente, cosa che si fa con questo comando
# telinit 1
A questo punto effettuiamo il log in come root e procediamo
Nota:
Come dice lo stesso Pat questo ”non è strettamente necessario”, e ci sono state segnalazioni di successo di aggiornamenti effettuati da remoto su macchine ancora in modalità multiutente. Tuttavia, essendo più facile sbagliare in modalità multiutente e specialmente se si sta pensando di aggiornare un computer da remoto in modalità multiutente, si consiglia di clonare la macchina in locale in modo da fare una prova per scoprire eventuali problemi e trovare le soluzioni.
2. Aggiornare Glibc e pacchetti di supporto, soprattutto Pkgtool
Il primo pacchetto da aggiornare sono le librerie glibc. Questo perché sono librerie essenziali al funzionamento dell’intero sistema, e quando nei vari forum si trovano messaggi di persone che si sono trovate con il computer fuori uso durante un aggiornamento, spesso la causa è dovuta al mancato aggiornamento delle glibc come primo passo di tutta la procedura.
Quindi per prima cosa procediamo ad aggiornare 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’immagine iso probabilmente il comando sarà qualcosa di simile a questo
# cd /opt/mirror/slackware
Visto le nuove estensione dei pacchetti, che utilizzano un algoritmo di compressione diverso consiglio di installare prima i pacchetti gzip, pkgtools, tar e xz prima degli altri
# upgradepkg --install-new a/*.tgz
Pat consiglia anche di aggiornare in questo momento anche find
# upgradepkg a/findutils-*.txz
Ora aggiorniamo le glibc, con il comando upgradepkg
# upgradepkg a/glibc-solibs-*txz
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 e ritrovandoci con il sistema fuori uso.
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.
3. 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: il primo consigliato da Pat, il secondo da me.
Capite già da questo qual è il più seguito dagli utenti Slackware
3.a Primo metodo: Installazione di tutti i pacchetti
Questo è il metodo suggerito da Pat all’interno del file UPGRADE.TXT.
Per fare questo dall’interno della directory /opt/mirror/slackware-current/slackware, dove ci siamo posizionati in precedenza, bisogna dare il comando
# upgradepkg --install-new */*.t?z
Siccome in questo modo si installeranno anche tutti i file di localizzazione del KDE, che sono circa 500Mb, Pat consiglia di usare questo script
#!/bin/sh for dir in a ap d e f k kde l n t tcl x xap y ; do ( cd $dir ; upgradepkg --install-new *.t?z ) done
che installerà ogni cosa, tranne appunto i file di localizzazione, cosa che potremmo fare in seguito con semplicità. Vedremo in seguito come.
3.b Secondo metodo: Aggiornare solamente i pacchetti nuovi o modificati
In questo caso se avete seguito il punto 3 relativo al reperimento dei soli file necessari basta andare in tale directory e dare
# upgradepkg --install-new *.t?z
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.
Questa procedura è valida se aggiornate dall’ultima versione della stable, in particolare riguardo i file rimossi ed aggiunti, da una 13.0 ad una -current.
Visto che questa procedura serve per non replicare una installazione full, potete benissimo non installare i pacchetti che non utilizzate. Per esempio consiglio di non installare scim, che serve per il supporto alle lingue orientali. Ma la scelta spetta a voi e per evitare di non installare software importante consiglio di leggere il file Changelog.txt o direttamente il TXT del pacchetto
Naturalmente si può benissimo, anzi forse è meglio
, seguire la procedura di Pat e dopo rimuovere ciò che non ci serve e reinstallare successivamente i pacchetti che usiamo. Questo evita anche di dimenticarsi di installare pacchetti essenziali al funzionamento del sistema. Personalmente cerco di evitare questo anche se allungo il processo di aggiornamento della distribuzione e se volete seguire il mio metodo dovete essere sicuri di aver installato tutti i nuovi pacchetti.
Come sempre l’esperienza e la conoscenza del sistema permettono di effettuare scelte personali.
Quali sono i vantaggi di questa procedura? Aggiornando manualmente, possiamo evitare l’installazione dei pacchetti che non ci servono, che possono essere molti o pochi a seconda del proprio grado di personalizzazione della Slackware. Con l’altro metodo invece ci ritroveremo con installati anche questi pacchetti, che possono andare in conflitto con alcuni dei “nostri” oppure essere semplicemente inutili. Niente che non si possa risolvere in secondo momento comunque.
Ed i contro? Il contro di questa procedura è la pazienza ed il tempo richiesto per effettuare la stessa. Ed anche l’attenzione di non scordarsi qualche pacchetto essenziale
Per questa procedura normalmente dovremmo leggere il file CHANGES_AND_HINTS.TXT che si trova nel DVD o in uno dei tanti mirror della Slackware. Visto che nella current tale file non è solitamente aggiornato, cercherò ad ogni cambio del changelog di aggiornare la lista dei file aggiunti e rimossi.
Nella -current, rispetto alla 13.0 sono stati rimossi (o rinominati) tali pacchetti.
a/device-mapper (ora compreso in lvm2) ap/mpg321 (sostituito da mpg123) kde/mplayerthumbs (adessp compreso in kdemultimedia) l/libungif (sostituito da giflib) x/lbxproxy x/liblbxutil ( x/proxymngr x/xf86-input-citron x/xf86-input-elographics x/xf86-input-fpit x/xf86-input-hyperpen x/xf86-input-mutouch
Per la rimozione di un pacchetto bisogna dare questo comando
# removepkg nomepacchetto
Sostituendo a nomepacchetto il nome del pacchetto che trovate nella lista. Per esempio:
# removepkg mplayerthumbs
A questo punto, dopo aver rimosso i pacchetti non più presenti nella -current, effettuiamo l’installazione dei nuovi pacchetti.
Anche questa lista si trova nel file CHANGES_AND_HINTS.TXT
ap/mpg123 kde/kdelibs-experimental kde/kopete-cryptography kde/oxygen-icons l/fftw l/giflib l/gst-plugins-good l/liblastfm l/libnotify l/libsamplerate l/libv4l l/notify-python x/xf86-input-wacom xap/xfce4-notifyd /testing/btrfs-progs
Per installare questi pacchetti consiglio upgradepkg –install-new e non direttamente installpkg perché è possibile che alcuni di questi pacchetti li avevamo già nel sistema in quanto scaricati da altri repository, come quello di slacky.eu per esempio.
Quindi procediamo con
# upgradepkg --install-new nomepacchetto.txz
In questo caso però bisogna sostiture a nomepacchetto il nome che trovate, aggiungendo l’asterisco per il numero versione e l’estensione .txz, necessaria al corretto funzionamento del comando. Alcuni pacchetti mantengono la vecchia estensione .tgz (gzip, pkgtools, slackpkg, tar e xz)
Per esempio
# upgradepkg --install-new kde/kdelibs-experimental-*.txz
Naturalmente installate solo i nuovi pacchetti di vostro interesse.
Stare attenti ai pacchetti kde, in quanto in -current è presente kde4
Se non volete “correre rischi” di dimenticare qualcosa, consiglio di rimuovere tutti i pacchetti di kde3 e poi dalla directory di kde dare
# upgradepkg --install-new *.txz
Se si vuole il supporto alle applicazioni qt3/kde3 installare anche i seguenti pacchetti:
extra/kde3-compat/arts extra/kde3-compat/kdelibs3 extra/kde3-compat/qca-tls1 extra/kde3-compat/qca1 extra/kde3-compat/qt3
Dopodiché procediamo con l’aggiornamento completo della Slackware, aggiornando comunque solamente i pacchetti che abbiamo nel sistema dando il comando:
# upgradepkg */*.t?z
Nota: Se notate mancanza nella lista dei pacchetti aggiunti e rimossi, segnalatemelo all’indirizzo slackers.it (at) gmail (dot) com
4. 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
Nota: Se usate il kernel generic, ricordatevi di modificare l’initrd secondo le vostre esigenze
5. Rimozione pacchetti obsoleti
Nota: Se avete seguito la procedura “Aggiornare solamente i pacchetti nuovi o modificati” potete saltare questa sezione.
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 rimuovere i pacchetti usare il comando removepkg
La sintassi del comando è
# removepkg nomepacchetto
Per la lista dei pacchetti rimossi dalla -current, guardare sopra.
6. 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 l’unione 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" = "./rc.d/rc.local.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 va fatto perché i nuovi file 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.
Per alcuni file bisogna stare attenti ad eseguire questo passo perché si rischia di perdere utenti o configurazioni che avevamo in precedenza.
Comunque come vedete lo script non rinomina i file
- /etc/rc.d/rc.inet1.conf.new
- /etc/rc.d/rc.local.new
- /etc/group.new
- /etc/passwd.new
- /etc/shadow.new
Questo perché sono i file in cui sono memorizzati i vostri utenti, i gruppi, le password e le informazioni sulla vostra rete. Quindi non allarmatevi se ritrovate ancora alcuni file con estensione .new e soprattutto non sostituiteli a quelli vecchi se non sapete bene cosa state facendo.
Quindi sta a voi modificare, se necessario, questi vecchi file facendo un confronto con quelli con estensione .new
Normalmente modificare questi file non sempre serve, potete lasciarli come sono, anche in questo caso l’esperienza e la conoscenza del sistema sono la base per effettuare le modifiche come più ci piace. Come detto sopra, bisogna però stare attenti alle modifiche importanti, come il cambio di alcuni programmi di avvio e/o di configurazione.
7. Aggiornare i pacchetti delle localizzazioni di KDE
A seconda di come avete aggiornato il sistema, potreste ritrovarvi con tutti i file di localizzazione di KDE o con nessuno. Siccome occupano 500Mb conviene lasciare solamente quelli effettivamente utilizzati.
Vediamo caso per caso.
7.a Si è aggiornato tramite –install-new
Se si è aggiornato con il metodo consigliato da Pat
# upgradepkg --install-new */*.t?z
conviene disintallarli tutti e dopo installare solamente quelli veramente utilizzati.
Per fare ciò bisogna portarsi nella dir /var/log/packages e rimuovere tutto.
# cd /var/log/packages # removepkg kde-i18n* koffice-l10n*
Successivamente, tornare nella directory /mnt/dvd/slackare ed installare quelli di cui si ha effettivamente bisogno.
Per esempio per installare quelli in lingua italiana, bisogna usare il comando
# upgradepkg --install-new kdei/k*it*txz
7.b Si è aggiornato tramite lo script di Pat
Se per aggiornare il sistema si è utilizzato lo script di Pat visto in precendenza, basta aggiornare solamente i file effettivamente utilizzati con il comando
# upgradepkg kdei/*.txz
7.c Si è aggiornato tramite il metodo alternativo
Se si è seguito il metodo consigliato da me, probabilmente non ci sarà da fare niente, in quanto si saranno aggiornati solamente i file di localizzazione precedentemente usati.
Controllare comunque non fa mai male
7.d Non si utilizzava nessuna localizzazione per KDE
Se prima non veniva utilizzata alcuna localizzazione per KDE naturalmente bisogna valutare se continuare così o installare le localizzazioni che vogliamo.
Stessa cosa se vogliamo aggiungerne (o rimuoverne) altre, per esempio per utilizzare varie lingue.
In questo caso bisogna spostarsi nella directory kdei e procedere all’installazione o rimozione dei pacchetti delle localizzazioni che ci interessano.
In tutti i casi l’importante è fare questo per i pacchetti kde, koffice e k3b, naturalmente questi ultimi due se sono utilizzati.
8. 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.
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 -current, senza aggiornare una stable, allora basta procurarsi o crearsi le immagini iso (come spiegato sopra) ed installare il tutto come una normale Slackware. Il procidemento di installazione di una -current in questo caso non differisce da quello di una stable.
Aggiornare periodicamente una current
Una volta che abbiamo una current funzionante, può capitare che Pat rilasci aggiornamenti per essa.
Come comportarsi in questo caso? Ci sono varie strade
Aggiornare in init 1
Se i pacchetti nuovi sono importanti e/o critici bisogna ripetere i passi da Procedere all’upgrade e passare in init 1. Solitamente lo sono soprattutto le glibc, ma anche kernel, pkgtool, lilo, bash ed altri
Se bisogna aggiornare le glibc 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 current richiede una conoscenza base della Slackware e dei suoi meccanismi almeno decente.
1. Aggiornare in init 3
Se ci sono aggiornamenti di pacchetti non critici, per esempio libpng o php, si può fare in init 3
2. Aggiornare in init 4 o dentro X
A questo punto qualcuno potrebbe chiedere: “Si può aggiornare in init 4, o da dentro una sessione di X anche essendo partiti in init 3″? La risposta è implicita nella domanda, se coinvolge pacchetti critici o che hanno a che fare con l’ambiente grafico meglio di no. Aggiornare xorg per esempio meglio farlo dall’esterno di esso.
Possibile errore della procedura di aggiornamento
Se il sistema non si riavvia correttamente, o si è fatto qualche danno durante la procedura di aggiornamento, niente drammi. Prima di formattare, come si usa in altri sistemi, è possibile sempre cercare di reinstallare sul sistema non funzionante la Slackware -current
Per fare questo bisogna per prima cosa ripristinare le glibc, solitamente il punto critico del sistema, e successivamente aggiornare l’intero sistema con una delle procedure sopra descritte.
Se proprio non ci riuscite potete invece ripristinare il backup e ripetere la procedura.
E se non si è fatto il backup? Come non avete fatto il backup??? Questa è la prima cosa fare come abbiamo detto prima
Consigli e problemi noti della 13.0
Vediamo adesso alcuni cambiamenti avvenuti in -current che potrebbero creare problemi e/o malfunzionamenti del sistema
Per maggiori informazioni su questi ed altri “problemi noti”, leggere il file CHANGES_AND_HINTS.TXT
In particolare merita una segnalazione la sezione del riconoscimento dell’hardware da parte di udev con il nuovo installer. Siccome l’installer non entra in gioco in fase di aggiornamento non è stata presa in considerazione in questo how-to
Gruppi di default
Durante l’aggiunta di un utente al sistema con il comando adduser vengono consigliati una serie di gruppi a cui sarebbe opportuno aggiungere l’utente per non incorrere in “problemi” di permessi.
Questi gruppi sono audio, cdrom, video, plugdev, floppy, netdev, power
Naturalmente non è detto che sia necessario aggiungere l’utente in tutti i gruppi, dipende anche dalla configurazione del sistema, ma per una utenza base su una installazione di default è consigliato farlo.
Nota bene: In un avvio in init3, l’utente è aggiunto di default, tramite l’operato del file /etc/login.defs nei gruppi floppy, audio, cdrom e video, quindi a volte si notano alcuni problemi di permessi solo cambiando modalità di avvio.
Aggiunta di utenti e gruppi
Per esigenze di alcuni programmi sono stati aggiunti nuovi utenti e nuovi gruppi di sistema, normalmente la procedura di aggiornamento aggiunte direttamente questi utenti e questi gruppi, ma è sempre meglio controllare i file
/etc/group.new, /etc/passwd.new, /etc/shadow.new
Nuovi utenti di sistema:
- oprofile (uid=51)
Nuovi gruppi di sistema:
- oprofile (gid=51)
- dialout (gid=16)
- netdev (gid=86)
Problemi con la configurazione di KDE4
Visto i cambiamenti avvenuti in Kde4 si consiglia di fare un backup della proprio cartella di configurazione $HOME/.kde e rimuoverla, in modo che KDE 4 ricrei la cartella in base ai nuovi parametri.
Icone mancanti in XFCE
Come per KDE, se abbiamo una configurazione per XFCE è probabile che ci saranno alcune icone mancanti dopo l’aggiornamento a XFCE 4.6. Questo è dovuto, almeno in parte, al fatto che il tema di icone Rodent, che era presente nella versione 4.4.x, non è più presente. Per ovviare al problema è necessario utilizzare le impostazioni Manager per selezionare un nuovo tema di icone.
Per i nuovi utenti, il tema di icone di default è adesso Tango.
Ci possono essere ancora icone mancanti per programmi lanciati dal pannello; al momento attuale l’unica soluzione è quella di riconfigurare e selezionare un nuova icona.
Vedere http://bugzilla.xfce.org/show_bug.cgi?id=5067 per maggiori informazioni.
Impossibile accedere all’interfaccia web di CUPS
Se si riscontra un problema nell’accedere all’interfaccia web di CUPS (http://localhost:631) si consiglia di disabilitare il modulo ipv6 e riavviare il pc.
Per fare ciò aggiungere in fondo al file /etc/modprobe.d/blacklist la seguente riga:
blacklist ipv6
e creare un file /etc/modprobe.d/ipv6 con le seguenti righe
alias net-pf-10 off alias ipv6 off
Come scrive Pat questa non è una soluzione accettabile, ma è l’unica possibile al momento
Stampanti con driver Gutenprint
Dopo aver aggiornato il pacchetto gutenprint, ogni stampante che utilizza con CUPS i driver gutenprint va reinstallata.
Questo è un problema che chi segue il ramo current ed utilizza i driver gutenprint conosce bene.
Stampanti multifunzione HP
Per far funzionare le stampanti multifunzione HP (stampante/scanner) il vostro utente deve essere nel gruppo “lp”, in modo da far funzionare correttamente hp-toolbox. Anche per far funzionare lo scanner devi essere nel gruppo “lp”, questo perché le regole UDEV per HPLIP impostano ad “lp” il gruppo del device.
Rallentamenti con Xfce Terminal
Se notate che il terminale di Xfce, e forse alcune altre applicazioni, vengono visualizzate molto lentamente in X, allora si dovrebbe provare a disattivare esplicitamente le estensionei per il Composite in /etc/X11/xorg.conf, o impostare XLIB_SKIP_ARGB_VISUALS = 1 in uno dei file di iniziliazzazione della vostra sessione prima di far partire X
Potreste usare ~/.profile, ./.bash_profile, esportarla da linea di comando o magari creare un apposito ~/.xinitrc con dentro la variabile. Dipende dal vostro ambiente e dal runlevel con cui partite.
Per maggiori informazioni su questo bug vedere h
ttp://bugzilla.xfce.org/show_bug.cgi?id=2792
Uso del Kernel generic
Pat consiglia di usare sempre il kernel generic smp e non il kernel huge, quest’ultimo da utilizzare come kernel di installazione o di emergenza, nel caso per esempio ci si dimenticasse di creare il file initrd (leggere /boot/README.initrd per le istruzioni). Inoltre invita a non inviare bug report se non riproducibili con il kernel generic.
Per la maggior parte dei sistemi va bene il kernel SMP generic (se funziona) anche se non si ha un processore SMP. Qualche nuovo hardware infatti necessita di aver abilitato l’APIC locale nell’SMP kernel e teoricamente non dovrebbero esserci cali prestazionali usando l’SMP kernel su macchine a singolo processore.
Inoltre i sorgenti del kernel della Slackware sono configurati per l’uso del kernel SMP, quindi se si vuole compilare un modulo esterno (ad esempio driver NVidia o ATI proprietari) non c’è bisogno di modifiche se si usa il kernel SMP.
Se invece si vuole comunque utilizzare un kernel non SMP tutte le info, le patch e gli header si trovano nella directory /extra/linux-2.6.27.7-nosmp-sdk/.
Utilizzando un kernel huge si possono riscontrare errori come questo
kobject_add failed for uhci_hcd with -EEXIST, don't try to register.
Questo succede perché i rispettivi driver sono compilati staticamente nei kernel huge, ma udev cerca ugualmente di caricarli. Si possono ignorare tranquillamente questi errori o mettere in blacklist (/etc/modprobe.d/blacklist) i moduli che il kernel cerca di caricare. Ad ogni modo ricordarsi di rimuovere dalla blacklist questi moduli se decidiamo di usare i kernel generic come raccomandato da Pat.
Partizioni criptate e tastiere USB
Se abbiamo la partizione di root criptata, è necessario disporre dell’accesso alla tastiera nella fase di boot per digitare la password. Questo può richiedere di aggiungere i moduli uhci-HCD e usbhid nell’immagine initram se si dispone di una tastiera USB.
Se inoltre utilizziamo una tastiera non-US, si può utilizzare il parametro -l nel comando mkinitrd per aggiungere il supporto per la nostra codifica. Naturalmente insieme al parametro -C che indica la presenza della partizione criptata.
Per esempio:
mkinitrd -c -k 2.6.27.7-smp -m ext3 -f ext3 -r cryptroot -C /dev/sda1 -l it
Dove cryptroot è il nome dato al device mapper, /dev/sda1 è la partizione “reale” criptata, it è la codifica della tastiera.
Problemi con il tag “mailto:” in Firefox
Se il tag “mailto:” non funziona correttamente in Firefox, provare a rimuovere il file $HOME/.mozilla/mimeTypes.rdf e riavviare Firefox
Cambiamenti in Xorg
La versione di Xorg attualmente in -current in molti casi non richiede la presenza del file /etc/X11/xorg.conf. La configurazione avviene automaticamente tramite HAL.
Per forzare alcune impostazioni, come la presenza di driver video proprietari, si può creare un xorg.conf minimale
Inoltre è possibile che il vecchio xorg.conf dia dei problemi con il nuovo Xorg, quindi prima di fare vari tentativi, provare a rinominare tale file
Se si utilizzano tastiera non-US basta copiare il file /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi in /etc/hal/fdi/policy e modificarlo secondo le proprie esigenze.
Se si preferisce il vecchio metodo di xorg.conf si può utilizzare “X -configure” o “xorgsetup” per genere un xorg.conf adatto al proprio pc e dopo aggiungere le seguenti linee alla voce “ServerFlags” per disabilitare il riconoscimento delle periferiche di input da parte di HAL:
Option "AllowEmptyInput" "false"
Option "AutoAddDevices" "false"
Option "AutoEnableDevices" "false"Configurare un touchpad Synaptics tramite HAL
Se si sta utilizzando un touchpad synaptics e si vuole modificare le impostazioni, copiare il file /usr/share/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi nella directory /etc/hal/fdi/policy/10osvendor/ e modificare il file copiato secondo le proprie esigenze.
Si possono fare anche cambiamenti “al volo” tramite synclient(1)
Kernel Mode Setting
Nel kernel di default il mode setting (MKS) è disabilitato, per abilitarlo aggiungere alle impostazioni di lilo
append = "i915.modeset=1"
Wireless/Bluetooth non attivi dopo il boot
Se la scheda wireless e/o bluetooth non sono attive di default dopo il boot, potrebbe essere necessario caricare il modulo di rfkill-input. Se questo risolve il problema, modificate /etc/rc.d/rc.modules.local, /etc/rc.d/rc.local o il file che utilizzate per il caricamento dei moduli all’avvio.
In alternativa si può creare un file /etc/modprobe.d/rfkill.conf che contenga la seguente linea:
install rfkill /sbin/modprobe -i rfkill ; /sbin/modprobe -i rfkill-input
Consigli e problemi noti della 12.2
Questa parte è relativa ai cambiamenti avvenuti nella 12.2, ma è sempre meglio lasciarla per chi effettua l’aggiornamento dalla 12.1 o da una -current pre 12.2
Cambiamenti in UDEV
UDEV è stato aggiornato in modo evidente con le ultime versioni, quindi non dimenticatevi di controllare (oltre allo script di avvio come segnalato sopra) i file all’interno di /lib/udev/rules.d (nuova directory dove risiedono le regole di udev) e di /etc/udev/rules.d, questo perché vari programmi scrivono ancora in questa directory. In pratica adesso ci sono due directory dove controllare.
Vi è un graduale spostamento delle regole “generali” in /lib/udev/rules.d, mentre le regole personali rimarranno in /etc/udev/rules.d. A questo proposito Pat ci suggerisce che non c’è nessuna ragione per cambiare le regole in /lib/udev/rules.d (se vi è questo bisogno c’è un errore a monte) e se vogliamo sovrascrivere un file, basta crearne uno con lo stesso nome sotto /etc/udev/rules.d, un po’ come succede per HAL.
The system udev rules now reside in /lib/udev/rules.d/ instead of
/etc/udev/rules.d/ in older versions. There should never be a reason
to edit anything in /lib/udev/rules.d/, so if you think you have a case
where this is required, either you’re wrong or it needs to be addressed
in the upstream source. However, you can override default rules by
placing one with an identical name inside /etc/udev/rules.d/
The rules files in /etc/udev/rules.d/ are still intended to (maybe) be
edited as needed by local system administrators.
I file più “importanti” da controllare, in quanto normalmente i più modificati, sono il file delle schede di rete e quello dei dispositivi ottici.
Soprattutto nel caso che si ha più di una scheda di rete va controllato bene il nuovo file.
Le regole sono sempre contenute in /etc/udev/rules.d/70-persistent-net.rules il quale è adesso però generato dal file /lib/udev/rules.d/75-persistent-net-generator.rules
Stesso discorso per i dispositivi ottici, le regole adesso si trovano nel file /etc/udev/rules.d/70-persistent-cd.rules a sua volta generato da /lib/udev/rules.d/75-cd-aliases-generator.rules.
Durante la fase di boot la Slackware controlla la presenza di questi file e se non li trova provvede a crearli automaticamente. Questo fa si che se in futuro vogliamo aggiornare una scheda di rete o un disco, o se stiamo clonando un sistema, basta cancellare questi due file per far ricreare le regole correttamente. Naturalmente potete modificarli voi stessi, se sapete come fare.
Cambiamenti di HAL
HAL ormai non è una novità per gli utenti Slackware, ma Pat ci tiene a precisare alcune cose
1. Gli utenti per avere il permesso di montare le periferiche removibili devono essere nel gruppo plugdev,
2. Gli utenti con il permesso di eseguire il suspend, l’hibernate, lo shutdown ed il reboot tramite HAL dovrebbero essere inseriti nel gruppo power.
3. Gli utenti con il permesso di modificare le impostazioni di rete tramite Wicd dovrebbero essere inseriti nel gruppo netdev
4. HAL tiene conto delle impostazioni in /etc/fstab se queste sono presenti. Quindi bisogna stare attenti a modificare il file /etc/fstab per le periferiche che vogliamo gestire tramite HAL. Per esempio se /etc/fstab non permette di montare le periferiche ai normali utenti (tramite le opzioni users o user) allora anche HAL/dbus non permetterà di farlo. Per maggiori informazioni su come configurare correttamente il file /etc/fstab vedere l’how-to su come configurare fstab
5. Se abbiamo bisogno di modificile i file fdi, questi devono essere posizionati in /etc/hal e non in/usr/share/hal/ e bisogna dargli lo stesso nome di quelli presenti in /usr/share/hal/.
Per esempio per modificare il file /usr/share/hal/fdi/policy/10osvendor/10-ntfs-3g-policy.fdi, che contiene le opzioni di default per il montaggio dei dispositivi con ntfs-3g, bisogna creare un file /etc/hal/fdi/policy/10osvendor/10-ntfs-3g-policy.fdi con le opzioni che desideriamo
Parted come dipendenza di HAL
Come recita il ChangeLog dell’11 Settembre 2008
l/parted-1.8.8-i486-1.txz: Moved from /extra (this is now a HAL dependency).
Parted, che adesso si trova nella directory l e non più in extra, è diventato una dipendenza di HAL, il quale non funzionerà come dovrebbe senza l’installazione di tale pacchetto. In particolare non sarà più attivo l’automount. Quindi se si notano problemi con HAL controllare prima di tutto di aver installato parted
Cambiamento nome device degli Hard Disk con i nuovi kernel
Con il passaggio al kernel della serie 2.6.27 alcune unità che in precedenza erano considerate come /dev/hd? potrebbero ora essere viste come /dev/sd?, quindi bisogna essere preparati per questa possibilità, per esempio configurando LILO e fstab con UUID o LABEL.
Per vedere come configurare fstab e lilo, rimando alle voci delle man pages, o ai documenti che si trovano in rete.
Per fstab è presente una guida in questo sito.
Se capitassimo in una simile situazione e non abbiamo modificato LILO si può passare il parametro giusto al ”boot”.
Per esempio se avevamo in lilo.conf una voce tipo
root = /dev/hda1
basterà, al ”boot”, passare a LILO il parametro root=/dev/sda1 dopo il nome dell’immagine da avviare.
In una situazione di ”default” della Slackware, al boot bisogna premere TAB e inserire la voce dopo
boot: Linux
che quindi diventerà
boot: Linux root=/dev/sda1
Naturalmente bisogna ricordarsi di modificare la voce corrispondente in lilo.conf una volta avviato il sistema e fatto login
Questo cambiamento non si verifica in ogni sistema, ma potrebbe avvenire su macchine che hanno utilizzato ”libata” con hd?=noprobe, ma non solo, in quanto CONFIG_PATA_LEGACY (libata, /dev/sd?) è ora di default per i controller PATA che richiedono un driver generico.
Per sapere in anticipo come viene visto il device, si può fare il boot con un CD/DVD di Slackware 12.2 e vedere con il comando
# fdisk -l
come viene “visto” il device.
Tutto questo con i kernel standard di Slackware (per avviare e configurare il sistema la prima volta consiglio l’utilizzo del kernel Huge), se utilizziamo un kernel compilato da noi sappiamo già come vengono viste le periferiche
Aggiunta dei driver Synaptics
I driver Synaptics sono entrati a far parte di Xorg con il nome xf86-input-synaptics e quindi sono stati inclusi nella Slackware. Questo fa sì che per chi ha un notebook con touchpad che usa il driver Synaptics non deve più scaricare i driver da repository extra o compilarli.
Va ricordato che in alcuni sistemi, i driver xf86-input-synaptics richiedono che il modulo del kernel psmouse deve essere caricato senza nessuna opzione.
Di default in Slackware è caricato con il protocollo imps, tramite il file /etc/modprobe.d/psmouse, quindi va modificato questo file per non caricare tale protocollo.
Per fare questo basta commentare l’ultima riga, in modo che diventi
#options psmouse proto=impsDal prossimo riavvio il modulo psmouse sarà caricato senza opzioni. Per ricaricarlo senza riavviare basta eseguire da root questi due comandi
# modprobe -r psmouse # modprobe psmouse
Errori di compilazione
Se durante la compilazione di alcuni programmi si riscontrano errori come questi
/usr/include/asm-generic/fcntl.h:117: error: redefinition of 'struct flock' /usr/include/bits/fcntl.h:142: error: previous definition of 'struct flock' /usr/include/asm-generic/fcntl.h:140: error: redefinition of 'struct flock64' /usr/include/bits/fcntl.h:157: error: previous definition of 'struct flock64'
vedere http://patchwork.ozlabs.org/patch/316/ per informazioni e soluzione.
Problemi con cdrecord
Se, quando si prova a masterizzare un cdrom o un dvd, sorgono errori di permessi come questo:
/usr/bin/cdrecord: Operation not permitted. Cannot send SCSI cmd via ioctl
allora probabilmente c’è bisogno di aggiungere il ‘’suid root” ai programmi cdrecord e cdrdao.
Questo però può comportare grossi rischi di sicurezza, quindi Pat propone come soluzione alternativa quella di creare un gruppo apposito e dare i permessi di esecuzione (e di suid) solo al proprietario (root) e ai membri del gruppo.
Un esempio possibile potrebbe essere:
chown root:cdrom /usr/bin/cdrecord /usr/bin/cdrdao
chmod 4750 /usr/bin/cdrecord /usr/bin/cdrdao
Se non si vuole che tutti i membri del gruppo cdrom possano usare questi due programmi, come alternativa si può anche creare un gruppo apposito (come ad esempio burning, consigliato anche da k3b) ed aggiungere a quello gli utenti che possono masterizzare, e quindi utilizzare cdrecord e cdrdao.
Conclusioni
Spero che la guida possa essere stata di aiuto, qualsiasi critica, modifica o aggiunta è ben accetta
Naturalmente l’esperienza e la conoscenza del sistema possono portare ad usare sistemi diversi o a “rischiare” di più nell’aggiornamento. L’importante è sapere sempre cosa si sta facendo e cosa andiamo a modificare. Io ho cercato di fare una guida il più adatta possibile a chi si accinge per la prima volta a passare ad una -current.
Aggiornamenti di questo documento
Cercherò di aggiornare questo documento in base alle modifiche della -current, compresi pacchetti aggiunti e rimossi. Quindi si aggiornerà anche la “data di pubblicazione”, per specificare a quale -current corrisponde.
Se manca qualcosa o se avete suggerimenti/consigli lasciate un commento
Link esterni
- CURRENT.WARNING: ftp://ftp.slackware.com/pub/slackware/slackware-current/CURRENT.WARNING
- UPGRADE.TXT: ftp://ftp.slackware.com/pub/slackware/slackware-current/UPGRADE.TXT
- CHANGES_AND_HINTS: ftp://ftp.slackware.com/pub/slackware/slackware-current/CHANGES_AND_HINTS.TXT
- README_CRYPT: ftp://ftp.slackware.com/pub/slackware/slackware-current/README_CRYPT.TXT
Copyright
Copyright (c) by Corrado “Conraid” Franco
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is available from http://www.fsf.org/licenses/fdl.html.
Tutti i copyright sono di proprietà dei rispettivi detentori, a meno che indicato diversamente. L’uso di un termine in questo documento non inficia la validità di qualunque marchio di fabbrica o marchio di servizio.
Nominare un particolare prodotto o marchio non deve essere considerato come pubblicità.

ciao,
perchè bisogna operare in telinit1?
perchè bisogna installare prima determinati pacchetti? essendo già precompilati e facendo solo un estrai l’installpkg perchè cambia qualcosa nell’ordine in cui li installo?
La guida “ufficiale” per aggiornare una Slackware, che sia da una stable ad una current, o da una stable ad un stable nuova, è sempre il file UPGRADE.TXT
ftp://ftp.slackware.com/pub/slackware/slackware-current/UPGRADE.TXT
Nel runlevel 1 (init 1) non serve andarci sempre, solo in alcune circostanze, ma questo lo devi capire tu con l’esperienza. Quindi se non sai cosa fare, vai in init 1
Quando aggiorni le glibc conviene andarci “sempre”.
Il perché è semplice dirlo, è la modalità a singolo utente, in cui il sistema utilizza il minor numero possibile di servizi, compresi i login. Viene utilizzata normalmente per eseguire operazioni di “straordinaria” di amministrazione, e l’aggiornamento di sistema lo è.
Il perché di aggiornare alcuni pacchetti è riassumibile con “i nuovi programmi hanno bisogno delle nuove librerie, se tu non le installi per prime questi non funzioneranno, e siccome alcuni di essi servono in fase di installazione puoi ritrovarti con il sistema non funzionante già durante l’installazione”.
Uno dei problemi maggiori di aggiornare con software automatici (alcuni software di aggiornamento, per esempio slackpkg, hanno il controllo per installare i pacchetti nel giusto ordine) o non seguendo il file UPGRADE.TXT è proprio la non installazione delle glibc come prima cosa.
Tanto che Robby Workman del team Slackware ha scritto questo documento: http://rlworkman.net/howtos/glibc-recovery
Non conosco il tuo livello di conoscenza del sistema, può anche essere superiore al mio, ma se ti fai queste domande è bene che prendi dimestichezza con la stable, con il modo di operare di Linux in generale e della Slackware in particolare, prima di avventurarti nell’uso di soluzioni non “stabili”.
Salve conraid, da ieri cerco di sincronizzare la cartella /opt/mirror tramite lo script getslack
che hai consigliato ma ricevo sempre
[@ERROR: max connections (35) reached - try again later
rsync error: error starting client-server protocol (code 5) at main.c(1504) [receiver=3.0.5]]
è normale?
Grazie per la tua attenzione!
Quello è solamente un esempio, e mi sa che è meglio se lo cambio, in quanto slackware.com ha accesso limitato, meglio usare un mirror
Prova con:
rsync.slackware.org.uk::slackware/slackware-current
grazie, col nuovo indirizzo funziona!
come sempre ottima guida e promemoria
conraid non so se hai mai provato, io ho provato per curiosità aggiornando alla current una 12.2 su una partizione "testing" in modo non-ortodosso, e ho notato che:
1)aggiornando subito direttamente il sistema con il comando "upgradepkg" senza aggiornare prima le glibc…la slackware boota e xfce in init3 funziona senza problemi;
2)l’aggiornamento ti cancella le librerie Qt3, quando ho provato a ricompilare il kernel, make xconfig mi ha dato errore chiedendomi il pacchetto qt3-devel;
3) che è preferibile non aggiornare il kernel, bensì installare i nuovi pacchetti del kernel con installpkg…onde evitare problemi;
4)kde 3.5.x invece in init4 dopo l’aggiornamento non funzionava, mi dava un’ errore di kdeinit…sinceramente non ho indagato ulteriormente, visto che utilizzo Xfce da tempo e senza problemi…
Ma un aggiornamento non ortodosso come sarebbe?
1) come dice anche Pat, a volte può funzionare altre no.
2) per questo esistono ancora le qt3 in extra
3) qui dipende dai gusti, anche io questa volta ho installato e non aggiornato, ma solitamente aggiorno
4) volevi dire kde4? perché che non funzioni kde3 è normale
riducendo il tutto a 2 soli passaggi:
1)upgradepkg
2)modificare i files di configurazione.
…della serie "tutto il resto è noia…" come canta il califfo in quella famosa canzone oppure restando in tema Unix "keep it simple, stupid.."
)
ciao
Beh Slucky, se cerchi nell’archivio di slacky e di LQ trovi molti utenti che con questo procedimento, o con l’uso di software “automatici” che poi fanno lo stesso, si sono trovati nei “guai”. Anche per questo dal team è uscito un documento su come risolvere queste situazioni
http://rlworkman.net/howtos/glibc-recovery
sì, hai ragione conraid…
la via maestra resta quella che hai indicato nella tua ottima guida!!
diciamo che le altre scorciatoie possibili sono solo variazioni "rischiose" sul tema
Volendo evitare l’aggiornamento della directory /source con getslack, come
bisogna editare lo script? Ho provato aggiungendo nelle OPZIONI la seguente voce
OPZIONI="-avz –delete-after –exclude=$SORGENTE/source/"
ma non mi pare che abbio sortito effetti…
ti esclude ogni directory chiamata source
Io uso un file esterno chiamato exclude-slackware dove inserisco
e poi in rsync aggiungo
Naturalmente per scaricare la localizzazione di kde metto anche un –include-from=include-slackware, con il file così composto
Grazie conraid, sempre gentilissimo…!
ciao, dimmi se questi passaggi possono bastare per aggiornare una current, tieni presente che ho installato direttamente la current:
Quando viene rilasciato un aggiornamento devo dare sempre # rsync -avz –delete-after rsync://rsync.slackware.at/slackware/slackware-current ./ ???
Se hai installato direttamente una current il processo di upgrade varia in base al changelog. Devi capirlo da solo, se non sei sicuro puoi rifare tutto, ma…
Naturalmente se non sono stati aggiornati glib e pkgtools non serve fare l’upgrade di essi, così come se è stato aggiornato software non critico puoi non andare in init 1.
Lilo rilancialo solo se è cambiato il kernel
Una volta passato a current valuta caso per caso, e controlla sempre possibile file .new
rsync devi rilanciarlo sempre sì, altrimenti come allinei la copia locale con quella remota?
Prima ho fatto un po di pasticci…….. adesso ritento.
Mi ha fregato anche questa volta, ho fatto gli aggiornamenti, c’èra il nuovo kernel, installato il tutto, riavvio, sembra che carichi correttamente ma ad un certo punto si ferma, tutto nero, nessuna scritta, ogni volta che c’è il nuovo kernel si presenta questo problema.
Ma sistemi e rilanci lilo dopo l’aggiornamento del kernel?
E se utilizzi il kernel generic ricrei l’initrd?
Forse non mi è chiara la procedura di aggiornamento della current (slackware come OS è stabilissima ma non è per niente facile), per questi ultimi aggiornamenti del 26-27-28 ho dato questi comandi:
$ cd /opt/mirror (questo prima lo hai saltato)
$ rsync -avz –delete-after rsync://rsync.slackware.at/slackware/slackware-current ./
# telinit 1
# cd /opt/mirror/slackware-current/slackware
# upgradepkg a/glibc-solibs-*tgz
# upgradepkg a/pkgtools-*.tgz
# upgradepkg –install-new */*.tgz (ti sei scordato */)
# lilo -v
poi ho riavviato. Dove sbaglio ?
Teoricamente non sbagli niente, ma dipende da come è il tuo lilo.conf e da che tipo di kernel utilizzi.
Leggi la sezione chiamata “Modificare il boot manager”, soprattutto la nota
Magari amplio la sezione con una spiegazione per la creazione dell’initrd, ma chi utilizza la -current dovrebbe conoscere queste cose
Ciao conraid,
ho un problema con l’rsync della current. Seguendo il tuo consiglio, ho creato i file exclude-slackware ed include-slackware. In particolare, il file include sembra non funzionare in quanto la directory /kdei, risulta vuota. ti posto di seguito la composizione dei due file e quella del file getslack
exclude-slackware:
pastureslackware/kdei/*
zipslack
patches
extra/aspell-word-lists
source
testing/source
extra/source
include-slackware:
slackware/kdei/*it*slackware/kdei/k3b*
getslack:
#!/bin/sh -e# Dichiariamo le variabili
SORGENTE="rsync://rsync.slackware.at/slackware/slackware-current"
SORGENTE="rsync.slackware.org.uk::slackware/slackware-current"
SORGENTE="slackware.mirrors.tds.net::slackware/slackware-current"
OPZIONI="-avz --delete-after --exclude-from=exclude-slackware --include-from=include-slackware"
DESTINAZIONE="/opt/mirror/"
# Diamo il comando rsync
/usr/bin/rsync $OPZIONI $SORGENTE $DESTINAZIONE
dove sbaglio?
Grazie!
Prima metti l’include e poi l’exclude
semplice ed efficace, così funziona.
Grazie