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

glibc 2.14 dependency #244

Closed
flip111 opened this issue Jan 13, 2014 · 21 comments
Closed

glibc 2.14 dependency #244

flip111 opened this issue Jan 13, 2014 · 21 comments

Comments

@flip111
Copy link

flip111 commented Jan 13, 2014

I don't know for sure that i'm in the right place here. But i hope i am. My OS (Debian Wheezy) has glibc 2.13 as latest stable, see: http://packages.debian.org/wheezy/libc6

2-3 months ago i installed a node app (ghost blog) which installed fine. Now it has a dependency on 2.14 which i don't have. Is it possible to downgrade the dependency and rerun?

The relevant error message while doing npm install:

> sqlite3@2.1.19 install /var/node/blog/ghost/node_modules/sqlite3
> node build.js

[sqlite3]: Checking for http://node-sqlite3.s3.amazonaws.com/Release/node_sqlite3-v2.1.a-node-v11-linux-x64.tar.gz
[sqlite3]: Downloaded to: /root/tmp/node-sqlite3-Release/node_sqlite3-v2.1.a-node-v11-linux-x64.tar.gz
[sqlite3]: Checking for http://node-sqlite3.s3.amazonaws.com/Release/node_sqlite3-v2.1.a-node-v11-linux-x64.sha1.txt
[sqlite3]: Sha1sum matches! 822cc5103a2d6788ff2b6882ea98675a387bd45e
[sqlite3]: Extracting to lib/binding/Release
[sqlite3]: Testing the binary failed: "Command failed:
module.js:356
  Module._extensions[extension](this, filename);
                               ^
Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /var/node/blog/ghost/node_modules/sqlite3/lib/binding/Release/node-v11-linux-x64/node_sqlite3.node)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/var/node/blog/ghost/node_modules/sqlite3/lib/sqlite3.js:7:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
"
[sqlite3]: Attempting source compile...
make: Entering directory `/var/node/blog/ghost/node_modules/sqlite3/build'
  ACTION deps_sqlite3_gyp_action_before_build_target_unpack_sqlite_dep Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c
  TOUCH Release/obj.target/deps/action_before_build.stamp
  CC(target) Release/obj.target/sqlite3/gen/sqlite-autoconf-3071700/sqlite3.o
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c: In function ‘porter_stemmer’:
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c:127208:41: warning: value computed is not used [-Wunused-value]
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c:127212:39: warning: value computed is not used [-Wunused-value]
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c:127225:35: warning: value computed is not used [-Wunused-value]
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c:127230:39: warning: value computed is not used [-Wunused-value]
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c:127236:41: warning: value computed is not used [-Wunused-value]
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c:127241:39: warning: value computed is not used [-Wunused-value]
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c:127250:38: warning: value computed is not used [-Wunused-value]
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c:127257:37: warning: value computed is not used [-Wunused-value]
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c:127300:39: warning: value computed is not used [-Wunused-value]
Release/obj/gen/sqlite-autoconf-3071700/sqlite3.c:127320:34: warning: value computed is not used [-Wunused-value]
  AR(target) Release/obj.target/deps/sqlite3.a
  COPY Release/sqlite3.a
  CXX(target) Release/obj.target/node_sqlite3/src/database.o
  CXX(target) Release/obj.target/node_sqlite3/src/node_sqlite3.o
  CXX(target) Release/obj.target/node_sqlite3/src/statement.o
  SOLINK_MODULE(target) Release/obj.target/node_sqlite3.node
  SOLINK_MODULE(target) Release/obj.target/node_sqlite3.node: Finished
  COPY Release/node_sqlite3.node
make: Leaving directory `/var/node/blog/ghost/node_modules/sqlite3/build'
[sqlite3]: Created: lib/binding/Release/node-v11-linux-x64
[sqlite3]: Installed in lib/binding/Release/node-v11-linux-x64/node_sqlite3.node
[sqlite3]: Sweet: "node_sqlite3.node" is valid, node-sqlite3 is now installed!
@springmeyer
Copy link
Contributor

You are in the right place. Thanks for the report.

First off: if it's not clear: your build log above shows that node-sqlte3 installed okay in the end. It recovered from the GLIBC_2.14 not found error and fell back to a source compile which worked.

But the GLIBC_2.14 not found error is a problem for users that try to install and don't have a compiler available.

The short answer is hang tight: I am working on a new release sqlite3@2.2.0 that should solve this. It would be great if you could test. I'll let you know when its ready.

Long answer is: This error is points to a limitation of the binaries I provide for linux in that they are currently built on ubuntu precise and therefore only support systems like ubuntu precise or more modern. The standard way to support linux systems with older glibc/etc is to build binaries on an old machine. Because I'm working on automating current a future binarines on travis.ci I'm going to test a hackish approach to working around this, which I've committed in da0800b.

@springmeyer
Copy link
Contributor

Problems before this can be closed:

@francescozaia
Copy link

Just for the records: I am having the same issue on CentOS 6 (stuck on glibc 2.12) :(

@0xafbf
Copy link

0xafbf commented Jan 26, 2014

this happens to me with an Amazon Linux, is there any workaround I can use?

@wilsolutions
Copy link

FYI: same problem here, yes it get installed on the end but I have the "GLIBC_2.14 not found" error as well.
I am using a CentOS 6 VM: /lib64/libc.so.6 -> libc-2.12.so

@springmeyer
Copy link
Contributor

Thanks for the report @wilsolutions. This is still something I need to find time to solve.

@darky
Copy link

darky commented Feb 15, 2014

heroku cedar stack fails too (2.11.1-0ubuntu)

@darky
Copy link

darky commented Feb 15, 2014

Although, if you not store node_modules in git, heroku compiled to the working state (but ugly with errors)

@szepeviktor
Copy link

Solution

apt-get install build-essential
and it will compile itself

@mandeepsimak
Copy link

I was getting same problem on Debian server. Then I updated the version of libc6 using following steps:

  1. Add the following line to the file /etc/apt/sources.list:
    deb http://ftp.debian.org/debian sid main

  2. Update your package database:
    sudo apt-get update

  3. Then install libc6
    sudo apt-get install libc6

Hope this gonna help.

@szepeviktor
Copy link

It is not advised to touch libc!
Almost every package depends on it.

@mandeepsimak
Copy link

I tried many solutions but that doesn't work and then I updated the version.

@soyuka
Copy link

soyuka commented Jul 3, 2014

Ran into this while trying to install ghost.

On debian squeeze I did:

  1. add the following to /etc/apt/sources.list:
deb http://ftp.us.debian.org/debian unstable main contrib non-free
deb-src http://ftp.us.debian.org/debian unstable main contrib non-free
  1. sudo apt-get install libc6=2.19-4 gcc-4.4=4.4.5-8
  2. npm i sqlite3

@yinchuan
Copy link

yinchuan commented Mar 2, 2015

Problem still exist on CentOS 6.6。Any updates?

@springmeyer
Copy link
Contributor

@yinchuan - The workarounds are:

  • Upgrade to CentOS 7.x (which has a recent enough libc to work out of the box with the node-sqlite3 binaries)
  • Or, build with npm install sqlite3 --build-from-source which will trigger compiling node-sqlite3 from source (requires a compiler environment and python be installed as per node-gyp deps: https://github.com/TooTallNate/node-gyp#installation)

@yinchuan
Copy link

yinchuan commented Mar 2, 2015

Thanks! I have installed this from souce.
Any plan to fix this with CentOS6 or other old linux?​

On Mon, Mar 2, 2015 at 6:21 PM, Dane Springmeyer notifications@github.com
wrote:

@yinchuan https://github.com/yinchuan - The workarounds are:

  • Upgrade to CentOS 7.x (which has a recent enough libc to work out of
    the box with the node-sqlite3 binaries)
  • Or, build with npm install sqlite3 --build-from-source which will
    trigger compiling node-sqlite3 from source (requires a compiler environment
    and python be installed as per node-gyp deps:
    https://github.com/TooTallNate/node-gyp#installation)


Reply to this email directly or view it on GitHub
#244 (comment).

尹川 架构组SA
QQ: 254113859
微信: $QQ
Google Plus: yinchuan.blue@gmail.com

@springmeyer
Copy link
Contributor

Any plan to fix this with CentOS6 or other old linux?​

No, no plans to change this: basically binaries are only going to work on linux as modern as Ubuntu precise because that is what Travis.ci uses, and we use Travis.ci to build binaries. I don't see this changing to support older linux that ubuntu precise - if anything we'll up the requirement more in the future. So, I'm going to close this with the recommented workaround being "npm install sqlite --build-from-source" (or if sqlite3 is a dep of another app, just do npm install --build-from-source)

@springmeyer
Copy link
Contributor

solved by #444, will be fixed in v3.0.6

@adebree
Copy link

adebree commented Jul 27, 2015

Seems to be reintroduced with node-sqlite3 3.0.9?

@fdn
Copy link

fdn commented Aug 1, 2015

@adebree +1. Version 3.0.8 works for me. 3.0.9 spits this error.

Error: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /var/lib/XXX/app-root/runtime/repo/node_modules/sqlite3/lib/binding/node-v11-linux-x64/node_sqlite3.node)
    at Module.load (module.js:356:32)

@springmeyer
Copy link
Contributor

yes, tracking fix at #484

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

No branches or pull requests