国产麒麟系统 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 包,以及脚本修改一下内核。

相关推荐
起个名字总是说已存在2 天前
Kylin Linux麒麟环境docker启动容器报错permission denied解决
linux·docker·kylin
被闲置的鱼9 天前
麒麟OS各种环境安装脚本,达梦数据库DM8、JDK安装、Nginx安装、vsftpd安装、硬盘挂载一件安装脚本
java·linux·数据库·nginx·kylin
峰兄19830517 天前
基于容积卡尔曼滤波的轮胎侧向力与非线性修正技术研究:MPC路径跟踪控制优化实践
kylin
a123560mh1 个月前
国产信创操作系统银河麒麟常见软件适配(MongoDB、 Redis、Nginx、Tomcat)
linux·redis·nginx·mongodb·tomcat·kylin
a123560mh1 个月前
服务器操作系统常见的系统参数调优方法
linux·服务器·网络·kylin
java_logo2 个月前
Docker 部署银河麒麟(Kylin Linux)全流程教程
linux·运维·阿里云·docker·容器·kylin
心灵宝贝2 个月前
申威服务器安装Nacos 2.0.3 RPM包详细步骤(Kylin V10 sw_64架构)附安装包
服务器·架构·kylin
指尖@韶华2 个月前
【Kylin Linux root 密码故障处置指南(超限重试 + 改回原密码)】
linux·运维·kylin
阿干tkl2 个月前
优麒麟(Ubuntu Kylin) 安装向日葵远程工具/ToDesk
linux·ubuntu·kylin