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.