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

Error on a Rasperry Pi Jessie OS (ARM) #30

Closed
SuganNaickerf opened this issue Jun 7, 2021 · 8 comments
Closed

Error on a Rasperry Pi Jessie OS (ARM) #30

SuganNaickerf opened this issue Jun 7, 2021 · 8 comments

Comments

@SuganNaickerf
Copy link

SuganNaickerf commented Jun 7, 2021

After the install and when I run "node -v" I get the error below.

node: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version CXXABI_1.3.9' not found (required by node) node: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by node)

I did a "strings /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 | grep GLIB" can get the following output.
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBC_2.4
GLIBC_2.18

No "GLIBCXX_3.4.21"

Any assistance would be appreciated. I also tried downgrading a few versions and get the same result.

[EDIT]
After some searching on the net, I found that the best approach is to either upgrade Jessie to Strech on Raspiberry Pi or copy libstdc++.so.6 from Strech to Jessie. Going with upgrade, will post results.

@audstanley
Copy link
Owner

audstanley commented Jul 8, 2021

Thank you for posting - and yes, glibc is a source of pain with GoLang. Same kind of issues when compiling binaries in GoLang for Alpine Linux.

@audstanley audstanley pinned this issue Jul 8, 2021
@audstanley audstanley reopened this Jul 8, 2021
@audstanley
Copy link
Owner

audstanley commented Jul 8, 2021

Wait - I just realized that this was a NodeJs error, and not an error with the installer? Interesting. I imagine that installing Node Version 8 might work on Jessy? I'm not sure what the cut off is if you're going to use an older distro.

Let me know what you find - I might have consider building in a distro check for older versions of Raspbian OS... or just state in the README.md that Jessy is no longer supported.

@SuganNaickerf
Copy link
Author

Wait - I just realized that this was a NodeJs error, and not an error with the installer? Interesting. I imagine that installing Node Version 8 might work on Jessy? I'm not sure what the cut off is if you're going to use an older distro.

Let me know what you find - I might have consider building in a distro check for older versions of Raspbian OS... or just state in the README.md that Jessy is no longer supported.

Thanks for the feedback. I needed minimum NodeJS version 10 in order for another app to work. I tried upgrading Jessie, but that itself did not solve my issues. Finally had to use a 'clean' image with the latest Buster (rather than upgrading).

@audstanley
Copy link
Owner

Awesome! and thank you... I think that I'll just state that Jessy and Stretch aren't supported - It seems that GLIBC has changed the game for a LOT of Distros - I think we can thank containers for the code change in the dependency. I'll try a fresh version of Buster and see if I can run a really old version of NodeJs [v4] with the installer. I'm guessing that newer version GLIBC is backwards compatible, but I'm not completely sure... I'm not even sure people are running that old of a Node version anyway... but it's worth noting either way. So yeah, I'll likely just stick an update in the readme. 🙌

@audstanley
Copy link
Owner

audstanley commented Sep 28, 2021

I think detecting the OS Jessy/Stretch and than getting/building GLIBC may not be the answer since this is a Node dependency. I'm not sure what to do since the older OS might be dependent on older GLIBC for web based actions. I'm going to just keep the issue open so that people running an old pi os are aware that this is a problem. Maybe compiling the new GLIBC and changing it on the older OS would work just fine, though I just think it's outside of the scope of this project.

@audstanley
Copy link
Owner

audstanley commented Sep 28, 2021

weird, the installer/node works fine on my x64 running ubuntu, and:

$ ldd --version
ldd (Ubuntu GLIBC 2.34-0ubuntu2) 2.34
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

maybe the GLIBCXX_3.4.21 dependency is architecture dependent when it comes to node?
Note: I'm on ubuntu 21.10 also (super bleeding edge) 🙂 .

@audstanley
Copy link
Owner

I think I was finally able to solve this problem on issue #31 - So I'm going to close this, and if the problem comes up again - I'll reopen - The problem was that I was compiling and cross compiling on a machine where GLIBC was too new, and newer version of GLIBC seem to work fine when using the compiled binaries utilizing GLIBC version 3.31

@SuganNaickerf
Copy link
Author

SuganNaickerf commented Nov 3, 2021 via email

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