NEWS

新闻

了解openKylin最新资讯,关注社区和产品动态。

NEWS

Learn about the latest news.

【技术专栏】openKylin龙芯新世界架构打包Electron应用实战

2026-02-28 10:08:03

当Electron应用开发者或社区爱好者有意向将感兴趣的Electron应用程序迁移至openKylin系统的loong64新世界架构环境时,通常会面临缺乏依赖、loong64新世界架构支持不全等问题。现以Listen1(一款开源且免费的全平台音乐聚合工具)为实践案例,详细说明在openKylin系统环境下将Electron应用封装为适配loong64架构的deb软件包的具体操作流程。

部署基本编译环境

首先,在openKylin 2.0 SP2的loong64架构系统上部署chroot调试环境,可参考往期《【小白课程】一文教你调试OKBS编译错误》一文。

1、下载Listen1源码并初始化仓库

# 克隆项目到本地
git clone https://github.com/listen1/listen1_desktop.git
# 进入项目目录
cd listen1_desktop
# 更新子模块代码
git submodule update --init --recursive

2、安装打包基础依赖

sudo apt install npm dh-make build-essential

*openKylin的nodejs已经原生支持loong64架构,可放心直接使用。

3、配置龙芯社区npm源

npm config set registry https://registry.loongnix.cn:5873

*请注意配置端口号为5873,龙芯社区npm源中,4873端口号是旧世界龙芯npm仓库,5873端口号是新世界龙芯npm仓库。

4、配置使用系统fpm

# 安装ruby
apt install ruby-dev
# 使用ruby安装fpm
gem install --no-document fpm
# 设置系统变量,使项目打包时用系统变量
export USE_SYSTEM_FPM="true"

安装Electron

Electron可以使用龙芯社区贡献者darkyzhou(electron-loong64,Electron龙架构构建工具作者)移植打包的版本,Github地址为:

https://github.com/darkyzhou/electron-loong64

安装命令如下,其中THE_VERSION修改为您项目打包所需要的Electron版本:

ELECTRON_MIRROR="https://github.com/darkyzhou/electron-loong64/releases/download/" electron_use_remote_checksums=1 npm install electron@THE_VERSION --save-dev

检查是否安装正常:

  • 有无正常生成node_modules目录;

  • node_modules下是否安装并存在node_modules/electron/dist/electron可执行文件;

  • node_modules/electron/dist/electron --no-sandbox --version是否能正常输出版本号:如果报缺少so库,请自行安装对应的deb到chroot中;

安装并修改Electron-Builder

有部分Electron应用使用Electron-Builder来打包deb包,Listen1也是如此。由于官方npm源中的Electron-Builder暂不支持loong64新世界架构打包,因此需要我们安装后手动修改部分代码使其支持loong64打包。

1、下载Electron-Builder

npm install electron-builder --save-dev

2、检查是否正常安装

npx electron-builder --version

3、修改electron-builder代码使其支持loong64打包

该步骤原理为找到项目中全部electron-builder/out/builder.js,全面替换arm64字符串为loong64,使其支持loong64参数打包。当然,如果比较熟悉nodejs的爱好者可以采用添加支持loong64选项的方式来修改代码,此处为了帮助大多数爱好者采取了较为简便的方法。

# 找到electron-builder/out/builder.js
# 整个项目中都要找齐这个electron-builder/out/builder.js
# 原理:全面替换arm64为loong64,使其支持loong64参数打包
for i in $(find . -name "electron-builder/out/builder.js")
do
    sed -i 's/arm64/loong64/g' $i
done

修改项目packages.json文件

以Listen1为例,packages.json的编译指令中配置了架构相关内容,如下所示:

{
  "name": "listen1",
  "version": "2.33.0",
  "description": "One for all free music in China",
  "main": "app/main.js",
    "scripts": {
      ...
      "dist:linuxArm64": "electron-builder --linux --arm64",
      ...
  },
  ...
}

注意看项目中的"scripts" -> "dist:linuxArm64",里面调用了"electron-builder --linux --arm64"参数,这时就应该模仿这个写法,添加一个"electron-builder --linux --loong64"的调用参数。整体修改如下:

{
  "name": "listen1",
  "version": "2.33.0",
  "description": "One for all free music in China",
  "main": "app/main.js",
  "scripts": {
      ...
      "dist:linuxArm64": "electron-builder --linux --arm64",
      "dist:linuxLoong64": "electron-builder --linux --loong64",
      ...
  },
  ...
}

此时,Listen1项目的loong64新世界架构打包命令就变成:

npm run dist:linuxLoong64

项目编译打包完成后就会生成loong64架构的deb安装包,至此关于openKylin龙芯新世界架构打包Electron应用的实战教程结束了,欢迎各位爱好者和应用开发者到openKylin上打包分发开源Electron项目!

OpenAtom openKylin是由开放原子开源基金会孵化及运营的开源项目,由基础软硬件企业、非营利性组织、社团组织、高等院校、科研机构和个人开发者共同创立。

社区以“为世界提供与人工智能技术深度融合的开源操作系统”为愿景,旨在于开源、自愿、平等、协作的基础上,共同打造全球领先的智能桌面操作系统开源根社区,推动Linux开源技术及其软硬件生态繁荣发展。

审核:openKylin