1 前言

经过一年时间的打磨,本人创建的开源项目 Harmonybrew 已经正式上线!

Harmonybrew 项目是一个将 Homebrew 移植到 OpenHarmony 平台的项目,为鸿蒙用户提供开箱即用的包管理器以及配套的软件仓库,支持运行在鸿蒙 PC、鸿蒙开发板、鸿蒙容器等不同形态的鸿蒙设备上。

开源社区地址:https://atomgit.com/Harmonybrew

2 快速开始

以鸿蒙 PC HiShell 环境为例,安装流程如下:

2.1 卸载冲突软件

如果 PC 中安装有 GitNext 和 DevBox 这两个应用,请将它们卸载。

2.2 打开安全开关

进入“设置”-> “系统”->“开发者选项”,打开“开发者选项”开关。

进入“设置”->“隐私和安全”->“高级”,打开“运行来自非应用市场的扩展程序”开关。

2.3 安装 Homebrew

在终端中执行这句命令进行安装

zsh -c "$(curl -fsSL https://harmonybrew.atomgit.com/install.sh)"

2.4 配置环境变量

按照安装脚本的提示,执行以下命令,将 Homebrew 加入到 PATH 中

echo >> ~/.zshrc
echo 'eval "$(/storage/Users/currentUser/.harmonybrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/storage/Users/currentUser/.harmonybrew/bin/brew shellenv)"

现在可以开始使用 brew 命令了。

3 项目特色

3.1 基于成熟生态

本项目没有选择重复造轮子,而是基于成熟的包管理器 Homebrew 进行鸿蒙移植。

这带来了两大好处:

  1. 体验上:用户可完全按照官方 Homebrew 的操作逻辑在鸿蒙上管理软件包,不需要投入额外的学习成本。
  2. 生态上:我们可以直接继承大部分的 Homebrew formula。超过 60% 的 Homebrew formula 都可以直接在 Harmonybrew 的流水线上编译和测试通过。这使得我们可以快速扩充 OpenHarmony 的命令行生态,无需对每一个软件包单独进行鸿蒙移植。

3.2 立足于开源鸿蒙

本项目生于开源,也优先服务开源。与鸿蒙 PC 生态中许多立足于 HarmonyOS 的项目不同,本项目立足于其上游的 OpenHarmony,将 OpenHarmony 视为 Tier 1 平台。

这让本项目免于与硬件厂商强绑定,得以支持鸿蒙 PC 之外的更多鸿蒙设备,例如鸿蒙开发板、鸿蒙容器等。

开发者可以使用鸿蒙开发版和鸿蒙容器等安全规格更为开放的环境来进行开发、测试和调试工作。在降低硬件门槛的同时,也能提高问题定位效率。

3.3 软件包齐全

软件仓库中现已拥有 2000+ 软件包,当前正在以每天几百个的速度持续增长中。收录的软件包列表可通过 brew formulae 命令或访问 下载数据统计 页面查看。

许多常用软件包已经收录其中:

  • 编译器/解释器:ohos-sdk, node, openjdk, python, go, rust…
  • 构建工具:make, cmake, ninja, m4, autoconf, automake, libtool…
  • 数据库:postgresql, mariadb, redis…
  • GNU 工具集:coreutils, diffutils, grep, gawk…
  • 其他工具:git, strace, patchelf, vim…

3.4 不只是一套包管理器

Harmonybrew,不只是一套包管理器。其开源社区也是一个学习 OpenHarmony 编程技术的地方,可以作为新人开发者融入 OpenHarmony 生态的落脚点。

开源社区里面的很多的脚本和文档我都是当成 OpenHarmony 开发教学案例来写的,这些信息资产在 Harmonybrew 以外的地方也能用得上。

例如:

  1. 我在 常见问题 文档中留下了大量技术干货。讲解了我们是如何移植这个包管理器的、用什么办法继承上游 formula 的,也解析了鸿蒙 PC 上代码签名、应用沙箱、HMDFS 等机制对我们造成的影响,甚至还提供了移植另一款包管理器的案例。
  2. 那些 ohos-xxx 项目就示范了如何将一个开源软件编译到 OpenHarmony 平台上。里面既有交叉编译的案例(ohos-coreutils、ohos-make 等),也有原生编译的案例(ohos-git、ohos-python 等)。
  3. 特色软件 文档中,我提供了一系列的便利工具。这些工具不仅能帮助用户更顺利地在鸿蒙 PC 上完成开发工作,同时也为其他开发者处理同类问题提供了一个可行的思路。
  4. 项目中处处体现了“蹭生态”的艺术,开发者可学习其中思路以提高自己的工作效率。例如 node 这个 formula 就示范了如何在不使用 ohos-sdk 的情况下为鸿蒙编译 C/C++ 程序;例如 goopenjdk 这两个 formula 就示范了如何直接把 Linux 上的应用程序放到 OpenHarmony 上来运行(这两个 formula 是直接下载了 Linux 版的产物作为自举工具链)。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