记一次曲折的系统更新

  • 内容
  • 评论
  • 相关
文章目录
[隐藏]

今天下午看书看得无聊了,想到放博客的VPS好久没有更新软件了,忍不住登陆上VPS准备更新软件。可是不知道是不是以前没注意,反正今天登陆的时候就看到下面的提示:
do-release-upgrade

初次更新

身为中度强迫症患者的我,看到让我更新的提示,肯定忍不住去更新了。于是我在没有备份的情况下,直接在我博客的VPS上按照提示输入do-rekease-upgrade,然后跟着提示一路Y,最后因为腾讯云的默认源没有16.04的源而更新失败。

备份快照

既然没有源,那么我就换个源呗。把腾讯云的内外源换成阿里云的源之后我再次准备升级。但是我突然想到,我万一升级失败了怎么办?然后想到腾讯云有个快照功能,反正现在还是免费试用的,在生产环境上升级系统还是要备份一下的(其实我根本没有重视备份)。
tencetnyun-snap

再度更新

备份完成之后,继续入do-release-upgrade,然后一路Y。终于在十几分钟之后,更新完成了(PS:我的主机虽然是1MB公网带宽,但其实是上行的,下行带宽是10MB,我下载阿里云源能到1.2MB/s,腾讯云这点还是挺良心的,要是下行也1MB,那得更新多久啊! )

PHP启动失败

更新完系统重启之后,立刻打开我的博客,看看环境有没有问题,结果
502
502错误说明nginx正常,估计是php挂了。手动运行php,果然提示错误:

php: error while loading shared libraries: libicui18n.so.52: cannot open shared object file: No such file or directory

恢复

"辛亏之前创建过快照"我当时心想,然后也没去搜索怎么解决这个错误,而是登录后台,关机,恢复快照。完成之后启动VPS,果然一切都恢复正常。可是登录VPS还是提示让我更新,自从注意到这个提示之后,我就再也不能忽视它了。

再度升级及排错

搜索到之前那个问题的解决方法之后,决定再次更新,后悔刚刚没有创建快照,还得重新下载文件更新。更新完成之后,手动下载安装"libicu52_52.1-3ubuntu0.4_i386.deb"。php虽然不报错了,但是还是无法启动。重启安装之后提示

Error establishing a database connection

重新安装mysql-server,然后修改php.ini文件

mysqli.default_socket = /var/run/mysqld/mysqld.sock

挂了几个小时的博客终于恢复正常了,赶紧保存个快照。

插曲

我在vps上运行screenfetch居然让xshell崩溃了,难道因为那些组成ubuntu Logo的符号吗?很奇怪啊。
xshell

最终成果

screenfetch

总结

  • 生成环境上进行大版本升级前一定要备份啊!!!如果这次没有快照&系统更新失败,虽然文件和数据都在,但是恢复起来太麻烦了。
  • 快照能节约时间。有了快照之后进行一些重要的操作就方便多了。目前腾讯云的快照功能还处于免费试用状态,能创建七个快照,希望试用结束之后,能给用户至少要保留一个免费额度。
  • 跨版本更新系统后,最好重新编译安装一下lnmp环境。