Hi all, we have a linux x86_64 machine which is running all the eVOLVERs in our lab. I’m trying to run the Electron GUI with AppImage linked here: Releases · FYNCH-BIO/evolver-electron · GitHub
But I’m getting the error:
cannot execute binary file: Exec format error
I tried to do the compiling and installing found here: GitHub - FYNCH-BIO/evolver-electron, but I run into a bunch of issues with yarn and I’m not good enough to debug it. I assume this is because the AppImage is compiled for a different CPU architecture? Any ideas on how I can get this working on our linux machine?
The AppImage file is meant for the GUI on the RPi, which I believe would be a different microcontroller architecture… I am not sure if I tried it on a different Linux machine before. Maybe @heinsz has tried it before?
Yes, we have run the GUI on linux before - @mgalardini may have some insights on how to go about this. If you share the errors you came across I can try to help you work through them.
So after deleting yarn.lock as well as reinstalling all the correct versions of the dependencies, I was able to run yarn dev, which gives me the screen below:
yarn run v1.22.15
warning ../../package.json: No license field
$ cross-env START_HOT=1 node -r babel-register ./internals/scripts/CheckPortInUse.js && cross-env START_HOT=1 yarn start-renderer-dev
warning ../../package.json: No license field
$ cross-env NODE_ENV=development node --trace-warnings -r babel-register ./node_modules/webpack-dev-server/bin/webpack-dev-server --config webpack.config.renderer.dev.js
Starting Main Process...
npm WARN lifecycle The node binary used for scripts is /tmp/yarn--1634314254949-0.6020737123872058/node but npm is using /usr/local/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
> evolver-app@0.14.0 start-main-dev /home/liusynevolab/Desktop/evolver-electron
> cross-env HOT=1 NODE_ENV=development electron -r babel-register ./app/main.dev.js
App threw an error during load
TypeError: _electron.app.setAboutPanelOptions is not a function
at Object.<anonymous> (/home/liusynevolab/Desktop/evolver-electron/app/main.dev.js:248:5)
at Object.<anonymous> (/home/liusynevolab/Desktop/evolver-electron/app/main.dev.js:255:3)
at Module._compile (module.js:642:30)
at loader (/home/liusynevolab/Desktop/evolver-electron/node_modules/babel-register/lib/node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (/home/liusynevolab/Desktop/evolver-electron/node_modules/babel-register/lib/node.js:154:7)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at loadApplicationPackage (/home/liusynevolab/Desktop/evolver-electron/node_modules/electron/dist/resources/default_app.asar/main.js:287:12)
at Object.<anonymous> (/home/liusynevolab/Desktop/evolver-electron/node_modules/electron/dist/resources/default_app.asar/main.js:328:5)
e[1me[47me[31mA JavaScript error occurred in the main process
e[30mUncaught Exception:
TypeError: _electron.app.setAboutPanelOptions is not a function
at Object.<anonymous> (/home/liusynevolab/Desktop/evolver-electron/app/main.dev.js:248:5)
at Object.<anonymous> (/home/liusynevolab/Desktop/evolver-electron/app/main.dev.js:255:3)
at Module._compile (module.js:642:30)
at loader (/home/liusynevolab/Desktop/evolver-electron/node_modules/babel-register/lib/node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (/home/liusynevolab/Desktop/evolver-electron/node_modules/babel-register/lib/node.js:154:7)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at loadApplicationPackage (/home/liusynevolab/Desktop/evolver-electron/node_modules/electron/dist/resources/default_app.asar/main.js:287:12)
at Object.<anonymous> (/home/liusynevolab/Desktop/evolver-electron/node_modules/electron/dist/resources/default_app.asar/main.js:328:5)e[0m
Error: Exited with code 9
at ChildProcess.<anonymous> (/home/liusynevolab/Desktop/evolver-electron/node_modules/cross-unzip/index.js:38:21)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
(node:115490) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Invalid template for Menu
(node:115490) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
e[31m✖e[39m e[90m「wdm」e[39m:
ERROR in ./app/components/Setup.js
Module not found: Error: Can't resolve './SetupButtons/ButtonCards' in '/home/liusynevolab/Desktop/evolver-electron/app/components'
@ ./app/components/Setup.js 39:19-56
@ ./app/containers/SetupPage.js
@ ./app/Routes.js
@ ./app/containers/Root.js
@ ./app/index.js
@ multi react-hot-loader/patch webpack-dev-server/client?http://localhost:1212/ webpack/hot/only-dev-server ./app/index.js
ERROR in ./app/components/Setup.js
Module not found: Error: Can't resolve './SetupButtons/SetupButtons' in '/home/liusynevolab/Desktop/evolver-electron/app/components'
@ ./app/components/Setup.js 35:20-58
@ ./app/containers/SetupPage.js
@ ./app/Routes.js
@ ./app/containers/Root.js
@ ./app/index.js
@ multi react-hot-loader/patch webpack-dev-server/client?http://localhost:1212/ webpack/hot/only-dev-server ./app/index.js
ERROR in ./app/components/Setup.js
Module not found: Error: Can't resolve './SetupButtons/SetupLog' in '/home/liusynevolab/Desktop/evolver-electron/app/components'
@ ./app/components/Setup.js 45:16-50
@ ./app/containers/SetupPage.js
@ ./app/Routes.js
@ ./app/containers/Root.js
@ ./app/index.js
@ multi react-hot-loader/patch webpack-dev-server/client?http://localhost:1212/ webpack/hot/only-dev-server ./app/index.js
ERROR in ./app/app.global.css (./node_modules/css-loader??ref--6-1!./app/app.global.css)
Module not found: Error: Can't resolve './components/vialSelector.css' in '/home/liusynevolab/Desktop/evolver-electron/app'
@ ./app/app.global.css (./node_modules/css-loader??ref--6-1!./app/app.global.css) 4:10-98
@ ./app/app.global.css
@ ./app/index.js
@ multi react-hot-loader/patch webpack-dev-server/client?http://localhost:1212/ webpack/hot/only-dev-server ./app/index.js
Not rewriting GET /dist/renderer.dev.js because the path includes a dot (.) character.
Done in 19.01s.
It successfully built, but when running with yarn dev, we get a white screen. We got the following warning when building
WARNING in ./node_modules/electron-debug/index.js 101:45-58
Critical dependency: the request of a dependency is an expression
@ dll renderer
WARNING in ./node_modules/electron-debug/index.js 102:61-74
Critical dependency: the request of a dependency is an expression
@ dll renderer
WARNING in ./node_modules/log4js/lib/appenders/index.js 25:11-30
Critical dependency: the request of a dependency is an expression
@ ./node_modules/log4js/lib/log4js.js
@ dll renderer
In runtime we get this error:
A JavaScript error occurred in the main process
Uncaught Exception:
TypeError: _electron.app.setAboutPanelOptions is not a function
at Object. (/home/liusynevolab/Desktop/evolver-electron/app/main.dev.js:248:5)
at Object. (/home/liusynevolab/Desktop/evolver-electron/app/main.dev.js:255:3)
at Module._compile (module.js:642:30)
at loader (/home/liusynevolab/Desktop/evolver-electron/node_modules/babel-register/lib/node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (/home/liusynevolab/Desktop/evolver-electron/node_modules/babel-register/lib/node.js:154:7)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at loadApplicationPackage (/home/liusynevolab/Desktop/evolver-electron/node_modules/electron/dist/resources/default_app.asar/main.js:287:12)
at Object. (/home/liusynevolab/Desktop/evolver-electron/node_modules/electron/dist/resources/default_app.asar/main.js:328:5)
Can you try to delete or comment out lines 248-250 in app/main.dev.js? They aren’t actually doing anything important, and I’m curious if other errors will appear if that gets taken out.
The white screen persists, and here is the output:
yarn run v1.22.15
warning ../../package.json: No license field
$ cross-env START_HOT=1 node -r babel-register ./internals/scripts/CheckPortInUse.js && cross-env START_HOT=1 yarn start-renderer-dev
warning ../../package.json: No license field
$ cross-env NODE_ENV=development node --trace-warnings -r babel-register ./node_modules/webpack-dev-server/bin/webpack-dev-server --config webpack.config.renderer.dev.js
Starting Main Process...
npm WARN lifecycle The node binary used for scripts is /tmp/yarn--1634405438530-0.3145149974248094/node but npm is using /usr/local/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
> evolver-app@0.14.0 start-main-dev /home/liusynevolab/Desktop/evolver-electron
> cross-env HOT=1 NODE_ENV=development electron -r babel-register ./app/main.dev.js
Error: Exited with code 9
at ChildProcess.<anonymous> (/home/liusynevolab/Desktop/evolver-electron/node_modules/cross-unzip/index.js:38:21)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
(node:138990) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Invalid template for Menu
(node:138990) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
e[31m✖e[39m e[90m「wdm」e[39m:
ERROR in ./app/components/Setup.js
Module not found: Error: Can't resolve './SetupButtons/ButtonCards' in '/home/liusynevolab/Desktop/evolver-electron/app/components'
@ ./app/components/Setup.js 39:19-56
@ ./app/containers/SetupPage.js
@ ./app/Routes.js
@ ./app/containers/Root.js
@ ./app/index.js
@ multi react-hot-loader/patch webpack-dev-server/client?http://localhost:1212/ webpack/hot/only-dev-server ./app/index.js
ERROR in ./app/components/Setup.js
Module not found: Error: Can't resolve './SetupButtons/SetupButtons' in '/home/liusynevolab/Desktop/evolver-electron/app/components'
@ ./app/components/Setup.js 35:20-58
@ ./app/containers/SetupPage.js
@ ./app/Routes.js
@ ./app/containers/Root.js
@ ./app/index.js
@ multi react-hot-loader/patch webpack-dev-server/client?http://localhost:1212/ webpack/hot/only-dev-server ./app/index.js
ERROR in ./app/components/Setup.js
Module not found: Error: Can't resolve './SetupButtons/SetupLog' in '/home/liusynevolab/Desktop/evolver-electron/app/components'
@ ./app/components/Setup.js 45:16-50
@ ./app/containers/SetupPage.js
@ ./app/Routes.js
@ ./app/containers/Root.js
@ ./app/index.js
@ multi react-hot-loader/patch webpack-dev-server/client?http://localhost:1212/ webpack/hot/only-dev-server ./app/index.js
ERROR in ./app/app.global.css (./node_modules/css-loader??ref--6-1!./app/app.global.css)
Module not found: Error: Can't resolve './components/vialSelector.css' in '/home/liusynevolab/Desktop/evolver-electron/app'
@ ./app/app.global.css (./node_modules/css-loader??ref--6-1!./app/app.global.css) 4:10-98
@ ./app/app.global.css
@ ./app/index.js
@ multi react-hot-loader/patch webpack-dev-server/client?http://localhost:1212/ webpack/hot/only-dev-server ./app/index.js
Not rewriting GET /dist/renderer.dev.js because the path includes a dot (.) character.
Not rewriting GET /dist/renderer.dev.js because the path includes a dot (.) character.
Done in 28.30s.
Sorry I missed this - were you able to get it to work?
You can try to downgrade to yarn v1.22.10 - I just did a fresh install with that version and it worked. I also wonder if it is getting angry about the relative referencing in the import statements - you can try making those absolute. So for example:
ERROR in ./app/components/Setup.js
Module not found: Error: Can't resolve './SetupButtons/SetupButtons'
You can change line 8 in app/components/Setup.js to be:
import SetupButtons from 'components/SetupButtons/SetupButtons
What helped was the tip to downgrade yarn to v1.22.10, which along with deleting yarn.lock, allowed us to build it without issue. And thanks for pointing me to Setup.js. I did have to fix a couple of bugs in the header of Setup.js to get it to work, with the fixed lines shown below:
import VialSelector from './VialSelector'
import SetupButtons from './setupButtons/SetupButtons';
import ButtonCards from './setupButtons/ButtonCards';
import SetupLog from './setupButtons/SetupLog'
I still get the following errors when I run it, but it doesn’t seem to affect the base functionality of the GUI though:
App threw an error during load
TypeError: _electron.app.setAboutPanelOptions is not a function
at Object.<anonymous> (/home/liusynevolab/evolver-electron-master/app/main.dev.js:248:5)
at Object.<anonymous> (/home/liusynevolab/evolver-electron-master/app/main.dev.js:255:3)
at Module._compile (module.js:642:30)
at loader (/home/liusynevolab/evolver-electron-master/node_modules/babel-register/lib/node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (/home/liusynevolab/evolver-electron-master/node_modules/babel-register/lib/node.js:154:7)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at loadApplicationPackage (/home/liusynevolab/evolver-electron-master/node_modules/electron/dist/resources/default_app.asar/main.js:287:12)
at Object.<anonymous> (/home/liusynevolab/evolver-electron-master/node_modules/electron/dist/resources/default_app.asar/main.js:328:5)
A JavaScript error occurred in the main process
Uncaught Exception:
TypeError: _electron.app.setAboutPanelOptions is not a function
at Object.<anonymous> (/home/liusynevolab/evolver-electron-master/app/main.dev.js:248:5)
at Object.<anonymous> (/home/liusynevolab/evolver-electron-master/app/main.dev.js:255:3)
at Module._compile (module.js:642:30)
at loader (/home/liusynevolab/evolver-electron-master/node_modules/babel-register/lib/node.js:144:5)
at Object.require.extensions.(anonymous function) [as .js] (/home/liusynevolab/evolver-electron-master/node_modules/babel-register/lib/node.js:154:7)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:504:12)
at Function.Module._load (module.js:496:3)
at loadApplicationPackage (/home/liusynevolab/evolver-electron-master/node_modules/electron/dist/resources/default_app.asar/main.js:287:12)
at Object.<anonymous> (/home/liusynevolab/evolver-electron-master/node_modules/electron/dist/resources/default_app.asar/main.js:328:5)e[0m
(node:137052) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Invalid template for Menu
(node:137052) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Anyways, thanks again for the help. I’ll update the thread if I run into any more issues.