2.9 KiB
Building etcher on Windows, Linux, and Mac
How do you build etcher? On Windows, Linux, Mac
It’s the same on all systems:
First clone the repository recursively:
git clone --recursive https://github.com:balena-io/etcher
rm -rf node_modules
make electron-develop
npm start
To build packages for distribution, run make electron-build
after the steps above.
Windows
What version of mingw and visual studio are needed to build? Any other dependencies for windows? Instructions for how to install?
Visual studio 2019 with:
- MSVC v142 x86-64 build tools
- Windows 10 SDK
Also install Windows Driver Kit from https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk
- you might have to look under "previous versions" for the windows wdk to match your windows sdk
- all you need from this page is the WDK, you can ignore everything else, just download it
pip install -r requirements.txt
Mingw64, install it from https://www.msys2.org/
install choco: https://chocolatey.org/install install jq: choco install jq -y
Add /c/msys64/usr/bin/ to path
It appears you’re supposed to use
npm i
and thennpm watch
and thennpm start
in order to build/run the electron app, but I’m getting the error:
NODE_MODULE_VERSION 88. This version of Node.js requires NODE_MODULE_VERSION 80. Please try re-compiling or re-installing
From the module xxhash
This error means that a module wasn’t built for the correct runtime (node or electron) and version. In general it means that either you ran npm i
instead of make electron-develop
or you just updated the electron version.
Remove the node_modules folder and run make electron-develop
, that should fix it.
If you want to use only npm, set up some env vars to target the correct runtime as in https://github.com/balena-io/EtcherProApplication/blob/v1.0.0/Dockerfile#L11-L13
Each time you change a js file, you need to run npm webpack
again. This is quite slow. To make it faster leave npm run watch
running. It actually just runs webpack --watch
https://github.com/electron/electron/blob/master/docs/tutorial/using-native-node-modules.md
Mac OS X
Install XCode via the App Store
I get the error:
gyp: No Xcode or CLT version detected!
Fix with:
sudo xcodebuild -license accept
I get the error:
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
Fix with:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
I get the error:
[webpack-cli] Error: Could not find lzma_native binding
Try removing node_modules and running make electron-develop
again.
Linux
Should work OOTB, please create issue if not.
- Note: Might have to downgrade to Node 14
FreeBSD
Should work OOTB, please create issue if not.
- Note: Might have to downgrade to Node 14