官网教程https://developers.home-assistant.io/docs/development_environment
下方流程在撰写时经过反复尝试,如非必要请勿更改执行流程(例如使用python管理软件安装python12),同时建议严格按照文章中的快照点进行快照拍摄。
下图为本文尝试过程展示,无需模仿。虽然只有几个快照,但回退了无数次,才找到下文比较稳定的安装流程
一、开发环境
1、安装ubuntu
使用Ubuntu 22.04.5 LTS
下载后在WMware进行运行。
同时安装VScode。
2、更换阿里云源
1)备份/etc/apt/sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2)编辑源列表文件,nano ctrl+K删除行,vim dd删除行
sudo nano /etc/apt/sources.list
3)替换为阿里云源
粘贴下方内容到/etc/apt/sources.list
注意,下方为Ubuntu 22.04 (Jammy Jellyfish)专用
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
4)更新软件包列表
sudo apt update
5)升级已安装的软件包(可选)
sudo apt upgrade
在此拍摄虚拟机快照
3、升级python版本到12
1)安装必要依赖
sudo apt install -y software-properties-common build-essential libbz2-dev libssl-dev libreadline-dev libsqlite3-dev libncurses5-dev libgdbm-dev libnss3-dev libatk1.0-0 libx11-xcb1 libxkbcommon0 libxrender1 libxext6 libx11-6 libxfixes3 libxdamage1 libxcomposite1 libxcursor1 libxrandr2 libpangocairo-1.0-0 libpango-1.0-0 libgtk-3-0 libdbus-1-3 libexpat1 liblzma5 zlib1g libffi-dev libdb-dev libgdbm-dev liblzma-dev tk-dev uuid-dev libnsl-dev zlib1g-dev
2)下载python3.12源码
访问https://www.python.org/ftp/python/,查看有哪些版本可供选择,替换掉下方全部的3.12.7(不替换也行)
wget https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz
tar -xf Python-3.12.7.tgz
cd Python-3.12.7
3)编译和安装,建议一步一步来
./configure
make -j $(nproc)
sudo make altinstall
4)验证python3.12和pip3.12是否安装成功
python3.12 -V
pip3.12 -V
在此拍摄虚拟机快照
5)创建软链接
sudo ln -sf /usr/local/bin/python3.12 /usr/bin/python3
sudo ln -sf /usr/local/bin/python3.12 /usr/bin/python
sudo ln -sf /usr/local/bin/pip3.12 /usr/bin/pip3
sudo ln -sf /usr/local/bin/pip3.12 /usr/bin/pip
6)修复terminal无法快捷键呼出问题
sudo apt-get install -y libcairo2-dev gir1.2-gobject-2.0 libgirepository1.0-dev
pip3 install PyGObject
验证python、python3命令版本是否正确,ctrl+alt+T是否能打开terminal,若均正常则拍摄虚拟机快照
二、拉取代码
1、前往https://github.com/home-assistant/core,点击Fork
2、在虚拟机桌面打开终端,拉取fork的代码
sudo apt install git
git clone https://github.com/YOUR_GIT_USERNAME/short_name_of_your_fork
3、保存备份文件,可不执行这一步
cp -r short_name_of_your_fork HAbak
或将文件保存到宿主机,避免恢复快照带来的下载内容丢失
4、进入拉取的代码文件夹
cd short_name_of_your_fork
5、添加远程仓库
git remote add upstream https://github.com/home-assistant/core.git
6、安装环境
script/setup
7、进入安装的虚拟环境,以后每次启动新的终端后都要这样做
source venv/bin/activate
8、运行hass
hass -c config
9、ubuntu浏览器访问127.0.0.1:8123即可,中途就能访问成功,但一般是到显示下图才是启动完成