Debian 'Testing' 64-bit build report


#1

OK, attempting to build Atom on Debian ‘Testing’ 64-bit, all dependencies and versions satisfied, and I have done the configuration as advised in the README.md for Linux.
At first I got an error that the command ‘node’ was not found, and this advice:

[quote]/usr/bin/env: node: No such file or directory
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian[/quote]
So I read the README.Debian:

[quote]nodejs for Debian

packaged modules

The global search path for modules is
/usr/lib/nodejs

Future packages of node modules will use that directory,
so it should be used wisely.

user modules

Node looks for modules in ./node_modules directory first;
please read node#modules documentation carefully for more information.

Node does not look for modules in /usr/local/lib/node_modules,
where npm put them.
Please read npm-link(1) of npm package, to understand how to properly
use npm-installed modules in a project.

Note that require.paths is not supported in future node versions.
See also node(1) for more information about NODE_PATH.

nodejs command

The upstream name for the Node.js interpreter command is “node”.
In Debian the interpreter command has been changed to “nodejs”.

This was done to prevent a namespace collision: other commands use
the same name in their upstreams, such as ax25-node from the "node"
package.

Scripts calling Node.js as a shell command must be changed to instead
use the “nodejs” command.
[/quote]
Ok, so instead of doing that, I just symlinked ‘/usr/bin/nodejs’ to ‘/usr/bin/node’ to save time editing all the build scripts.

script/build results:
http://pastebin.com/5DAhECDN

o_O


[Ubuntu] Cannot run build
#2

Well, just finished building on Ubuntu 13.10 64 bit, maybe I can give you a little advice.

FIrst, check out the latest code on GitHub by using git pull command
Then, check your node version and npm version. You’d better ensure that they met the requirments from GitHub, check out their page at: https://github.com/atom/atom
Also, you have to link your node executable from nvm or elsewhere to /usr/local/bin by using the command sudo ln -s /your/path/to/node/bin/node /usr/local/bin/node
And, run this command sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0

Hope you can get it run.

Best wishes
Izzy


#3

Node and npm are in line with version specified in README.md on the Github page.
From README:

[quote] node.js v0.10.x
npm v1.4.x[/quote]
On my system:

[quote]~$ nodejs --version
v0.10.26[/quote]

[quote]~$ npm --version
1.4.4[/quote]
Code cloned fresh from Git today.
I had to link ‘nodejs’ as described in my original post, does it make a difference if it’s in /usr/bin or /usr/local/bin?
Just curious.

I’ll also try the libudev trick and try again.

EDIT: Nope, same result.


#4

Any luck? I’m also stuck with the gyp_main.py: error: no such option: --no-parallel error. I get the same error when trying to install runas by itself using npm install -g runas. Strange.


#5

Ok got passed that error and was able to run build and finally grunt install it. Turns out either when I ran the npm config set python /usr/bin/python2 -g (check update below) command as per the steps listed, it either didn’t set python to use my python2 or it did in fact set it to python2 but didn’t like that my python2 was 2.7.x Either way, I’ll never know because I decided to install python 2.6.x and see if that would fix my error. It did.

You can make sure it did correctly register by running npm config get python, this I think is stored in your ~/.npmrc file.

If you have set it correctly to use 2.7.x and it still fails, and you want to try 2.6.x, you can get it following these steps (source):

sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.6 python2.6-dev

Then find out what it’s called in your use/bin, mine was python2.6, then set that. So
npm config set python /usr/bin/pyhon2.6

Hope that helps anyone stuck. Time to finally see what all this atom buzz is about :stuck_out_tongue:

ps. If anyone could shed light on the whole --no-parallel thing, that would be nice. Also would like to know if going to python 2.6.x was necessary or my initial set just failed, if anyone happens to do it with 2.7.x.

@izzyleung
What version of python are you running?

Built on:
Ubuntu 14.04 LTS
node: v.0.10.28
npm: 1.4.9
python2: 2.6.9


Update

Ok turns out the it has something to do with the -g of the npm config set python /usr/bin/python2 -g step. If you had the -g part in your command it doesn’t actually set python. Yeah, I don’t know. I tried --global no difference. Only seems to actually set when not using -g or --global. Not sure if that’s an issue with npm or PEBKAC. So, I guess python 2.7.x should be fine.


#6

Thanks for the advice, I will try again tomorrow. Bedtime now.

P.S.

[quote]~$ npm config get python
/usr/bin/python2[/quote]
Is this correct?


#7

Python 2.7.5 in my case.

First build on grunt failed when initially build them under the first version of official guide.
Then set python config to npm and every thing went on well, finally got atom built.

I think that telling npm about python location is rather important.

So glad you’ve got it run.

Best
Izzy Leung


#8

No, to set it should be npm config set python /usr/bin/python2.
Providing python2 is located in that location.

The get is used for displaying the config value for a key. You can use npm config get python to verify the key called python is set correctly to /usr/bin/python2.


#9

I tried following your instructions, but still can’t build atom:

$ node -v
v0.10.13
$ npm -v
1.4.4
$ npm config get python
/usr/bin/python2
$ /usr/bin/python2 -V
Python 2.7.6

The error looks the same as yours:

$ script/build 
Usage: gyp_main.py [options ...] [build_file ...]

gyp_main.py: error: no such option: --no-parallel
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 2
[...]

Trying python 2.6 didn’t help. It seems it has something to do with gyp? What version are you using?

