介绍
警告:本指南的早期版本的Ubuntu包含14.04系统不在话下。 虽然从14.04升级可能会成功完成,LTS版本之间的升级,默认情况下不启用,直到第一点释放,建议等到16.04.1点版本进行升级。 在DigitalOcean系统上,升级的Ubuntu 14.04系统将留下较旧的内核,在一段时间后可能无法升级。
Ubuntu操作系统的下一个长期支持版本16.04(Xenial Xerus)将于2016年4月21日发布。
虽然它在本文撰写时尚未发布,但已经可以将15.10系统升级到16.04的开发版本。 这可能有助于在正式发布日期之前测试升级过程和16.04本身的功能。
本指南将解释包括(但不限于)运行Ubuntu 15.10的DigitalOcean Droplet的系统的过程。
警告:在使用操作系统的主要版本之间几乎所有的升级,这个过程本身故障,数据丢失或损坏的软件配置的固有风险。 强烈建议进行全面的备份和广泛的测试。
先决条件
本指南假定您已经运行Ubuntu 15.10系统,用非root用户配置的sudo
权限管理任务。
潜在的陷阱
尽管许多系统可以在没有事件的情况下升级,但通过从头开始安装分发,通过仔细测试配置服务以及将应用程序或用户数据作为单独的应用程序或用户数据迁移,迁移到主要新版本通常更安全,更可预测步。
如果没有先在升级环境中测试所有部署的软件和服务,就不应该升级生产系统。 请记住,图书馆,语言和系统服务可能发生了实质性变化。 在Ubuntu 16.04中,自上述LTS版本以来的重要更改包括转换到systemd init系统以替代Upstart,强调Python 3支持,而PHP 7代替PHP 5。
升级之前,请考虑读Xenial Xerus发行说明 。
第1步 - 备份系统
在尝试在任何系统上进行重大升级之前,您应确保您不会丢失数据,如果升级失败。 完成此操作的最佳方法是对整个文件系统进行备份。 否则,请确保您有用户主目录,任何自定义配置文件和服务(如关系数据库)存储的数据的副本。
在DigitalOcean Droplet上,最简单的方法是关闭系统电源并拍摄快照(断电确保文件系统更加一致)。 请参阅如何使用DigitalOcean快照,自动备份您的Droplet上的快照过程的更多细节。 验证更新成功后,您可以删除快照,以便不再向其收费。
对于备份方法,这将在大多数的Ubuntu系统的工作,请参阅如何选择适合您的VPS一个有效的备份策略 。
第2步 - 升级当前安装的软件包
在开始发布升级之前,这是最安全的安装所有包的最新版本为最新的版本 。 从更新软件包列表开始:
sudo apt-get update
接下来,将安装的软件包升级到最新的可用版本:
sudo apt-get upgrade
您将看到升级列表,并提示继续。 回答Y(是),然后按Enter。
此过程可能需要一些时间。 一旦完成,使用dist-upgrade
命令,该命令将执行涉及变化的相关性,必要时添加或删除新的软件包升级。 这将处理它可能已经阻碍由一组升级的apt-get upgrade
:
sudo apt-get dist-upgrade
同样,回答y提示继续时,等待升级完成。
现在你有一个向上最新的Ubuntu安装15.10,可以用do-release-upgrade
升级到16.04版本。
第3步 - 使用Ubuntu的do-release-upgrade工具执行升级
首先,确保你有update-manager-core
安装的软件包:
sudo apt-get install update-manager-core
传统上,Debian的发行版已经通过改变APT的升级/etc/apt/sources.list
,指定包库,并使用apt-get dist-upgrade
进行升级本身。 Ubuntu仍然是一个Debian派生的分布,所以这个过程可能仍然工作。 相反,但是,我们将使用do-release-upgrade
,由Ubuntu项目,处理检查新版本,更新提供了一个工具sources.list
,以及一系列其他任务。 这是官方推荐的服务器升级的升级路径,必须通过远程连接执行。
通过运行启动do-release-upgrade
不带任何选项:
sudo do-release-upgrade
如果Ubuntu 16.04尚未发布,您应该看到以下内容:
Checking for a new Ubuntu release
No new release found
为了提升到16.04正式发行前,指定-d
才能使用的开发版本的选择:
sudo do-release-upgrade -d
如果您通过SSH连接到您的系统,可能是使用DigitalOcean Droplet,您将被询问是否要继续。
在Droplet上,通过SSH升级是安全的。 虽然do-upgrade-release
还没有通知我们的,你可以使用可从DigitalOcean控制面板控制台连接到您的飞沫而不运行SSH。
对于由其他提供商托管的虚拟机或托管服务器,您应该记住,丢失SSH连接是一种风险,特别是如果您没有远程连接到系统控制台的方法。 对于您控制的其他系统,请记住,只有在您可以直接物理访问机器时,才能执行主要操作系统升级。
在提示符下,键入y,然后按回车键继续:
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:
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键 。 接下来,可能会警告您未找到镜像条目。 在DigitalOcean系统上,可以安全地忽略此警告并继续升级,因为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
下载新软件包列表并计算更改后,系统会询问您是否要开始升级。 再次,输入y继续:
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
现在将检索新包,然后解包并安装。 即使您的系统连接速度很快,这将需要一段时间。
在安装过程中,您可能会看到各种问题的交互式对话框。 例如,可能会询问您是否要在需要时自动重新启动服务:
在这种情况下,可以安全地回答“是”。 在其他情况下,可能会询问您是否要从正在安装的软件包替换已使用默认版本修改的配置文件。 这通常是一个判断调用,并且可能需要有关本教程范围之外的特定软件的知识。
一旦新软件包完成安装,系统会询问您是否已准备好删除过时的软件包。 在一个股份制没有自定义的配置,它应该是安全的在这里输入y。 您所拥有的大量修改的系统,你可能希望进入D和检查要删除的包的列表,如果它包含任何你需要以后重新安装。
Remove obsolete packages?
53 packages are going to be removed.
Continue [yN] Details [d]y
最后,假设一切顺利,您将被告知升级已完成,需要重新启动。 输入y继续:
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会话上,您可能会看到以下内容:
=== Command detached from window (Thu Apr 7 13:13:33 2016) ===
=== Command terminated normally (Thu Apr 7 13:13:43 2016) ===
您可能需要在此处按键退出到本地提示,因为您的SSH会话将在服务器端终止。 等待系统重新启动,然后重新连接。 在登录时,您应该收到一条消息,确认您现在是Xenial Xerus:
Welcome to Ubuntu Xenial Xerus (development branch) (GNU/Linux 4.4.0-17-generic x86_64)
结论
你现在应该有一个工作的Ubuntu 16.04安装。 从这里,您可能需要调查对服务和部署的应用程序的必要配置更改。 在接下来的几周内,我们将开始针对各种主题发布针对Ubuntu 16.04的DigitalOcean指南。