作者:jiajian123 | 来源:互联网 | 2023-07-21 14:53
操作系统:UbuntuKylin优麒麟20.04LTS适用架构:arm64由于目前Etcher官方没有发布arm64(鲲鹏、飞腾)版本,因此,在该架构的电脑上,使用起来就不太方便。
操作系统:Ubuntu Kylin 优麒麟 20.04 LTS
适用架构:arm64
由于目前Etcher官方没有发布 arm64(鲲鹏、飞腾)版本,因此,在该架构的电脑上,使用起来就不太方便。这里提出几种解决办法。
开始之前
Python 有两个分支,Python 2 和 Python 3。 从 Ubuntu 20.04 开始,Python 3 被包括在基础的系统安装之中。Python 2 在通用源仓库中可用。我们鼓励用户切换到 Python 3。
一、已编译好的版本
有大佬在树莓派上做的移植。经过测试,在鲲鹏上也可以运行。
https://github.com/futurejones/balena-etcher-arm/releases
二、自行编译
高级别的 Etcher 概述
请务必查看我们的 ARCHITECTURE.md 指南,该指南旨在解释所有组件是如何组合在一起的。
开发
所需环境
通用环境
NodeJS(至少版本6.11)
Python 2.7
jq
curl
npm(版本6.7)
git
添加软件仓库
sudo add-apt-repository universe
执行安装命令完成所需软件的安装。
sudo apt install git npm nodejs jq curl python2 python3 python3-pip
使用curl命令来下载 get-pip.py 脚本:
curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py
一旦源仓库被启用,以 sudo 用户身份使用 python2 运行脚本来为 Python 2 安装 pip:
sudo python2 get-pip.py
Pip 将会被全局安装。如果你仅仅想为当前用户安装,不要使用sudo运行上面的命令。这个脚本还将会安装setuptools 和 wheel,它们允许你安装源码版本。
这里会收到提示:
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
(弃用:Python 2.7在2020年1月1日到达了它的生命尽头。请升级您的Python,因为Python 2.7不再维护。pip 21.0将在2021年1月放弃对Python 2.7的支持。有关pip中Python 2支持的更多详细信息,请访问http://pip . pypa . io/en/latest/development/release-process/# Python-2-support)
打印 Pip 版本号,验证安装过程:
pip2 -V
安装一些依赖的软件包。
sudo pip2 install -r requirements.txt
您可能需要使用sudo或管理员权限运行此程序。
Linux环境
libudev-dev for libusb
安装命令
sudo apt install libudev-dev
克隆项目
git clone --recursive https://github.com/balena-io/etcher
cd etcher
安装npm依赖项
注意:请使用以下命令来安装 npm 依赖项,而不是简单地运行 npm install,因为我们需要做额外的配置,来确保为 Electron 正确地编译了本地依赖项,否则应用程序可能无法成功运行。
make electron-develop
运行应用程序
图形用户界面
#构建图形用户界面
make webpack
#启动Electron
npm start
测试
要运行测试套件,请运行以下命令:
npm test
鉴于这个应用程序的性质,并不是所有的东西都可以进行单元测试。例如:
在真实的原始设备上运行的写入。
平台不一致。
风格改变。
插图。
我们鼓励我们的贡献者在发送请求之前尽可能多地在操作系统上测试应用程序。
当您发送请求时,测试套件由 CI(配置项)服务器自动运行。
我们还依靠各种 make 目标来执行一些常见任务:
make lint:运行 linter。
make sass:编译SCSS文件。
我们使用 EditorConfig(编辑器配置)来传达缩进、行尾和其他文本编辑默认值。我们鼓励您在自己选择的文本编辑器中安装相关插件,以避免在审查过程中不得不解决任何问题。
更新依赖关系
如果我们使用 npm shrinkwrap,我们必须采取额外的步骤来确保 NPM-shrinkrap.JSON 文件在我们更新依赖项时得到正确更新。
使用以下步骤确保一切顺利进行:
运行 make electron-develop,以确保您没有在开发过程中可能带来的无关依赖,或者您运行的是较旧的依赖,因为您来自另一个分支或引用。
安装新版本的依赖项。例如:npm install --save @。这将更新npm-shrinkwrap.json文件。
同时提交package.json和npm-shrinkwrap.json。
区分二进制文件
二进制文件在 .gitattributes 文件中有“binary”标记,但也有一个 diff=hex 标记,它允许您查看二进制文件的hexdump样式的diffs,如果您将以下内容添加到全局或存储库本地git配置中:
$ git config diff.hex.textconv hexdump
$ git config diff.hex.binary true
和全局,分别是:
$ git config --global diff.hex.textconv hexdump
$ git config --global diff.hex.binary true
如果你的平台上没有 hexdump,你可以试试hxd,它也快一点。
提交指南
有关如何编写提交消息的完整指南,请参见 COMMIT-GUIDELINES.md。
发送 pull(拉取)请求
发送请求时,请考虑以下准则:
写一个简洁的提交消息解释你的改变。
如果适用,在提交正文中写入更多描述性信息。
提到操作系统以及您在其中测试更改的相应版本。
如果您的更改影响了应用程序的视觉效果,请考虑附加一个屏幕截图。
请参考您的请求修复的问题,这样当您的请求被合并时,它们会自动关闭。
写一个描述性的请求标题。
可能时挤压提交,例如,提交审阅更改时。
在合并请求之前,必须满足以下条件:
linter没有发出任何警告。
所有的测试都通过了。
编码风格符合项目惯例。
您的更改被确认在我们支持的操作系统的最新版本中有效。
如果你有任何问题或需要任何帮助,请不要犹豫,与我们联系!
参考文件
《如何在 Ubuntu 20.04 上安装 Python Pip》https://www.itcoder.tech/posts/how-to-install-pip-on-ubuntu-20.04/
《Etcher 构建指南》https://github.com/balena-io/etcher/blob/master/docs/CONTRIBUTING.md