dpkg parse error durante l’aggiornamento a Ubuntu 10.10 Alpha 3

Ho riscontrato un errore di dpkg durante l’aggiornamento dall’alpha 2 a Ubuntu 10.10 Alpha 3. L’errore si presentava più o meno così:

dpkg: parse error, in file '/var/lib/dpkg/status' near line 42747 package 'virtualbox-3.1':
error in Version string `3.1.6-59338_Ubuntu_karmic': invalid character in revision number
E: Sub-process /usr/bin/dpkg returned an error code (2)

Ho provato inizialmente a eseguire da terminale:

sudo dpkg --clear-avail

Ma non ha sortito alcun effetto positivo, quindi ho dato il comando (suggerito anche sul forum di Ubuntu):

sudo dpkg --configure -a

Ma anche in questo caso eseguendo “sudo apt-get upgrade” continuava a presentarsi quel messaggio di errore. La soluzione l’ho trovata sul forum di Eeebuntu grazie all’aiuto di Google. Il problema risiede negli undescore (_) presenti nel nome del pacchetto virtualbox installato sulla mia Maverick e nella poca “tolleranza” di dpkg che si pianta in presenza di caratteri non consentiti. Ecco con un solo comando come è possibile risolvere il problema:

sudo sed -i -e '/^Version:/ s/[^-a-zA-Z0-9:.+~ ]/+invalid+char+/g' /var/lib/dpkg/status /var/lib/dpkg/available

Il comando, attraverso sed e l’utilizzo di espressioni regolari va a ripulire i caratteri non consentiti in /var/lib/dpkg/status. Dopo il comando sarà necessario eseguire nuovamente:

sudo apt-get update

e

sudo apt-get dist-upgrade

per poter portare a termine l’aggiornamento, questa volta senza errori.