$ node-gyp -v
v0.12.2

Thanks!


#10

Try installing runas before the build step.
npm install -g runas

I did this because I noticed I would get the same gyp error when trying to install runas before. After I properly set the python key for npm config I was able to install runas without any issues, then I proceeded to build atom. Hope that helps!


#11

I was able to build atom successfully on 64-bit Arch Linux. Following some steps similar to these above.


#12

It’s still not working. I set the npm python version with and without the ‘-g’ option (had to ‘sudo’ to get it to install with the -g), installed ‘runas’, still not compiling. It starts out fine, giving me the standard warnings about uninitialized vars and typedefs not used and whatnot, then it all goes downhil starting with the gyp error:

Just for kicks, I tried building as root (actually, running ‘su’ and cloning to /tmp/) and I got this error after a minute or two:

[quote]npm ERR! runas@0.3.0 install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the runas@0.3.0 install script.
npm ERR! This is most likely a problem with the runas package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls runas
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 3.13-1-amd64
npm ERR! command “node” “/tmp/atom/build/node_modules/.bin/npm” “–userconfig=/tmp/atom/.npmrc” “install” "–quiet"
npm ERR! cwd /tmp/atom/apm
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.10
npm ERR! code ELIFECYCLE
chdir(): No such file or directory[/quote]
Funny thing, when I do ‘npm install runas -g’, it reports the version as 0.5.4, when the error references runas 0.3.0.
Problem?


#13

Thanks. You are correct, installing runas is at least part of the issue.
Sadly, trying to install it independently also runs into the error:
http://pastebin.com/AbDqkVgR

EDIT: Official debian python2.6 seems to have an issue with pkg_resources, but neither ppa:fkrull/deadsnakes/raring’s python2.6 nor debian’s python2.7 work either.


#14

I’m assuming you’ve verified the python key for npm config is set properly? I also noticed you’re sudoing npm install. I’ve run into strange issues sudoing npm install (link). Not sure if that is affecting you in any way. Surprised no one from dev chiming in yet :S

@edvard
I’m not sure :frowning:


#15

@polymeris: your error is due to ‘node’ being named ‘nodejs’ due to a naming conflict. See line 30 of your error report. All that is needed is a symlink:

@vprasanth: I sudo’d because that was the only way to use the ‘-g’ option. I did it both ways just to see if it worked. Installing runas would not work without sudo, and the error I got even said to:

[quote]~/src/atom$ npm install -g runas
npm http GET https://registry.npmjs.org/runas
npm http 304 https://registry.npmjs.org/runas
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/runas’
npm ERR! error rolling back runas@0.5.4 { [Error: EACCES, unlink ‘/usr/local/lib/node_modules/runas’]
npm ERR! error rolling back errno: 3,
npm ERR! error rolling back code: ‘EACCES’,
npm ERR! error rolling back path: ‘/usr/local/lib/node_modules/runas’ }
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/runas’
npm ERR! { [Error: EACCES, unlink ‘/usr/local/lib/node_modules/runas’]
npm ERR! errno: 3,
npm ERR! code: ‘EACCES’,
npm ERR! path: ‘/usr/local/lib/node_modules/runas’ }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Linux 3.13-1-amd64
npm ERR! command “/usr/bin/nodejs” “/usr/bin/npm” “install” “-g” "runas"
npm ERR! cwd /home/papa/src/atom
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.4
npm ERR! path /usr/local/lib/node_modules/runas
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/runas’
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/edvard/src/atom/npm-debug.log
npm ERR! not ok code 0[/quote]
I did install it without the -g option and it worked, so that’s out, and I also tried just straight compiling as root. No banana.

I just noticed something, however. According to the error above, it’s looking for node_modules in /usr/local/lib. On Debian, node_modules is located in /usr/share/npm.

Hmmm…


#16

@edvard Nice catch!

Yeah if you used Debian’s package system to install nodejs it might lead to issues with these scripts that look for node. I’ve built from source, my node_modules folder is in fact in /usr/local/lib. Perhaps try sym-linking?


#17

@edvard
No, I already had the symlink in place (node -v works correctly), the error report just keeps suggesting that might be the issue.

Yes, dropping -g made it possible to build runas as a normal user. It ended up in ./node_modules/runas, so I manually copied it to /usr/share/npm/node_modules, which is symlinked to the location in /usr/local you mention.

The install script seems to insist on rebuilding runas, though. The log says:
1185 info runas@0.5.4 Failed to exec install script


#18

@polymeris: Very strange. After symlinking, I stopped getting complaints in the error log about the name.

Tried symlinking /usr/local/lib/node_modules to /usr/share/npm/node_modules. No luck. I still get the ‘gyp_main.py: error: no such option: --no-parallel’ error and the ‘npm ERR!’ waterfall after that.
Just for kicks, I tried npm install runas@0.3.0 just to see if it was a problem with the version. Still nothing.


#19

I just noticed, npm install runas@(whatever version) works if I tell npm to use the default python (2.7), but not if switch to /usr/bin/python2.6.
Maybe the atom build script at some point forces python 2.6?


#20

Perhaps its worth changing the npm flags in the bootstrap file.

npm ERR! command "node" "/tmp/atom/build/node_modules/.bin/npm" "--userconfig=/tmp/atom/.npmrc" "install" "--quiet"

So it uses your ~/.npmrc, which should be set to use python 2.7?