nodejs-pypi
nodejs-pypi copied to clipboard
Building for GLIBC 2.27?
This is a great project, and we are looking forward to using it!
In some initial testing on various Python platforms, we see that Google Colab is using Python 3.7 using GLIBC 2.27. That gives an error when using nodejs-pypi:
/usr/local/lib/python3.7/dist-packages/nodejs/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /usr/local/lib/python3.7/dist-packages/nodejs/bin/node)
What would it take to build nodejs-pypi to work on Google Colab GLIBC 2.27?
I believe Nodejs 18 dropped Ubuntu 18 and Centos/RHEL 7/8 support, and I think Google Colab may be running on a Debian/Ubuntu derived Linux of that vintage.
Installing with:
pip install nodejs-bin==16.15.1a4
or
pip install nodejs-bin[cmd]==16.15.1a4
works.
(Note that the 'a4' for alpha is not a Node alpha, it's the alpha version of this pypi package. I think we are confident that we have a working package and will start doing proper releases soon.)
Thanks @samwillis for the info! Unfortunately we're using some of the latest and greatest node features in nodejs 18. Sounds like we may just have to skip support for Google Colab until Google updates their OS.
If the package requires glibc 2.28, why not release manylinux_2_28 wheels? Please see PEP-600.
This tag is a promise: the wheel’s creator promises that the wheel will work on any mainstream Linux distro that uses glibc version
${GLIBCMAJOR}.${GLIBCMINOR}
or later
Thanks for the info, I had missed that. Will update!
@samwillis I would feel comfortable taking this on once we have the CI setup in place so that we can use docker to emulate the OS environment reported by @njzjz
@jacobdr Go ahead, that would be great.
@njzjz one thing I am slightly confused about... We do publish a manylinux_2_12_x86_64
version so according to the PEP if you use GLIBC 2_28
that should in theory abide by the "minimum support" we have being lower, hence I would have thought 2_28
would pass fine.
Can you send the output please from running pip debug --verbose
so I can check the version tags supported by your environment
@jacobdr I think you misunderstand what I mean. If you use GLIBC 2.17, the manylinux_2_12_x86_64
wheel will still be installed. But if the wheel has a 2_28
tag, pip
will automatically skip this wheel. In this case, if you simply install with pip install nodejs-bin
(or have it in the requirements), the incompatible version will never be installed.
This does not affect any one who has GLIBC 2.28.