Ubuntu Precise 12.04 LTS 升級問題解決方法

沒想過在升級第二台 Ubuntu Oneiric 11.10 到 Precise 12.04 LTS 時,會遇上一些問題,所以寫了這篇 blog 來記述一下。

兩天前把第一台 (Lenovo ThinkPad T400s) Oneiric 11.10 升級時,只是使用「更新管理員」 (update-manager) 然後按下「升級至 12.04」,便能順利升級了。

解決 Couldn’t configure pre-depend libtinfo5 for libncurses5 問題

今天便把第二台 (Core2Duo + Gigabyte Intel G33 底板的自組機) Oneiric 11.10 升級時,同樣使用「更新管理員」 (update-manager) 然後按下「升級至 12.04」,在下載新套件後,卻出現以下錯誤。

無法安裝升級,提交時發生錯誤
‘E:Couldn’t configure pre-depend libtinfo5 for libncurses5, probably a dependency cycle.’
回復原有系統狀態

經過 google 後,至少有兩個方法可以嘗試解決。第一個方法是先升級 apt 套件後再升級 (Bug #924079),第二個方法是先升級 libtinfo5、libncurses5 及 libncursesw5 套件後再升級,我選擇了先升級 apt 的方法。

$ sed ‘s/oneiric/precise/g’ -i /etc/apt/sources.list
$ apt-get update
$ apt-get install apt python-apt
$ sed ‘s/precise/oneiric/g’ -i /etc/apt/sources.list

然後再使用「更新管理員」 (update-manager) 然後按下「升級至 12.04」,便可解決上述問題。

解決 USB 鍵盤滑鼠不能用問題

在更新管理員完成升級後,指示我重新啟動電腦。在重新啟動電腦後,在出現 LightDM 用戶登入畫面後,便發現我的 USB 鍵盤 keybOneiric 11.10 的 3.0.0 舊版本 kerneloard 和 mouse 也不能用!!!因為尚未登入,Network Manager 沒有自動經 DHCP 拿取 IP 地址,所以也不能經由網絡以 SSH 登入。 orz

使用過另一個 Linux 系統 mount 了 Precise 的硬碟分區來看 log,發現 kernel 不能偵測到 USB keyboard 和 mouse。還找到 init: Failed to create pty – disabling logging for job 等問題。

經過 google 閱讀不同類似情況後 (Bug #990870) [1] [2] ,最後嘗試在啟動電腦後 grub 開機 boot loader,在「Ubuntu, with Linux 3.2.0-24-generic」 一行上按 e 編輯修改設定,來載入仍在系統上的 Oneiric 11.10 的 3.0.0 舊版本 kernel

linux    /boot/vmlinuz-3.2.0-24-generic root=UUID=c3efdcfb-589d-4103-a147-c7435f45ffff ro   quiet splash

把上述一行改為以下一行,然後接 F10 去啟動系統。USB Keyboard 和 Mouse 在舊 kernel 下仍能使用,在LightDM 用戶登入畫面 就能進入 Unity 或 GNOME。

linux    /boot/vmlinuz-3.0.0-17-generic root=UUID=c3efdcfb-589d-4103-a147-c7435f45ffff ro   quiet splash

登入後,啟動終端機 (terminal) 並執行以下 apt-get 指令。

$ sudo apt-get -f install

然後 apt-get 會繼續進行未完成的套件安裝和設定,終於能用 USB keyboard 和 mouse 了!!!