提要:py编译安装成功,hass安装成功,但安装好hass后使用hass命令启动失败,重启后无法进入系统

编译安装Python3.9

更新系统

# 刷新软件包目录
sudo apt update
# 执行更新
sudo apt upgrade

安装依赖

本轮测试版可以跳过,eMMC附带的系统已经装好了依赖。
后续正式版不确定,最好装一遍。
sudo apt install gcc
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev

下载源码

# 下载
sudo wget https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tar.xz
# 解压
tar -xf Python-3.9.12.tar.xz
# 进入该目录
cd Python-3.9.12/

编译

# 检查依赖与配置编译
sudo ./configure --enable-optimizations --with-lto --enable-shared
# 编译
sudo make
不用make install是因为Makefile里有如下提示:
If you have a previous version of Python installed that you don't want to overwrite, you can use "make altinstall" instead of "make install".
如果用make install会把Python3命令链接到当前的版本,可能会影响其他正在用的项目
# 安装
sudo make altinstall

使用

这时候,如果直接使用python3.9命令会出现如下提示:
python3.9: error while loading shared libraries: libpython3.9.so.1.0: cannot open shared object file: No such file or directory
这是由于编译配置中有 --enable-shared 的选项,所有直接使用python3.9会提示无法找到 libpython3.9.so.1.0 。
只需找到该libpython3.9.so.1.0文件,复制/创建符号链接到 /usr/lib/ 目录下即可
# 找到 libpython 的位置
root@cek:~# whereis libpython3.9.so.1.0
libpython3.9.so.1: /usr/local/lib/libpython3.9.so.1.0

# 在 /usr/lib/ 下创建 libpython 的符号链接
root@cek:~# sudo ln -s /usr/local/lib/libpython3.9.so.1.0 /usr/lib/
这时候再使用python3.9命令就没问题了
root@cek:~# python3.9
Python 3.9.12 (main, Oct 16 2022, 20:46:19)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

安装HomeAssistant

防火墙放开8123端口

或者关闭防火墙
iptables -I INPUT -p tcp --dport 8123 -j ACCEPT

安装依赖

sudo apt-get install -y bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata

创建hass专用账户

用root账户运行多少有点不妥
sudo useradd -rm homeassistant

创建hass工作空间

sudo mkdir -p /home/homeassistant/app/hass
sudo chown homeassistant:homeassistant /home/homeassistant/app/hass

创建虚拟环境

sudo -u homeassistant -H -s
cd /home/homeassistant/app/hass
python3.9 -m venv .
source bin/activate
不出意外的话可以看线如下显示
(hass) homeassistant@cek:~/app/hass$

安装

(hass) homeassistant@cek:~/app/hass$ python3.9 -m pip install wheel
(hass) homeassistant@cek:~/app/hass$ python3.9 -m pip install homeassistant

试运行

(hass) homeassistant@cek:~/app/hass$ hass
等待5-10分钟后浏览器打开如下链接:
因为第一次运行要下载、安装和缓存必要的库/依赖项,所以会稍微慢点。
http://[CEK8902本地IP]:8123
错误
Message: 'Home Assistant core failed to initialize. Further initialization aborted'

大概率是空间不够,用df -h看看,删除点东西

寄了

使用hass命令启动报错:

2022-10-16 23:27:30.887 ERROR (MainThread) [homeassistant.bootstrap] Home Assistant core failed to initialize. Further initialization aborted

猜测是空间不足,使用df -h证实猜想

root@cek:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/system     7.2G  7.1G     0 100% /
devtmpfs        990M     0  990M   0% /dev
tmpfs           995M     0  995M   0% /dev/shm
tmpfs           199M   20M  180M  10% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           995M     0  995M   0% /sys/fs/cgroup
tmpfs           995M  548K  994M   1% /tmp
tmpfs           199M   12K  199M   1% /run/user/1000
tmpfs           199M     0  199M   0% /run/user/0

用apt删除软件包也报空间不足无法执行

尝试reboot重启开发板,重启后网卡灯不亮,SSH无法连接。

连接HDMI,开机卡Logo

开机卡Logo

寄了。

最后修改:2022 年 10 月 26 日
如果觉得我的文章对你有用,请随意赞赏