Debian 8 "jessie" 升级至 Debian 9 "stretch" 教程

Debian 9 Stretch 已经在 2017 年 6 月 17 号发布,而很多商家的步伐并未那么快,比如某千万云,所以我们可以选择自己升级

本教程会指导你如何在 Debian 8 Jessie 的机器上快速升级到 Debian 9 Stretch

以下安装步骤都在 root 用户下完成,请自行使用 su 命令切换到 root 用户

此教程仅适用于 KVM、Xen 等可以更换内核的虚拟环境或独立服务器,OpenVZ 等无法更换内核的环境是不能升级的

1、备份数据

如果你的机器不是新开的,上面跑了一些服务,那么强烈建议备份好数据,我们推荐你备份所有的软件配置和数据库,因为升级以后,大部分软件都会更新版本,一部分软件甚至是无法滚回的,比如 Mariadb 会升级到 10.1,如果你不备份,而你的数据库没法在新的系统上运行,那么损失就大了

以下内容你可以根据自己的需求来备份

  1. 服务器上应用的源代码,比如 WordPress
  2. 数据库,比如 MySQL, SQLite3, Postgres
  3. 配置文件,比如 Nginx, Apache, DNS, PHP
  4. 邮件和账号
  5. 系统添加的用户和 SSH Key

当然,新开的机器的话,别废话,直接看下面的步骤

2、更新系统

首先检查你当前的系统版本

root@debian ~ # lsb_release -a  
No LSB modules are available.  
Distributor ID:    Debian  
Description:    Debian GNU/Linux 8.8 (jessie)  
Release:    8.8  
Codename:    jessie  

然后按照以下顺序更新系统

apt-get update  
apt-get upgrade  
apt-get dist-upgrade  

建议重启一次

3、替换 sources.list 源文件

Debian 8 代号 Jessie ,我们需要替换 /etc/apt/sources.list 里的源为 Debian 9 的代号 StretchStable

备份一下原来的文件

cp -r /etc/apt/sources.list /etc/apt/sources.list.old  

然后直接替换

sed -i 's/jessie/stretch/g' /etc/apt/sources.list  

当然也可以替换为 stable ,但是我们并不建议这么做,因为未来 Debian 10 成为 stable 版的时候也会自动升级从而可能造成错误

注意的是,如果你的系统带有 /etc/apt/sources.list.d/*.list 文件,也就是某些软件会单独在这个目录下生成 .list 文件,那么也记得对应修改,修改前请先去官网查看是否有 Debian 9 Stretch 版本,没有的话升级就会失败

替换后,你的 /etc/apt/sources.list 文件就会像这个样子

deb http://ftp.debian.org/debian/ stretch main  
deb-src http://ftp.debian.org/debian/ stretch main  
deb http://security.debian.org/ stretch/updates main  
deb-src http://security.debian.org/ stretch/updates main  
deb http://ftp.debian.org/debian/ stretch-updates main  
deb-src http://ftp.debian.org/debian/ stretch-updates main  

4、更新系统

还是老步骤,建议一步一步来

apt-get update  
apt-get upgrade  

5、升级系统

更新完系统之后,就可以直接升级了

apt-get dist-upgrade  

升级过程中会让你选择是否保留旧的配置文件,这个就取决于自行选择,如果出现一长串软件版本更新、CA 证书更新的文本,可以按 q 跳过查看

6、重启并验证系统

全部更新完毕,直接重启系统

reboot  

如果不出意外,重启后进入服务器并验证系统

root@debian ~ # lsb_release -a  
No LSB modules are available.  
Distributor ID:    Debian  
Description:    Debian GNU/Linux 9.0 (stretch)  
Release:    9.0  
Codename:    stretch  

再次提醒,升级系统是个大工程,如在生产环境下进行请务必务必务必备份好数据,如果没备份就直接升级,那么后果自负

如需要帮助或建议,请前往 Telegram 群 @sbfans