了解银河麒麟

如果不是使用国产化的人,可以不用了解,因为银河麒麟在我看来就是unbutu,包括命令和用法都是一样的。我所讲解的所有关于银河麒麟系统都是v10+arm64的,如果不是这个系统的可以绕路。

安装electron

electron是一款构建跨平台桌面应用程序的开源库,主要的内容部分是html+css+js。那么我们就涉及到了web的应用。大家可以理解它是一个iframe或者是一个微信小程序(样式定义+api得到数据)。我现在讲的这系列是例如iframe的,如果有时间我会慢慢的给大家讲用vue3或者react来搭建的electron。

安装node和npm

node 版本尽量使用 12+
npm 版本 6.3+
源设置为淘宝:npm config set registry https://registry.npm.taobao.org
这个如果不会的话,先去学习一下前端再看。

electron下载并使用

$ git clone https://github.com/electron/electron-quick-start
$ cd electron-quick-start 
$ git checkout remotes/origin/10-x-y

在线安装及其依赖包

$ npm install

如果出现安装失败,就采取离线方式进行安装,放在electron-quick-start上一层即可

$ cd
$ wget https://registry.npmmirror.com/-/binary/electron/v10.1.5/electron-v10.1.5-linux-arm64.zip
$ cd electron-quick-start
$ npm install

当出现>node install.js的时候停止,对install.js进行修改

$ vi node_modules/electron/install.js

找到下载 electron 的地方,如下

// downloads if not cached
downloadArtifact({ version, artifactName: 'electron', force: process.env.force_no_cache === 'true', cacheRoot: process.env.electron_config_cache, platform: process.env.npm_config_platform || process.platform, arch: process.env.npm_config_arch || process.arch
}).then(extractFile).catch(err => { console.error(err.stack); process.exit(1); });

将上面部分注销,将刚刚下载的离线包带入

// downloads if not cached

extractFile('electron-v10.1.5-linux-arm64.zip');

//downloadArtifact({// version, // artifactName: 'electron', // force: process.env.force_no_cache === 'true', // cacheRoot: process.env.electron_config_cache, // platform: process.env.npm_config_platform || process.platform, // arch: process.env.npm_config_arch || process.arch
//}).then(extractFile).catch(err => {
// console.error(err.stack); // process.exit(1); //});

然后将下载的安装包拷贝到electron-quick-start/node_modules/electron,执行install命令

$ cp ~/electron-v10.1.5-linux-arm64.zip node_modules/electron/
$ cd node_modules/electron/
$ node install.js

直接启动项目

$ cd ~/electron-quick-start 
$ npm start

这里需要注意的是,开发的时候使用root用户,这里必须是在桌面中使用其他用户。

弹出hello world!就表示成功。

银河麒麟 docker支持版本 银河麒麟基于debian_银河麒麟 docker支持版本

打包环节(应该是最麻烦最让人无语的地方)

打包必须符合银河麒麟V10软件上架规范的deb包,我们暂时先使用electron-builder工具来进行打包,以后有时间我会给大家讲解electron-packager和 electron-installer-debian 工具进行打包。

安装electron-builder

$ npm install electron-builder@20.0.0 --save-dev

我下了的20.0.0版本,如果你的安装失败,应该是两方面引起的:
(1) node版本太低了。
(2) electron-builder版本太高了。
我的解决思路是哪个方便就来哪个,比如你有nvm管理,那你就提高node版本,但是不要提高太多,符合就可以。

添加打包命令

"scripts": { 
	"start": "electron .",
	 "builder": "electron-builder"
},
"build": { 
	"productName": "electron-quick-start", 
	"asar": "false", 
	"appId": "electron-quick-start", 
	"directories": { 
		"output": "dist"
	},
	"linux": { 
		"icon": "icons", 
		"category": "Education", 
		"target": { 
			"target": "deb", 
			"arch": [ 
				"arm64"
			]
		}
	}
},

具体的参数自己去百度。

编写打包者信息

如果编写打包者信息就会报错,这个是在别的文章下查找到的。

"author": { 
	"name": "Wu Zhaohui", 
	"email": "wuzhaohui@kylinos.cn"
},

安装ruby和fpm

由于electron-builder需要使用fpm,但是fpm在arm64下没有架构包,只能我们自己想办法。

安装rvm和ruby及fpm

我们正常安装ruby最高版本是2.3,那么我们在arm64下就无法安装fpm,安装fpm版本小于11的时候出现关联json的错误,非常难以解决,如果fpm版本高于11,就必须ruby最低版本2.6。你说气人不气人。
1.导入密钥

gpg --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

2.CA证书

apt install ca-certificates

3.修改hosts

vim /etc/hosts

银河麒麟 docker支持版本 银河麒麟基于debian_mysql_02


4.安装rvm

# 安装稳定版
curl -L https://get.rvm.io | bash -s stable

5.rvm全局,如果项目是持续性的就修改profile

vi /etc/profile

添加一个rvm的全局

export PATH="$PATH:/usr/local/rvm/bin"

6.查看ruby版本

rvm list known

7.安装ruby,我是选择的2.6

rvm install ruby-2.6

8.安装fpm

sudo gem install fpm

到这里软件部分已经完结,剩余部分下期再写,手底下小孩们遇到问题,必须去帮助解决了!十分不好意思。