开源鸿蒙终端工具Termony编译-WSL版
开源鸿蒙终端工具Termony编译-WSL版
鸿蒙PC开发工具
前言
Termony是一款开源运行在开源鸿蒙PC上的命令行操作工具,可内置多种开源命令行,但需要手动按照规则配置详细的交叉编译链路。
本文介绍wsl环境下编译Termony的步骤。
Termony是什么?
Termony 是一个面向 HarmonyOS 电脑的类 Termux 终端环境,目前仍在开发中。它的目标是在 HarmonyOS 上提供类似 Linux 的命令行体验,支持运行基础命令、编译和执行 C/C++ 程序,并集成了大量实用工具和开发组件。
像我们熟悉的 Linux命令行工具,如bash、fish、gcc、gdb、git、python、vim、tmux、htop、openssh、make、curl 等常用开发与系统工具都有包含。
Termony利用 HarmonyOS 的 HNP 机制 打包原生二进制程序(.hnp 文件),在安装 HAP 时自动解压到 /data/app/ 并创建软链接至 /data/app/bin/。
Termony 是 HarmonyOS 电脑平台上的“Linux 子系统雏形”,为开发者在鸿蒙生态中提供本地化、高自由度的命令行开发环境。
编译环境搭建
Termony编译除了要搭建基础编译环境,还需要用到鸿蒙sdk。
系统环境
- WSL2 Ubuntu 22.04
- 主机内存大于16G
- Windows上配置好hdc等工具
下载源码
$ git clone https://github.com/TermonyHQ/Termony.git 软件包
ws的ubuntu环境,需要安装的基础的软件包可能没有写,但下面的软件包一定需要安装。
# python3.8环境 $ sudoapt-getinstallwgetmake gsed gettext automake coreutils flex cmake yacc libncurses5-dev pkg-config tcl zip nodejs openjdk-8-jdk $ pip3 installmeson=1.2.0 $ pip3 install toml sdk
下载Command Line Tools 6.0.1 Linux版本的工具,解压到某个目录。官网下载地址:最新版本 - 下载中心 - 华为开发者联盟
TOOL_HOME环境变量
注意:TOOL_HOME识别不了~/路径,所以不要偷懒,使用绝对路径。
$ exportTOOL_HOME="/home/test/command-line-tools"编译
前面都准备好了,接下来就开始编译了。编译并不复杂,但太耗时间了。
$ cd Termony $ ./build-linux.sh -b 在WSL环境编译可能要好几个小时,如果编译机器性能好,时间会短些。
编译过程中,会大量的下载源码,所以一定要保持网络畅通,否则代码下载不全,可能会导致编译失败。
遇到错误,查看具体的错误原因,如源码不完整,工具没装,待准备好后,重新编译。
编译成功后的HAP目录
> hvigor Finished :entry:default@SignHap... after 37 ms > hvigor Finished :entry:default@CollectDebugSymbol... after 48 ms > hvigor Finished :entry:assembleHap... after 1 ms > hvigor BUILD SUCCESSFUL in19 s 279 ms 如上提示即为编译成功。
编译好的HAP包有1G多,实在太过庞大。
$ ls entry/build/default/outputs/default/ -lh total 1.4G -rwxrwxrwx 1testtest1.4G Dec 718:46 entry-default-unsigned.hap drwxrwxrwx 1testtest4.0K Dec 7 07:33 mapping -rwxrwxrwx 1testtest533 Dec 7 07:31 pack.info 安装
Termony可能还不支持在DevEco模拟器里的安装,至少我没有安装成功。把模拟器安装挂几次,最终只有放弃了。
需要在实际的鸿蒙PC上安装,官方说明文档也是写的MateBook Pro。安装到鸿蒙PC需要签名,需要执行签名脚本。配置build-profile.json5相关签名,然后执行。
$ ./build-linux -s 签名后即可通过hdc工具将HAP包安装到鸿蒙PC(实际未验证)。
其它
Termony本身是一个HAP,它内部集成了整套工具链,甚至包含qemu。
另外还有两个正在开发中的鸿蒙终端工具,也挺有意思的,是基于qemu开发的。Harmonix和HiSH,这两个工具是同一个开发者,前者是基于qemu-user,后者基于qemu。
这两个终端工具可以直接在模拟器里安装,可以不用编译直接使用。
可能遇到的问题
- 提示git submodule update --init
这种错误,一般是代码没有下载全,需要下载完整的代码才能编译。 - hvigor ERROR: spawn java ENOENT
需要安装openjdk-8-jdk软件包。