因为 Ubuntu 10.04 不再官方维护 Xen 软件包了(),所以以后要想在这两大平台上用到 Xen 的话就需要自己亲自下载 Xen 源代码编译安装(当然也可以用第三方源)。今天 VPSee 在一台 Ubuntu 10.04 服务器上升级 Xen 到 4.0.1 的时候遇到一个问题,按照 上的步骤编译和安装都正常,启动 Xen 内核也没问题,最后启动 xend 的时候报错如下:
$ sudo /etc/init.d/xend start Traceback (most recent call last): File "/usr/sbin/xend", line 36, in from xen.xend.server import SrvDaemon ImportError: No module named xen.xend.server Traceback (most recent call last): File "/usr/sbin/xend", line 36, in from xen.xend.server import SrvDaemon ImportError: No module named xen.xend.server .Traceback (most recent call last): File "/usr/sbin/xend", line 36, in from xen.xend.server import SrvDaemon ImportError: No module named xen.xend.server .Traceback (most recent call last): File "/usr/sbin/xend", line 36, in from xen.xend.server import SrvDaemon
刚开始怀疑是 Python 版本问题,后来查了一下 /usr/sbin/xend 文件发现第36行:from
xen.xend.server import SrvDaemon 在导入 SrvDaemon 就报错,xend 可能没有找到 xen
tools,怀疑和安装路径有关。Ubuntu 上 Python 的默认安装在 /usr/lib/python2.6/ 下面,如果不设定
PYTHON_PREFIX_ARG 参数手动编译安装 xen tools 后也会默认安装到
/usr/lib/python2.6/,这样就出问题了,因为 xend 会默认从
/usr/local/lib/python2.6/dist-packages/ 找 script 和导入库,但是这时候
/usr/local/lib/python2.6/dist-packages/ 下面什么东西都没有。
所以要改变 install-tools 的默认安装路径到 /usr/local/lib/python2.6/dist-packages/ 下,PYTHON_PREFIX_ARG 不带任何参数就可以了:
$ sudo make install-tools PYTHON_PREFIX_ARG=
最后检查一下是否能正常启动 xend:
$ sudo /etc/init.d/xend start $ sudo xm list Name ID Mem VCPUs State Time(s) Domain-0 0 3713 4 r----- 6.4