Linux arm架构下构建Electron安装包

上篇文章我们介绍 Electron 基本的运行开发与 windows 安装包构建简单流程,这篇文章我们从零到一构建 Linux arm 架构下安装包,实际上 Linux arm 的构建流程,同样适用于 Linux x86 环境,只不过需要各自的环境依赖,Linux arm 坑更多并且 electron-builder 有些依赖官方并不适用于 arm 环境,比如 fpm,这里的基础配置去上篇文章找就行,好了,不多比比,开搞

一、拉取代码,安装环境

因为这里使用 svn 拉取的代码,和 git 大差不差吧,首先,我们确认下环境,因为接下来要安装的依赖必须与环境适配

uname -i

在这里插入图片描述

  1. 创建目录

cd /home
mkdir svn

  1. 安装 svn 环境

下载依赖

sudo apt-get install subversion

检出代码到 home svn 目录下

svn checkout url --user=xxx --password=xxx /home/svn

  1. 安装 node 环境

这里要注意下载 arm 架构包,x86 对应自己的包,我装的 14.16.0 的包,不能太高也不能太低

wget https://nodejs.org/dist/v14.16.0/node-v14.16.0-linux-arm64.tar.xz
tar xf node-v14.16.0-linux-arm64.tar.xz
vi /etc/profile
cp /etc/profile /etc/profile.bak // 备份下
i

配置环境变量,要注意安装目录,我把 node 解压到 home 目录下,进入 profile 最后一行添加如下,添加 node 环境变量,设置 npm 的配置为 arm64

export PATH=$PATH:/home/node-v14.16.0-linux-arm64/bin
export npm_config_arch=arm64

:wq!
source /etc/profile

执行 node -v,可以看到,安装成功
在这里插入图片描述
配置为淘宝镜像,顺便安装下 yarn

npm config set registry https://registry.npm.taobao.org/
npm -g i yarn

  1. 进入项目目录,安装构建依赖

yarn install

  1. 直接编译

npm run electron:arm64

Linux x64 到这里就基本完事儿了,但是这是 arm,编译过程可以看到编译使用 x86fpm 包,并没有使用 arm64 位的包,毫无疑问,构建失败,跑不起来

• downloading     url=https://github.com/electron-userland/electron-builder-binaries/releases/download/fpm-1.9.3-2.3.1-linux-x86/fpm-1.9.3-2.3.1-linux-x86.7z size=4.6 MB parts=1
• downloaded      url=https://github.com/electron-userland/electron-builder-binaries/releases/download/fpm-1.9.3-2.3.1-linux-x86/fpm-1.9.3-2.3.1-linux-x86.7z duration=3.13s

这里有俩种解决方案,其一修改源码适配 arm 架构,其二,用 linux 自己的 fpm 进行下载,我选择利用本机的 fpm 构建

sudo apt-get install ruby-full
sudo gem install fpm

下载成功后,执行 fpm,代表安装成功
在这里插入图片描述

package.json:中修改 arm 打包命令新增 USE_SYSTEM_FPM=true,使用本机的 fpm 进行构建

script: {
    "electron:arm": "USE_SYSTEM_FPM=true electron-builder --config electron.config.json -l --arm64"
}
  1. 更新 package.json 部分配置,author 注意格式写法 xx ,homepage 一定要存在且不为空
  "name": "soclass",
  "author": "Sonny George <sonny@cafeparadox.com>",
  "version": "1.0.1",
  "description": "SoClass",
  "main": "main.js",
  "homepage": "https://www.mysite.com",
二、执行构建

npm run electron:arm

在这里插入图片描述
构建完成后,新增 build 文件夹,查看 build 文件夹,.deb 文件代表安装包
在这里插入图片描述
执行安装

dpkg -i xx.deb

我们通过 dpkg -c xx.deb查看源码目录,可以看到一个可执行程序,调用图形化页面执行即可,完美编译
在这里插入图片描述

