Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Instance built on Ubuntu won't work on Debian or Red Hat systems #248

Closed
mrsimonemms opened this issue Jan 22, 2013 · 5 comments
Closed

Comments

@mrsimonemms
Copy link

I'm having a really frustrating issue getting this integrated with our infrastructure. The company setup is:

  • Development/build on Ubuntu 12.04/12.10 machines
  • Testing on Debian machines
  • Live on RedHat machines
    All machines are 64 bit.

When we build and release to the Debian/RedHat machines, we always get the following error:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module '../build/default/canvas'
    at Function._resolveFilename (module.js:332:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:354:17)
    at require (module.js:370:17)
    at Object.<anonymous> (/home/semms/staging/node_modules/canvas/lib/bindings.js:7:20)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Module.require (module.js:354:17)

At first, we assumed that there was some architecture issue as per #184, but have subsequently proven this not to be the case and that all machines are indeed running 64 bit builds of NodeJS. What we have noticed is that this is only an issue when deploying to a Debian/RedHat machine - we have some Ubuntu machines in the office and, when we deploy to that, it works first time.

Next, we looked at #216 and updated our PATH and LD_LIBRARY_PATH. However, this has again not worked.

What is particularly confusing is that, if we build everything on the Debian/RedHat box and deploy to anything else (including Ubuntu), it all works. We're therefore assuming that there is something that is some difference between the Debian/RedHat setup compared to the Ubuntu one but cannot identify what this is.

Can someone help shed some light onto that issue?

Thanks

Setup

  • NodeJS 0.6.12
  • Canvas 0.10.2
@mrsimonemms
Copy link
Author

I should point out, the obvious answer is to use Ubuntu on all machines (I've tried it, and it works). However, this isn't politically possible

@TooTallNate
Copy link
Contributor

Run ldd on the .node file and see if there's some differences with linked
libraries between the two compiled versions.

On Tuesday, January 22, 2013, Simon Emms wrote:

I should point out, the obvious answer is to use Ubuntu on all machines
(I've tried it, and it works). However, this isn't politically possible


Reply to this email directly or view it on GitHubhttps://github.com//issues/248#issuecomment-12538130.

@mrsimonemms
Copy link
Author

Interesting. I'm getting an error. The version built on Ubuntu (when ldd canvas.node is done on the Debian machine) responds.

./canvas.node: /lib/libc.so.6: version `GLIBC_2.14' not found (required by ./canvas.node)
    linux-vdso.so.1 =>  (0x00007fff4a7cc000)
    libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007f8f1ad50000)
    libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00007f8f1ab2d000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f8f1a818000)
    libm.so.6 => /lib/libm.so.6 (0x00007f8f1a596000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f8f1a380000)
    libc.so.6 => /lib/libc.so.6 (0x00007f8f1a01d000)
    libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007f8f19dc5000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f8f19b3d000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007f8f19907000)
    libpng12.so.0 => /lib/libpng12.so.0 (0x00007f8f196e1000)
    libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0x00007f8f194de000)
    libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007f8f192d5000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f8f190b9000)
    libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f8f18eaf000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f8f18b73000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007f8f1895c000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f8f1b1f7000)
    libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007f8f18733000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f8f18530000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f8f1832b000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007f8f18126000)

The working version (built on Debian) reads...

    linux-vdso.so.1 =>  (0x00007fff2bec7000)
    libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007fbf5012a000)
    libgif.so.4 => /usr/lib/libgif.so.4 (0x00007fbf4ff22000)
    libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00007fbf4fcfe000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fbf4f9ea000)
    libm.so.6 => /lib/libm.so.6 (0x00007fbf4f768000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007fbf4f551000)
    libc.so.6 => /lib/libc.so.6 (0x00007fbf4f1ef000)
    libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007fbf4ef97000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007fbf4ed0e000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007fbf4ead9000)
    libpng12.so.0 => /lib/libpng12.so.0 (0x00007fbf4e8b3000)
    libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0x00007fbf4e6af000)
    libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007fbf4e4a7000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fbf4e28b000)
    libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007fbf4e080000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fbf4dd45000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007fbf4db2e000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fbf505cf000)
    libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007fbf4d905000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fbf4d702000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fbf4d4fc000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007fbf4d2f8000)

Ideas?

@TooTallNate
Copy link
Contributor

Your versions of glibc on the two machines are incompatible.

@mrsimonemms
Copy link
Author

Thanks, that appears to be the case. Looks like we'll have to set up a build server then...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants