> Ubuntu >

Ubuntu 14.04升级脚本无法运行问题解决

itnetcn在升级一台全新安装Ubuntu 12.04的OpenVZ系统到Ubuntu 14.04时遇到了升级脚本无法启动的问题,在这里也做记录。Ubuntu的LTS版本间的升级一般都是建议重装,但有的时候必须通过升级完成,比如没有提供Ubuntu 14.04模板的OpenVZ系统,此时就需要通过运行:

 
1
do-release-upgrade -d

升级。itnetcn升级其他机子时都没有遇到问题,唯独在这台OpenVZ上一运行do-release-upgrade直接出现了以下错误提示:

 
1
2
3
4
5
6
7
Error in sys.excepthook:
Traceback (most recent call last):
  File "/tmp/update-manager-A4Uzdw/DistUpgrade/DistUpgradeViewText.py", line 108, in _handleException
    "\n".join(lines))
  File "/tmp/update-manager-A4Uzdw/DistUpgrade/DistUpgradeViewText.py", line 142, in error
    print(twrap(summary))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

当然错误提示已经很明确说明了错误的原因,即系统的locale环境设置为了ASCII,而升级脚本需要locale环境为Unicode。一般情况下Linux系统在安装时都会设置UTF-8字集的默认语言,而OpenVZ官方的模板一般都不会设置默认的语言,因此就有了这种情况,类似的情况在itnetcn的另外一篇博文中也有提及。

那么解决方法还是老办法了,既然没有设置默认的语言,那就使用locale-gen设置一下系统字集为UTF-8:

 
1
2
locale-gen en_US.UTF-8
dpkg-reconfigure locales

如果想在升级时系统界面语言显示中文,可以设置:

 
1
2
locale-gen zh_CN.UTF-8
dpkg-reconfigure locales

设置完成之后,升级脚本就能正常运行了。

 

(责任编辑:IT)