提要:py编译安装成功,hass安装成功,但安装好hass后使用
hass
命令启动失败,重启后无法进入系统
编译安装Python3.9
更新系统
代码语言:javascript复制# 刷新软件包目录
sudo apt update
# 执行更新
sudo apt upgrade
安装依赖
代码语言:javascript复制本轮测试版可以跳过,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
下载源码
代码语言:javascript复制# 下载
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/
编译
代码语言:javascript复制# 检查依赖与配置编译
sudo ./configure --enable-optimizations --with-lto --enable-shared
# 编译
sudo make
代码语言:javascript复制不用
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
使用
代码语言:javascript复制这时候,如果直接使用
python3.9
命令会出现如下提示:
python3.9: error while loading shared libraries: libpython3.9.so.1.0: cannot open shared object file: No such file or directory
代码语言:javascript复制这是由于编译配置中有
--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/
代码语言:javascript复制这时候再使用
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端口
代码语言:javascript复制或者关闭防火墙
iptables -I INPUT -p tcp --dport 8123 -j ACCEPT
安装依赖
代码语言:javascript复制sudo apt-get install -y bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata
创建hass专用账户
代码语言:javascript复制用root账户运行多少有点不妥
sudo useradd -rm homeassistant
创建hass工作空间
代码语言:javascript复制sudo mkdir -p /home/homeassistant/app/hass
sudo chown homeassistant:homeassistant /home/homeassistant/app/hass
创建虚拟环境
代码语言:javascript复制sudo -u homeassistant -H -s
cd /home/homeassistant/app/hass
python3.9 -m venv .
source bin/activate
代码语言:javascript复制不出意外的话可以看线如下显示
(hass) homeassistant@cek:~/app/hass$
安装
代码语言:javascript复制(hass) homeassistant@cek:~/app/hass$ python3.9 -m pip install wheel
(hass) homeassistant@cek:~/app/hass$ python3.9 -m pip install homeassistant
试运行
代码语言:javascript复制(hass) homeassistant@cek:~/app/hass$ hass
代码语言:javascript复制等待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无法连接。
寄了。