Oracle Cloud ARM 机器安装宝塔面板错误的解决方法

Oracle Cloud , 一家良心公司,提供免费的 ARM 4核心 24GB内存 200GB硬盘 4Gbps速度 10T流量/月

我拿到了一个新加坡 4C24G ARM 的机器,本着想把旧机器(1C)上的网站迁移到这个ARM机器,结果安装宝塔面板的时候遇到一堆的问题,可见宝塔目前的安装脚本对 ARM 支持力度不是很高.

于是,我摸索了一套方法,我成功用这些方法成功的安装了宝塔并且进行正常使用.

这里我们使用官方的安装脚本进行安装,如果没有意外,你会发现宝塔报错,无法启动 Bt-Panel.
下图使用aaPanel 的截图,aaPanel = 国际版宝塔

我们可以看到,错误是因为 Python 找不到 'gevent' 和 'psutil' 这个模组

那么,是什么原因导致宝塔的安装脚本没有安装到 'gevent' 和 'psutil' 这个模组呢?

通常宝塔安装脚本会直接用他目录 (/www/server/panel/pyenv/pip.txt) 下一个名为 pip.txt 的直接安装所有模组,问题就出在这里 .

pip.txt 里面含有一个名为 pycryptodome==3.9.6 的模组,不清楚是否是 ARM 的兼容原因Python 在安装这个模组时会直接报错. 很不巧的,这个模组在 pip.txt 里面是满靠前的,可是因为报错而中断了安装,导致后面的所有模组包括 'gevent' 和 'psutil' 没有被安装,进而造成这样的问题.

解决方法:

  1. 修改 /www/server/panel/pyenv/pip.txt , 移除 pycryptodome==3.9.6

  2. 使用如下命令重新安装所需模组
    btpip install -r /www/server/panel/pyenv/pip.txt

  3. 输入 bt 重启面板,此时应该就会成功了

第二种错误:没有提示缺少模组,可是提示 ValueError: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 152 from C header, got 144 from PyObject


解决方法:

  1. 输入如下命令重新安装且编译 gevent

btpip install -U --force-reinstall --no-binary :all: gevent

  1. 输入 bt 重启面板,此时应该就会成功了

我自己遇到的问题就是如上的而已,希望可以帮到大家,也希望宝塔可以尽快适配 ARM 机型,这配置拿来建站真的很香 :>