Table of Contents

Introduction

Working on Linux is great. Compiling Node.JS on the ACM/LUG workstations is not. Due to a incompatibilities, we need to implement a workaround when installing Node.JS to work on the ACM/LUG office workstations. This issue was lasted encountered on April 24, 2014. Since then, there may have been updates to the package. You are advised to first try the vanilla installation first. If it fails, try some of steps outlined here.

What's the problem?

1. The make process utilized Python2 to run many of the script operations needed for configuring and installing. Current workstations contain both Python2 and Python3, with Python3 being the default.

2.When compiling the default Node.JS source code you will encounter an error during the make process. This will prevent you from continuing the install. Here is an example of what you might encounter:

flock /home/clee231/Downloads/node-v0.10.26/out/Release/linker.lock g++ -pthread -rdynamic -m32 -m32  -o /home/clee231/Downloads/node-v0.10.26/out/Release/mksnapshot -Wl,--start-group /home/clee231/Downloads/node-v0.10.26/out/Release/obj.target/mksnapshot/deps/v8/src/mksnapshot.o /home/clee231/Downloads/node-v0.10.26/out/Release/obj.target/deps/v8/tools/gyp/libv8_base.a /home/clee231/Downloads/node-v0.10.26/out/Release/obj.target/deps/v8/tools/gyp/libv8_nosnapshot.a -Wl,--end-group 
flock: /home/clee231/Downloads/node-v0.10.26/out/Release/linker.lock: Bad file descriptor
deps/v8/tools/gyp/mksnapshot.target.mk:124: recipe for target '/home/clee231/Downloads/node-v0.10.26/out/Release/mksnapshot' failed
make[1]: *** [/home/clee231/Downloads/node-v0.10.26/out/Release/mksnapshot] Error 65
make[1]: Leaving directory '/home/clee231/Downloads/node-v0.10.26/out'
Makefile:38: recipe for target 'node' failed
make: *** [node] Error 2

Why does this happen?

Python3 set as the default version of Python to run on any arbitrary Python file. Since Make does not detect this, we will quickly fall into issues with renamed/moved definitions that are used to configure and install Node.JS.

Flock is used as a linker by the Makefile process. Due to reasons unknown to me, Flock will fail to build when building on/to a NFS.

TODO: Add more explanation/descriptions.

Solution

1. Set your default Python version to Python2.

Finish up solution

2. Use a differnet linker.

  export LINK=g++
  make