国产麒麟系统 kylin 里面 nwjs 怎么打包安装应用并且怎么支持 arm 跟 amd 两种内核?

本篇文章主要是我进行国产系统信创化过程中实现 nwjs 客户端国产化中的总结,不足之处还望指出,各位道友请了。

下面我以 kylin 系统 amd 这个内核来写一下打包安装的过程,这两个内核的版本打包安装我都已经在国产麒麟系统 kylin 里面实现了打包安装。只是支持 arm 的 nwjs 版本下载链接我没有找到,用的是之前项目信创的一个 arm 版本文件。如果有知道支持 arm 内核的 nwjs 版本下载链接的道友,还望提供一下,在此先行谢过道友。

1、打包前的准备工作

1.1 准备前端包相关资源

我们在 /data/kaimo/app 数据盘 kaimo 文件夹下面新建 app 文件,里面放我们打包好的前端包以及配置文件,图片,以及配置文件里面需要的依赖

ApprKaimoWeb 这个就是我们的前端包

1.2 下载 nwjs 包

这里我们去官网下载 nwjs 支持 linux amd 版本的,以 0.60.0 为例

下载地址:https://dl.nwjs.io/v0.60.0/

下载完之后,解压到 kaimo 文件夹里面

1.3 编写打包脚本

在 kaimo 文件夹里面新建 build-deb-amd64.sh 脚本用来创建 deb 文件

bash 复制代码
#!/bin/bash
# 此文件需要在国产化 linux destop 终端下执行,如银河麒麟
# 设置变量
APP_NAME="ApprKaimoWeb"
VERSION="1.0.0"
ARCH="amd64"  # 如果是不同架构,这里修改,例如 amd64, armhf 等
# 基础路径
BASE_DIR="/data/kaimo"
APP_DIR="${BASE_DIR}"
DEB_DIR="${BASE_DIR}/ApprKaimoWeb-amd64"
# nwjs的包路径
NWJS_PATH="${APP_DIR}/nwjs-v0.60.0-linux-x64"
# nwjs的配置文件路径
PACKAGE_JSON_PATH="${APP_DIR}/app/package.json"
# 前端静态资源路径
STATIC_FILES_PATH="${APP_DIR}/app"
# 桌面文件路径
DESKTOP_FILE="${DEB_DIR}/usr/share/applications/${APP_NAME}.desktop"
ICON_PATH="${DEB_DIR}/usr/share/icons/hicolor/128x128/apps/${APP_NAME}.png"

# 目标安装路径改为 /data/kaimo/install
INSTALL_BASE="/data/kaimo/install"
INSTALL_DIR="${INSTALL_BASE}/${APP_NAME}"

# 创建 deb 文件夹结构
mkdir -p ${DEB_DIR}/DEBIAN
mkdir -p ${DEB_DIR}${INSTALL_DIR}/app
mkdir -p ${DEB_DIR}/usr/bin
mkdir -p ${DEB_DIR}/usr/share/applications
mkdir -p ${DEB_DIR}/usr/share/icons/hicolor/128x128/apps

