由于Home Assistant的依赖经常变化,有时升级Home Assistant Core经常不能仅仅使用“pip3 install –upgrade homeassistant”命令完成(指定版本时提示没有最新的版本号,即No matching distribution found for homeassistant),这就需要我们手动进行依赖的升级。笔者以Home Assistant Core从2023.7.5升级至2023.9.2为例,介绍如何正确在Ubuntu上升级Home Assistant。
在升级前,建议首先关闭Home Assistant的Service:
sudo service home-assistant@homeassistant stop
一、无需升级依赖的情况
请首先尝试直接使用命令进行升级。由于参照官方安装方法Home Assistant是安装在虚拟环境(virtual environment)中的,所以需要在环境目录下以homeassistant账户运行升级命令。
/bin/sudo -u homeassistant /srv/homeassistant/bin/pip3 install --upgrade homeassistant
等待完成下载和升级。如果未能升级到最新版本,说明目前所安装的依赖(Python版本)不满足最新版本的需求。
二、需要升级依赖的情况
首先安装新版本Python。在Home Assistant 2023.9至少需要Python 3.11,其他版本可自行替换文中Python版本。
sudo apt update
sudo apt install python3.11
接着需要改变系统默认Python,此处采用先前提到的update-alternatives方法:
新建Python版本3.11:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1
新建Python3版本3.11:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
然后检查python和python3命令是否为我们所设置的版本
python --version
python3 --version
然后根据官方安装方法所提到的依赖,进行安装:
sudo apt-get install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata ffmpeg liblapack3 liblapack-dev libatlas-base-dev
其他版本请自行查看要求,在官方安装方法的“Install the dependencies”下方给出。
我们还需要安装两个包,以分别应对虚拟环境和编译时头文件:
sudo apt install python3.11-venv python3.11-dev
至此就完成依赖的更新工作,我们继续回到虚拟环境去升级Home Assistant。依次输入以下命令进入虚拟环境。
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
继续尝试执行升级命令:
pip3 install --upgrade homeassistant
或者手动指定Home Assistant的版本号
pip3 install --upgrade homeassistant==2023.9.2
等待下载安装更新完成后,启动Home Assistant。请注意,大版本更新后启动需要比较长的耗时,请耐心等待。
sudo service home-assistant@homeassistant start
启动后进入“配置-关于 Home Assistant”,发现我们已经成功将Home Assistant Core升级至最新的2023.9.2版本。
至此我们已经完成了升级工作。
近期评论