三、相关链接
  • Electron 跨平台打包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/246665.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java中,用函数对象表示策略

简而言之&#xff0c;函数指针的主要用途就是实现策略(Strategy)模式。 Java没有提供函数指针&#xff0c;但是可以用对象引用实现相同的功能。调用对象上的方法通常是执行该对象上某项操作。 在Java中&#xff0c;使用函数对象&#xff08;Function Object&#xff09;表示策…

Elasitcsearch--解决CPU使用率升高

原文网址&#xff1a;Elasitcsearch--解决CPU使用率升高_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决ES导致的CPU使用率升高的问题。 问题描述 线上环境 Elasticsearch CPU 使用率飙升常见问题如下&#xff1a; Elasticsearch 使用线程池来管理并发操作的 CPU 资源。…

Android--Jetpack--Navigation详解

须知少日拏云志&#xff0c;曾许人间第一流 一&#xff0c;定义 Navigation 翻译成中文就是导航的意思。它是谷歌推出的Jetpack的一员&#xff0c;其目的主要就是来管理页面的切换和导航。 Activity 嵌套多个 Fragment 的 UI 架构模式已经非常普遍&#xff0c;但是对 Fragmen…

关于“Python”的核心知识点整理大全21

9.3.2 Python 2.7 中的继承 在Python 2.7中&#xff0c;继承语法稍有不同&#xff0c;ElectricCar类的定义类似于下面这样&#xff1a; class Car(object):def __init__(self, make, model, year):--snip-- class ElectricCar(Car):def __init__(self, make, model, year):supe…

VHDL实验:基于有限状态机实现秒表

题目要求&#xff1a; 利用有限状态机实现实现一个具有启动、停止、清零功能的秒表&#xff0c;显示格式&#xff1a;分&#xff1a;秒&#xff1a;十分秒。启动、停止、清零由一个按键控制&#xff0c;按键按下时&#xff0c;功能按启动、停止、清零顺序循环。 思路分析&…

【NTN 卫星通信】Starlink,卫星互联网的技术革命(一)

1. 什么是Starlink Starlink是由Elon Musk创立的私人太空探索公司SpaceX提供的卫星互联网服务。它旨在为世界上传统互联网服务速度慢或不可用的偏远地区提供价格合理的高速互联网。 为什么Starlink很重要&#xff1f;   Starlink之所以重要&#xff0c;是因为它有可能为数百万…

万能微信在线考试系统:适用于任何行业的在线考试系统 附带完整的搭建教程

互联网技术的发展&#xff0c;线上教育、线上考试逐渐成为主流。特别是在疫情期间&#xff0c;许多传统的线下考试都被迫转为线上。然而&#xff0c;对于许多机构、企业来说&#xff0c;搭建一个稳定、安全的在线考试系统并非易事。这需要专业的技术团队、充足的时间和资源投入…

基于Java SSM框架实现二手交易平台网站系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现二手交易平台网站系统演示 摘要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认…

逆向获取某音乐软件的加密(js逆向)

本文仅用于技术交流&#xff0c;不得以危害或者是侵犯他人利益为目的使用文中介绍的代码模块&#xff0c;若有侵权请联系作者更改。 老套路&#xff0c;打开开发者工具&#xff0c;直接开始找到需要的数据位置&#xff0c;然后观察参数&#xff0c;请求头&#xff0c;cookie是…

TypeScript入门实战笔记 -- 04 什么是字面量类型、类型推断、类型拓宽和类型缩小?

&#x1f34d;开发环境 1&#xff1a;使用vscode 新建一个 04.Literal.ts 文件&#xff0c;运行下列示例。 2&#xff1a;执行 tsc 04.Literal.ts --strict --alwaysStrict false --watch 3&#xff1a;安装nodemon( 全局安装npm install -g nodemon ) 检测.js文件变化重启项…

网络层--TCP/UDP协议