# 复制 NW.js 文件和应用文件到相应目录
cp -r ${NWJS_PATH}/* ${DEB_DIR}${INSTALL_DIR}/
# 复制图标文件
cp ${APP_DIR}/app/icon.png ${ICON_PATH}
cp -r ${STATIC_FILES_PATH}/* ${DEB_DIR}${INSTALL_DIR}/app/
cp ${PACKAGE_JSON_PATH} ${DEB_DIR}${INSTALL_DIR}/app/

# 创建启动脚本
echo "#!/bin/bash
${INSTALL_DIR}/nw ${INSTALL_DIR}/app" > ${DEB_DIR}/usr/bin/${APP_NAME}
chmod +x ${DEB_DIR}/usr/bin/${APP_NAME}

# 创建桌面快捷方式
echo "[Desktop Entry]
Name=KAIMO测试客户端
Exec=/usr/bin/${APP_NAME}
Icon=/usr/share/icons/hicolor/128x128/apps/${APP_NAME}.png
Terminal=false
Type=Application
Categories=Utility;" > ${DESKTOP_FILE}

# 创建 control 文件
echo "Package: ${APP_NAME}
Version: ${VERSION}
Section: utils
Priority: optional
Architecture: ${ARCH}
Maintainer: kaimo313@foxmail.com
Description: Reserve and client NW.js Application" > ${DEB_DIR}/DEBIAN/control

# 打包 .deb 文件
dpkg-deb --build ${DEB_DIR}

# 提示完成
echo "创建deb成功:${APP_NAME}_${VERSION}_${ARCH}.deb"

2、在国产系统里面打包

第一步我们已经创建下载了打包需要的文件,下面我们开始进行打包

鼠标右击,打开终端

在 kaimo 的目录执行下面命令即可,就会在当前文件夹下面生成对应的 deb 文件

bash 复制代码
sh ./build-deb-amd64.sh

如果有提示认证,选择允许即可

成功之后就会生成两个文件,一个是 deb 的包,一个是非 deb 的,到时我们安装的就是 deb 文件。

我们可以看一下非 deb 里面有啥,这些就是创建 deb 需要的文件结构,具体里面其他文件夹可以自己去看一下。

3、在国产系统里面安装

第二步里面我们成功生成了 deb 文件,下面就基于这个 deb 开始进行安装

在刚才打开的终端里面,我们输入下面安装命令

bash 复制代码
sudo dpkg -i ./ApprKaimoWeb-arm64.deb

然后输入电脑密码,点击允许

安装好之后

我们右击刷新,就能看到安装文件夹了

进去可以看到在原来的 nwjs 包里面多了一个 app 的文件夹

而这个 app 里面就是我们 kaimo 文件夹里面准备的前端相关的资源

4、创建桌面快捷方式

然后我们去 usr/share/applications 文件夹里,就能找到我们的桌面文件了

然后右击文件,发送到桌面

我们在桌面右击快捷方式,选择属性

勾选属性只读,然后确定即可。

这样我们的安装就完成了

如果是 arm 内核的话,这个快捷方式有点不太一样,需要右击的时候,去权限找到执行勾选上允许以程序执行文件,然后关闭,在桌面右击刷新即可,其他方面也是一样的做法,安装过程需要使用 arm 的 nwjs 包,以及脚本修改一下内核。

相关推荐
劳埃德福杰7 天前
【Kylin银河麒麟】文件系统磁盘空间满导致无法进入操作系统
运维·服务器·电脑·笔记本电脑·kylin
紫郢剑侠13 天前
【C语言编程gcc@Kylin | 麒麟 】5:获取系统启动时间
c语言·开发语言·kylin·gcc·麒麟操作系统
l1t15 天前
用官方安装脚本安装duckdb 1.5并测试加载各种插件
数据库·docker·postgresql·kylin
l1t16 天前
在ARM64 KyLin计算机上安装llama.cpp
大数据·llama·kylin
66清小风16 天前
服务器安装操作系统报X or window manager startup failed, falling back to mode
linux·kylin
l1t16 天前
在华为arm64 kylin计算机上安装docker编译llama.cpp的步骤
华为·docker·llama·kylin
ascarl201016 天前
Kylin V10 服务器,解决Xorg 占用内存很高的问题
服务器·github·kylin
LinuxGeek102416 天前
从Centos-7迁移和升级到(银河麒麟)Kylin V7的教程
python·centos·kylin
运维老司机16 天前
国产鲲鹏服务器 Kylin Linux 部署 TiDB v8.5.5 实战(TiUP 单机部署完整教程)
linux·服务器·kylin
ZFB00011 个月前
【麒麟桌面系统】V10-SP1 2503 系统知识——插入U盘(移动硬盘)为只读状态
linux·运维·kylin