1. 前言
現在的最新版本已經是13.04了,不過一則12.04是所謂的LTS,二來系統是用來做最終示範的,還是保守一點好。另外相信升級的過程都是一樣的
2. 步驟
Linux 升級異常簡單:一個button或一條命令就夠了。之前在GUI裡,點一下“升級”按鈕就行了。現在只能遠程ssh到遠端機器,用console更自然一些(雖然也可以調出software center之類的)
升級命令: do-release-upgrade
3. 過程3.1 問題
不出問題就不叫linux了:)
An unresolvable problem occurred while calculating the upgrade: E:Unable to correct problems, you have held broken packages. This can be caused by:
* Upgrading to a pre-release version of Ubuntu
* Running the current pre-release version of Ubuntu
* Unofficial software packages not provided by Ubuntu"
基本上,應該是已有的11.10版本out of date,和新的(在那之後更新過的)11.10版本有了衝突。這可以從日誌/var/log/dist-upgrade/apt.log中看到,有很多held back的packages. 如果做apt-get -u upgrade,對應的有很多kept back 的cases.
3.2 Solution
sudo apt-get update sudo apt-get dist-upgradesudo apt-get --purge autoremovesudo apt-get autocleansudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')
from
http://askubuntu.com/questions/202730/how-to-fix-the-unable-to-calculate-upgrade-issue-when-upgrading-from-12-04-to
另外同樣的問題:Upgrade to 12.04 Failed due to held back packages
註:儘管都提到要先刪除ppa packages (e.g. using ppa-purge or from SoftwareCenter),我沒有刪也沒有問題---可能本來就從來沒裝過
4. 其他4.1 log filesThe following logs are related to apt upgrades:
/var/log/apt/history.log/var/log/apt/term.log/var/log/dpkg.log
For dist-upgrade, it's
/var/log/dist-upgrade/[apt.log | main.log]
4.2 Advanced Packaging Tools (APT)
這個題目足夠單獨成章甚至系列了。只列幾個連結
APT HOWTO (Obsolete Documentation) 雖說“到期了”但我發現還是很有用。大量詳盡的例子把很多用法解釋的很清楚。至少入門是很好的
DebianPackageManagement - Debian Wiki
基本上,目前理解的階層是:dpkg-deb---> dpkg--->[Apt | apt-get | aptitude CLI mode] ---> [Synaptic | adept | aptitude console mode (ncurses)]
4.3 Other tipsRun Synaptic from command line
Do NOT run GUI apps with sudo. Instead run:
gksudo synaptic
Sudo doesn't setup the environment correctly for GUI apps. The equivelant in KDE is kdesudo
How to keep processes running after ending ssh session?
Use GNU Screen (not maintained anymore), ormore advanced
tmux