快速使用hpm-cli编译鸿蒙组件 精华
随着HarmonyOS正式开源,HPM包管理器也应运而生。HPM全称HarmonyOS Package Manager。是一个HarmonyOS组件包管理和分发工具。HPM主要是面向设备开发者,用于获取/定制HarmonyOS源码,执行安装、编译、打包、升级等操作的工具集。
下面就介绍一下如何使用hpm-cli工具来编译HarmonyOS提供的三种解决方案。
Let`s go!
步骤一:环境准备
需要一台 Ubuntu 16.04 及以上 64 位系统(hpm是支持windows的,但是目前鸿蒙开源的三个解决方案都只支持Ubuntu)
将Linux shell改为bash:
ls -l $(which sh)
# 如果指向的不是bash,则按以下方式修改:
# 方法一:执行以下命令,然后选择no
dpkg-reconfigure dash
# 方法二:先删除sh,再重新创建软连接
rm -f /bin/sh
ln -s bash /bin/sh
步骤二:安装nodejs
推荐安装 Node.js 12.x (包含 npm 6.14.4)或更高版本(推荐 12.13.0+):
sudo apt-get install nodejs
sudo apt-get install npm
查看版本:
node --version # 查看nodejs版本
npm --version # 查看npm版本
补充:如果配置的源的nodejs版本太低,可以执行以下语句后再次执行apt-get install:
curl -L https://deb.nodesource.com/setup_12.x | bash
步骤三:安装hpm
通过 Node.js 自带的 npm(使用默认的源 https://registry.npmjs.org/)安装 hpm-cli 命令行工具:
npm install -g @ohos/hpm-cli
步骤四:配置hpm(可选)
查看或修改 hpm 配置:
hpm config [set <key> <value>]
# 或
vim ~/.hpm/hpmrc
常用配置:
registry = https://hpm.harmonyos.com/hpm/registry/api # hpm注册中心地址,下载组件必须
login = https://hpm.harmonyos.com/hpm/auth/pk # hpm处理登录地址,发布组件必须
loginUser = {your-account} # 配置hpm登录账号,发布组件必须
shellPath = /bin/sh # hpm命令执行使用的shell
globalRepo = /root/.hpm/global # 全局安装的组件存放路径
http_proxy = http://your-proxy-server:port # HTTP代理
https_proxy = http://your-proxy-server:port # HTTPS代理
步骤五:安装组件
摄像头类产品: ip_camera_hi3516ev300
1. 准备python环境
需使用python3.7以上版本
sudo apt-get install python3.8
sudo apt-get install python3-pip
sudo pip3 install setuptools
sudo pip3 install kconfiglib # 建议安装kconfiglib 13.2.0+版本
# 如果当前系统中既存在python2又存在python3,参考以下方法将默认python修改为python3
ll `which python`
rm /usr/bin/python
ln -s python3.8 /usr/bin/python
2. 安装文件打包工具
which mkfs.vfat # 如果没找到,执行以下命令安装
sudo apt-get install dosfstools
which mcopy # 如果没找到,执行以下命令安装
sudo apt-get install mtools
3. 初始化目录
mkdir test3518
cd test3518
hpm init -t dist
4. 继承3516发行版
hpm install @ohos/ip_camera_hi3516ev300
5. 编译
hpm dist
6. 完成
成功后./out目录下即为编译产物,快将其烧录到你的设备上看看效果吧~
摄像头+屏幕类产品: ip_camera_hi3516dv300
1. 准备python环境
需使用python3.7以上版本
sudo apt-get install python3.8
sudo apt-get install python3-pip
sudo pip3 install setuptools
sudo pip3 install kconfiglib # 建议安装kconfiglib 13.2.0+版本
# 如果当前系统中既存在python2又存在python3,参考以下方法将默认python修改为python3
ll `which python`
rm /usr/bin/python
ln -s python3.8 /usr/bin/python
2. 安装文件打包工具
which mkfs.vfat # 如果没找到,执行以下命令安装
sudo apt-get install dosfstools
which mcopy # 如果没找到,执行以下命令安装
sudo apt-get install mtools
3. 初始化目录
mkdir test3516
cd test3516
hpm init -t dist
4. 继承3516发行版
hpm install @ohos/ip_camera_hi3516dv300
5. 编译
hpm dist
6. 完成
成功后./out目录下即为编译产物,快将其烧录到你的设备上看看效果吧~
WLAN连接类产品:wifi_iot
1. 准备python环境
需使用python3.7以上版本
sudo apt-get install python3.8
sudo apt-get install python3-pip
sudo pip3 install setuptools
sudo pip3 install kconfiglib # 建议安装kconfiglib 13.2.0+版本
sudo pip3 install pycryptodome
sudo pip3 install six --upgrade --ignore-installed six
sudo pip3 install ecdsa
# 如果当前系统中既存在python2又存在python3,参考以下方法将默认python修改为python3
ll `which python`
rm /usr/bin/python
ln -s python3.8 /usr/bin/python
2. 安装Scons
sudo apt-get install scons # 推荐SCons版本是3.0.4+
3. 初始化目录
mkdir test3861
cd test3861
hpm init -t dist
4. 继承3861发行版
hpm install @ohos/wifi_iot
5. 编译
hpm dist
6. 完成
成功后./out目录下即为编译产物,快将其烧录到你的设备上看看效果吧~
hi3516dv300和hi3518ev300两款的步骤中,初始化目录和继承发行版都不匹配,还是修改一下吧
具体的修改方案大佬这边有方法吗?
摄像头类产品: ip_camera_hi3516ev300
第4步:
继承3518发行版
hpm install @ohos/ip_camera_hi3518ev300
摄像头+屏幕类产品: ip_camera_hi3516dv300
第4步:
继承3516发行版
hpm install @ohos/ip_camera_hi3516dv300
👍👍👍
已修改,感谢您的回复,有你的支持社区才会更加精彩。
请问hpm安装可以,但是编失败了
user101@user101-ThinkPad-E570:~/Documents/test3861$ hpm dist
[WARN] - The license of @ohos/gn is gn LICENSE. Notice open-source risks.
[WARN] - The license of @ohos/gcc_riscv32 is GPL V2. Notice open-source risks.
[WARN] - The license of @ohos/wifi_iot is NA. Notice open-source risks.
Building distribution: @ohos/wifi_iot
/home/user101/Documents/test3861/build/lite/platform/hi3861v100_liteos_riscv/platform.json
/home/user101/Documents/test3861/subsystems_product.json
Command failed: cd ${DEP_BUNDLE_BASE}&&hpm list
失败了!