Saturday, October 20, 2012

Verso Fedora 18, con yum

Dopo i ritardi accumulati da Fedora 18, grazie sopratutto ai problemi derivanti dalla riscrittura di Anaconda, ho deciso che ormai le componenti più critiche per il mio utilizzo (GNOME in particolare) sono stabili a sufficienza per poterci lavorare. Ma il problema è, come aggiornare?

Normalmente partirei con una reinstallazione o preupgrade, ma in questo momento l'idea di affidarmi in qualunque modo ad anaconda non mi attrae. Rimane quindi un solo candidato.

Yum

Il wiki Fedora ospita una pagina dedicata agli upgrade via yum e, come potete notare, sebbene la procedura generica non sia particolarmente complicata, gli avvisi e i casi particolari dettagliati nelle sezioni per le diverse transizioni (15->16, 16->17, etc) non rendono proprio attraente la cosa.

Ma visto che questo metodo l'ho già usato in passato, mi prendo questo rischio... Quella che segue è un po' la 'telecronaca' di quello che ho fatto.

Il portatile in questione ha una Fedora 17, repository di default più rpmfusion -free e -nonfree, adobe flash, google chrome e talk plugin, cosa che rende un pelo più problematica la cosa.

Si inizia da un bel backup della /home su un disco esterno, tanto per stare tranquilli.
Quindi si passa a fare un po' di pulizia nei pacchetti. Partiamo da aggiornare tutto con:
# yum update
Poi controllo l'elenco dei pacchetti 'orfani', ovvero non presenti in nessuno dei repository configurati, con:
# yum list extras
fortunatamente non ho nulla di che nella lista, giusto un paio di pacchetti rimasti in giro da f15 e f16 (non sempre è anormale, ma in Fedora 17 tutti gli rpm erano stati ricompilati) che rimuovo con:
# yum remove pyxf86config telephathy-butterfly
A questo punto, seguo la procedura documentata nel wiki.
Prima mi sposto in un terminale con CTRL-ALT-F2, poi eseguo:
# rpm --import https://fedoraproject.org/static/DE7F38BD.txt
# yum clean all
# yum --releasever=18 --disableplugin=presto distro-sync
Facile. Anche troppo. E infatti non funziona :) Questo perchè i pacchetti di RPMFusion non possono essere aggiornati.

A questo punto ci sono due opzioni: la prima è cercare di configurare i repository RPMFusion per usare  quelli per Fedora 18 a cui aggiornare, ma al momento non sembrano contenere molti pacchetti (eccetto i driver binari che sembrano già al loro posto).
Tuttavia, elencando i pacchetti che ho installato con:
yum list installed | grep rpmfusion
noto che sono una decina in tutto, per cui decido di rimuoverli e proseguire con l'upgrade. Questa volta:
# yum --releasever=18 --disableplugin=presto distro-sync
funziona. 1.3Gb di download, 1700 pacchetti e due ore  dopo sono pronto per gli ultimi passi documentati.

Ricostrisco il database rpm (non so se veramente necessario, ma di certo male non fa) con
# rpm --rebuilddb
e infine verifico che il display manager sia attivo (avendo solo gnome, il mio è gdm):
systemctl enable --force gdm.service
e per buona misura, eseguo anche lo step per evitare eventuali problemi di login:
yum reinstall polkit systemd
systemctl restart polkit.service
systemctl restart gdm.service
In effetti dopo il reboot direi che ci siamo :)


Eccetto google chrome che non funziona:
$ google-chrome
/usr/bin/google-chrome: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory
Questo è un problema noto e se cercate in giro troverete diversi consigli per risolvere, incluso quello totalmente errato di creare la so.0 che cerca chrome come link simbolico alla so.1. Ma se hanno aumentato quel numero un motivo c'è. E' che sono incompatibili fra loro :)

Siccome sul bug tracker di chromium dicono di aver risolto il problema nella serie 23, ho rimosso google-chrome ed installato la beta disponibile sempre dal sito di chromium.

Come ho scritto all'inizio, l'upgrade con yum non è fra i metodi supportati. Tuttavia sono contento che, anche se con qualche piccolo ostacolo, anche questa volta abbia fatto il suo dovere.