目录 一、TCP/UDP协议介绍 1、UDP(User Datagram Protocol)--用户数据报协议 1.1 UDP报文格式 1.2 UDP协议的特性 2、TCP(Transmission Control Protocol )--传输控制协议 2.1 TCP报文格式 2.2 TCP协议的特性 2.3 TCP三次握手 2.4 四次挥手 三、TCP和UDP的区别 四、t…

HTML字体阴影

目录 1.阴影颜色 color2.水平轴和垂直轴3.模糊半径 blur 效果如下&#xff1a; h-shadow必需&#xff0c;水平阴影的位置&#xff0c;允许负值v-shadow必须&#xff0c;垂直阴影的位置&#xff0c;允许负值blur可选&#xff0c;模糊的距离color可选&#xff0c;阴影的颜色 1…

WebSocket开发

目录 前言 1.介绍 2.原理解析 3.简单的聊天室搭建 4.点到点消息传输 总结 前言 WebSocket 是互联网项目中画龙点睛的应用&#xff0c;可以用于消息推送、站内信、在线聊天等业务。 1.介绍 WebSocket 是一种基于 TCP 的新网络协议&#xff0c;它是一种持久化的协议&…

vim + ctags 跳转, 查看函数定义

yum install ctags Package ctags-5.8-13.el7.x86_64 already installed and latest version 创建 /home/mzh/pptp-master/tags.sh #!/usr/bin/shWORKDIR/home/mzh/pptp-masterfind ${WORKDIR} -name "*.[c|h]" | xargs ctags -f ${WORKDIR}/tags find /usr/inclu…

花裤衩vue-element-admin-master

这个模板是集成度比较高的 在实习的时候老是依赖装不上 今天在公司 把版本切换到16.17.1 一次就成功了 里面的工具还是比较多的&#xff0c; vue3里开源模板里工具比较多的是vben&#xff0c;它同样安装依赖比较难搞

React Native android环境搭建,使用夜神模拟器进行开发(适用于0.73+版本)

前言 本文基于&#xff1a;“react-native” : “^0.73.0” 1.安装 Node Node.js&#xff0c;下载时选择 > 18 版本 2.下载并安装 JDK Java SE Development Kit (JDK)&#xff0c;下载时选择 17 版本 安装 验证是否安装成功 打开命令提示符输入 javac -version 回车 3.…

Springboot集成支付宝支付---完整详细步骤

网页操作步骤 1.进入支付宝开发平台—沙箱环境 使用开发者账号登录开放平台控制平台 2.点击沙箱进入沙箱环境 说明&#xff1a;沙箱环境支持的产品&#xff0c;可以在沙箱控制台 沙箱应用 > 产品列表 中查看。 3.进入沙箱&#xff0c;配置接口加签方式 在沙箱进行调试前…

网页设计--第7次课后作业

已在qq课程群发送了课程的相关资料。 1、安装nodejJS。 2、安装vue-cli。 3、新建一个自己的vue工程化项目。 4、修改默认的vue项目&#xff0c;体会main.js,app.vue以及其他vue文件之间的调用关系&#xff0c;明白vue工程化项目的运行原理。 可以参考视频讲解&#xff08;…

SQL排列组合

SQL排列组合 1、排列组合概述2、SQL排列组合2.1、排列2.2、组合3、SQL排列组合的应用1、排列组合概述 排列组合是针对离散数据常用的数据组织方法,本节将分别介绍排列、组合的SQL实现方法,并结合实例着重介绍通过组合对数据的处理 如何使用SQL实现排列与组合?本节将通过介绍…

LeetCode 2132. 用邮票贴满网格图:二维前缀和 + 二维差分

【LetMeFly】2132.用邮票贴满网格图&#xff1a;二维前缀和 二维差分 力扣题目链接&#xff1a;https://leetcode.cn/problems/stamping-the-grid/ 给你一个 m x n 的二进制矩阵 grid &#xff0c;每个格子要么为 0 &#xff08;空&#xff09;要么为 1 &#xff08;被占据&…