新版本的 Ubuntu 默认都是高版本的 Python,至少也是 3.6 以上。但 Farbox 2.0 的运行脚本 xserver 偏偏是用 Python2 写的。为了解决这个问题,绕了半天,解决办法如下:
- Ubuntu 20.04 的仓库里非常奇怪的没有包含 python-pip,因此使用
# apt install python-pip
会报Unable to locate package python-pip
- 从 pypa 的地址拉安装文件
# curl https://bootstrap.pypa.io/2.7/get-pip.py --output get-pip-27.py
,会报说地址已更新 - 从更新的地址拉
# curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip-27.py
,下载成功。用# python2 get-pip-27.py
来安装 pip2,成功。 - 在虚拟环境中,用
$ sudo pip2 install xserver
来安装 xserver,这才符合 python2 的运行环境 - xserver 安装时会编译一些 wheel,可能会报错说
#include <Python.h>
找不到,这是因为缺少 python-dev 的 C 库。Ubuntu 20.04 解决这个问题的办法是在虚拟环境下安装sudo apt install python-dev-is-python2
。再来重新$ sudo pip2 install xserver
- 根据 farbox2.0 的文档,
sudo xserver_package deploy farbox memcache=200mb && sudo xserver start farbox
开启 farbox2.0 容器,成功。 - 然而由于我的 80 端口已经占用,一键架 farbox 的便利反倒成了负担,还得改 docker 启动的配置……
- 在
/home/run/farbox/run.sh
中修改容器的端口映射,然后在主机的 nginx 中修改 location 的代理即可。
Comments