在OpenVZ上将Debian 7升级到Debian 8

Debian最近把jessie从testing移动到了stable,其中一个最大的变化就是把init的sysvinit换成了systemd。直接通过apt-get dist-upgrade会造成container无法启动,因为init系统变了。

OpenVZ近期内没有发布基于jessie的模板,因此想在OpenVZ上使用jessie(或者单纯地不喜欢systemd的话),可以在升级时保留sysvinit,阻止systemd-sysv安装,这样Debian 7可以成功地从wheezy升级到jessie。

方法是通过在/etc/apt/preferences.d/中建立一个文件,比如叫keep-sysvinit,并输入如下内容:

Package: systemd-sysv
Pin: release o=Debian
Pin-Priority: -1

这样apt在升级时将会跳过systemd-sysv,从而阻止替换sysvinit。可以在升级完成后通过apt-get purge systemd && apt-get --purge autoremove来删除systemd的相关包,但是libsystemd0是不能删除的,因为不少软件与之有依赖关系(比如php5-fpm)。

参考:

http://people.skolelinux.org/pere/blog/How_to_stay_with_sysvinit_in_Debian_Jessie.html