mirror of
				https://github.com/balena-io/etcher.git
				synced 2025-11-03 23:48:31 +00:00 
			
		
		
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			v1.8.6
			...
			build-inst
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					de93d6ac78 | ||
| 
						 | 
					6a25c9cda3 | ||
| 
						 | 
					936afec1a5 | ||
| 
						 | 
					2be29e22c2 | 
							
								
								
									
										93
									
								
								BUILD.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								BUILD.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,93 @@
 | 
			
		||||
# 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 then `npm watch` and then `npm 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
 | 
			
		||||
		Reference in New Issue
	
	Block a user