自建服务 · 2023年9月16日 0

Linux升级Home Assistant Core版本的方法

由于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版本。

升级后版本截图

至此我们已经完成了升级工作。

心情表态
+1
1
+1
0
+1
0
+1
0
+1
1
+1
0