前天一個(gè)客戶買了一臺(tái)美國(guó)服務(wù)器,裝的ubuntu 14.04,非要說需要16.04,但是提交機(jī)房重裝系統(tǒng),需要收費(fèi),于是我就國(guó)內(nèi)外網(wǎng)站找了一通,終于找到了一個(gè)可以升級(jí)的文章,下面是翻譯的,希望對(duì)一些朋友們有幫助
介紹
警告:與主要版本的操作系統(tǒng)之間的幾乎任何升級(jí)一樣,此過程具有固有的故障,數(shù)據(jù)丟失或軟件配置損壞的風(fēng)險(xiǎn)。強(qiáng)烈建議進(jìn)行全面的備份和廣泛的測(cè)試。
為了避免這些問題,我們建議在可能的情況下遷移到新的Ubuntu 16.04服務(wù)器,而不是就地升級(jí)。升級(jí)時(shí),您可能仍然需要查看軟件配置方面的差異,但核心系統(tǒng)可能具有更高的穩(wěn)定性。您可以按照我們的系列文章了解如何遷移到新的Linux服務(wù)器,以了解如何在服務(wù)器之間遷移。
Ubuntu操作系統(tǒng)的下一個(gè)長(zhǎng)期支持版本16.04(Xenial Xerus)將于2016年4月21日發(fā)布。
盡管在撰寫本文時(shí)尚未發(fā)布,但已可以將15.10系統(tǒng)升級(jí)到16.04的開發(fā)版本。在官方發(fā)布日期之前,這對(duì)于測(cè)試升級(jí)過程和16.04本身的功能可能是有用的。
本指南將解釋包括(但不限于)運(yùn)行Ubuntu 15.10的DigitalOcean Droplets的系統(tǒng)的過程。
先決條件
本指南假定您有一個(gè)運(yùn)行Ubuntu 15.10的系統(tǒng),配置了具有sudo管理任務(wù)權(quán)限的非root用戶。
潛在的缺陷
盡管許多系統(tǒng)可以在不出現(xiàn)事故的情況下升級(jí),但通過從頭開始安裝發(fā)行版,通過仔細(xì)測(cè)試配置服務(wù)以及將應(yīng)用程序或用戶數(shù)據(jù)作為單獨(dú)的應(yīng)用程序或用戶數(shù)據(jù)進(jìn)行遷移,遷移到主要新版本通常更安全,更具可預(yù)測(cè)性步。
如果沒有首先測(cè)試所有已部署的軟件和服務(wù)以防止在升級(jí)環(huán)境中進(jìn)行升級(jí),則不應(yīng)該升級(jí)生產(chǎn)系統(tǒng)。請(qǐng)記住,圖書館,語言和系統(tǒng)服務(wù)可能已經(jīng)發(fā)生了很大變化。在Ubuntu 16.04中,自從上一個(gè)LTS版本發(fā)布以來發(fā)生的重要變化包括轉(zhuǎn)換到systemd init系統(tǒng)以代替Upstart,強(qiáng)調(diào)Python 3支持,以及PHP 7代替PHP 5。
升級(jí)之前,請(qǐng)考慮閱讀Xenial Xerus發(fā)行說明。
第1步 - 備份您的系統(tǒng)
在嘗試對(duì)任何系統(tǒng)進(jìn)行重大升級(jí)之前,如果升級(jí)出錯(cuò),應(yīng)確保不會(huì)丟失數(shù)據(jù)。完成此操作的最佳方法是對(duì)整個(gè)文件系統(tǒng)進(jìn)行備份。否則,請(qǐng)確保您擁有用戶主目錄,任何自定義配置文件以及由關(guān)系數(shù)據(jù)庫等服務(wù)存儲(chǔ)的數(shù)據(jù)的副本。
在DigitalOcean Droplet上,最簡(jiǎn)單的方法是關(guān)閉系統(tǒng)并拍攝快照(關(guān)機(jī)確保文件系統(tǒng)更加一致)。有關(guān)快照過程的更多詳細(xì)信息,請(qǐng)參閱如何使用DigitalOcean快照自動(dòng)備份您的Droplet。當(dāng)您確認(rèn)更新成功后,您可以刪除快照,以便不再為此付費(fèi)。
有關(guān)適用于大多數(shù)Ubuntu系統(tǒng)的備份方法,請(qǐng)參閱如何為您的VPS選擇有效的備份策略。
第2步 - 升級(jí)當(dāng)前安裝的軟件包
在開始發(fā)布升級(jí)之前,為當(dāng)前版本安裝所有軟件包的最新版本是最安全的。首先更新軟件包列表:
· sudo apt-get update
接下來,將安裝的軟件包升級(jí)到最新的可用版本:
· sudo apt-get upgrade
您將看到一個(gè)升級(jí)列表,并提示繼續(xù)。答Ÿ為Yes,然后按Enter鍵。
這個(gè)過程可能需要一些時(shí)間。一旦完成,使用該dist-upgrade命令,該命令將執(zhí)行涉及更改依賴關(guān)系的升級(jí),根據(jù)需要添加或刪除新的程序包。這將處理一系列可能被以下方面阻礙的升級(jí)apt-get upgrade:
· sudo apt-get dist-upgrade
同樣,在提示繼續(xù)時(shí)回答y,然后等待升級(jí)完成。
現(xiàn)在您已安裝了Ubuntu 15.10的最新版本,您可以使用do-release-upgrade它升級(jí)到16.04版本。
第3步 - 使用Ubuntu的發(fā)行版升級(jí)工具執(zhí)行升級(jí)
首先,確保你已經(jīng)update-manager-core安裝了軟件包:
· sudo apt-get install update-manager-core
傳統(tǒng)上,Debian版本可通過更改/etc/apt/sources.list指定軟件包存儲(chǔ)庫的Apt's 以及使用apt-get dist-upgrade自身執(zhí)行升級(jí)來升級(jí)。Ubuntu仍然是一個(gè)Debian派生的發(fā)行版,所以這個(gè)過程可能仍然有效。但是,我們將使用do-release-upgrade由Ubuntu項(xiàng)目提供的工具,該工具負(fù)責(zé)檢查新版本,更新sources.list以及一系列其他任務(wù)。這是服務(wù)器升級(jí)的正式推薦升級(jí)途徑,必須通過遠(yuǎn)程連接執(zhí)行升級(jí)。
do-release-upgrade以無選項(xiàng)運(yùn)行開始:
· sudo do-release-upgrade
如果Ubuntu 16.04尚未發(fā)布,您應(yīng)該看到以下內(nèi)容:
示例輸出
Checking for a new Ubuntu release
No new release found
為了在正式發(fā)布之前升級(jí)到16.04,請(qǐng)指定該-d選項(xiàng)以使用開發(fā)版本:
· sudo do-release-upgrade -d
如果您通過SSH連接到您的系統(tǒng),就像使用DigitalOcean Droplet一樣,系統(tǒng)會(huì)詢問您是否希望繼續(xù)。
在Droplet上,通過SSH進(jìn)行升級(jí)是安全的。雖然do-upgrade-release沒有通知我們,但您可以使用DigitalOcean控制面板上提供的控制臺(tái)連接到Droplet,而無需運(yùn)行SSH。
對(duì)于由其他提供商托管的虛擬機(jī)或托管服務(wù)器,您應(yīng)該記住,丟失SSH連接性是一種風(fēng)險(xiǎn),尤其是如果您沒有其他方式遠(yuǎn)程連接到系統(tǒng)控制臺(tái)時(shí)。對(duì)于您所控制的其他系統(tǒng),請(qǐng)記住,只有當(dāng)您直接訪問機(jī)器時(shí)才能執(zhí)行主要的操作系統(tǒng)升級(jí)是最安全的。
在提示符處輸入y并按Enter繼續(xù):
Reading cache
Checking package manager
Continue running under SSH?
This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.
If you continue, an additional ssh daemon will be started at port
'1022'.
Do you want to continue?
Continue [yN] y
接下來,您將被通知do-release-upgrade正在開啟sshd端口1022 的新實(shí)例:
Starting additional sshd
To make recovery in case of failure easier, an additional sshd will
be started on port '1022'. If anything goes wrong with the running
ssh you can still connect to the additional one.
If you run a firewall, you may need to temporarily open this port. As
this is potentially dangerous it's not done automatically. You can
open the port with e.g.:
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT'
To continue please press [ENTER]
按Enter鍵。接下來,您可能會(huì)被警告沒有找到鏡像條目。在DigitalOcean系統(tǒng)上,忽略此警告并繼續(xù)升級(jí)是安全的,因?yàn)槭聦?shí)上有16.04的本地鏡像。輸入y:
Updating repository information
No valid mirror found
While scanning your repository information no mirror entry for the
upgrade was found. This can happen if you run an internal mirror or
if the mirror information is out of date.
Do you want to rewrite your 'sources.list' file anyway? If you choose
'Yes' here it will update all 'trusty' to 'xenial' entries.
If you select 'No' the upgrade will cancel.
Continue [yN] y
一旦下載了新的軟件包列表并計(jì)算出更改后,系統(tǒng)會(huì)詢問您是否要開始升級(jí)。再次輸入y繼續(xù):
Do you want to start the upgrade?
6 installed packages are no longer supported by Canonical. You can
still get support from the community.
9 packages are going to be removed. 104 new packages are going to be
installed. 399 packages are going to be upgraded.
You have to download a total of 232 M. This download will take about
46 seconds with your connection.
Installing the upgrade can take several hours. Once the download has
finished, the process cannot be canceled.
Continue [yN] Details [d]y
現(xiàn)在將檢索新軟件包,然后解壓縮并安裝。即使您的系統(tǒng)連接速度很快,這也需要一段時(shí)間。
在安裝過程中,您可能會(huì)看到各種問題的交互式對(duì)話框。例如,可能會(huì)詢問您是否要在需要時(shí)自動(dòng)重新啟動(dòng)服務(wù):
在這種情況下,回答“是”是安全的。在其他情況下,可能會(huì)詢問您是否要從正在安裝的軟件包中替換已使用默認(rèn)版本修改的配置文件。這通常是一個(gè)判斷的要求,很可能需要關(guān)于本教程范圍之外的特定軟件的知識(shí)。
一旦新軟件包完成安裝,系統(tǒng)會(huì)詢問您是否準(zhǔn)備刪除過時(shí)的軟件包。在沒有自定義配置的股票系統(tǒng)上,在這里輸入y應(yīng)該是安全的。在一個(gè)經(jīng)過大量修改的系統(tǒng)上,您可能希望輸入d并檢查要?jiǎng)h除的軟件包列表,以備日后重新安裝時(shí)使用。
Remove obsolete packages?
53 packages are going to be removed.
Continue [yN] Details [d]y
最后,假設(shè)一切都很順利,您會(huì)被告知升級(jí)已完成并需要重新啟動(dòng)。輸入y繼續(xù):
System upgrade is complete.
Restart required
To finish the upgrade, a restart is required.
If you select 'y' the system will be restarted.
Continue [yN] y
在SSH會(huì)話中,您可能會(huì)看到如下內(nèi)容:
=== Command detached from window (Thu Apr 7 13:13:33 2016) ===
=== Command terminated normally (Thu Apr 7 13:13:43 2016) ===
您可能需要在這里按一個(gè)鍵退出到您的本地提示,因?yàn)槟?/font>SSH會(huì)話將在服務(wù)器端終止。等待系統(tǒng)重新啟動(dòng),然后重新連接。在登錄時(shí),您應(yīng)該收到一條消息,確認(rèn)您現(xiàn)在使用的是Xenial Xerus:
Welcome to Ubuntu Xenial Xerus (development branch) (GNU/Linux 4.4.0-17-generic x86_64)
結(jié)論
你現(xiàn)在應(yīng)該有一個(gè)工作的Ubuntu 16.04安裝。從這里開始,您可能需要調(diào)查對(duì)服務(wù)和部署的應(yīng)用程序進(jìn)行必要的配置更改。在接下來的幾周內(nèi),我們將開始發(fā)布針對(duì)Ubuntu 16.04的DigitalOcean指南,內(nèi)容廣泛。
如果以上中文對(duì)你來說有翻譯錯(cuò)誤的地方,請(qǐng)看下面原文
https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-ubuntu-16-04-lts