Thanks for the useful suggestions, Dillon. I was able to get past this problem recently. Indeed glibc and libstdc++ were not sufficient for NuPIC. For glibc I built and installed version 2.14 from sources. For libstdc++ a capable version was already on the machine. For both I had to redirect the run-time shared library loader to the dir(s) housing libstdc++.so.6 and libc.so.6 by setting the LD_LIBRARY_PATH env var.
Best, Ryan On Tue, Sep 22, 2015 at 11:00 AM, Dillon Bender <[email protected]> wrote: > Your issue seems to be with your libstdc++ and glibc versions and nothing > to do with your compiler (both are part of the gnu toolchain, but each is > distinct and might cause independent problems). > > Either your system libraries are incompatibly old for nupic, or your > environment is preventing _math.so from finding the right libraries at > runtime. > > What version is your glibc? > > Just run > ~$/lib64/libc.so.6 > > And you'll get something like > > GNU C Library (Ubuntu EGLIBC 2.15-0ubuntu10.7) *stable release version > 2.15*, by Roland McGrath et al. > Copyright (C) 2012 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. > Compiled by GNU CC version 4.6.3. > Compiled on a Linux 3.2.60 system on 2014-08-28. > Available extensions: > crypt add-on version 2.1 by Michael Glad and others > GNU Libidn by Simon Josefsson > Native POSIX Threads Library by Ulrich Drepper et al > BIND-8.2.3-T5B > libc ABIs: UNIQUE IFUNC > For bug reporting instructions, please see: > <http://www.debian.org/Bugs/>. > > nupic requires at least GNU Libc 2.14. Do the same check for libstdc++ and > make sure the version meets the requirement. It doesn't look like > libstdc++.so.6 has a valid executable entry address like glibc, though. So > you'll have to get the version another way. > > Also, it appears _math.so is linking with the correct system libraries, so > you shouldn't need to set LD_LIBRARY_PATH in order to override > /usr/bin/ld's (or whichever one your g++ was compiled with) default runtime > library search path. But since you say there is a correct version > installed, so you should try setting LD_LIBRARY_PATH to the path of those > libraries (unless you've already tried that). > > ------------------------------ > *From:* nupic [[email protected]] on behalf of Ryan J. > McCall [[email protected]] > *Sent:* Saturday, September 19, 2015 3:32 PM > *To:* Dillon Bender > *Subject:* Re: NuPIC on Linux > > Hi Matt, Thanks for the reply. > > I'm able to verify that some those packages are installed except > "python-dev" "libpcre3-dev" maybe given some more time I can make sure of > that. > > The immediate issue I'm seeing is with nupic/bindings linking to old > versions of g++ on my linux machine. > > $ ldd /usr/local/lib/python2.7/site-packages/nupic/bindings/_math.so > /usr/local/lib/python2.7/site-packages/nupic/bindings/_math.so: > /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by > /usr/local/lib/python2.7/site-packages/nupic/bindings/_math.so) > /usr/local/lib/python2.7/site-packages/nupic/bindings/_math.so: > /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by > /usr/local/lib/python2.7/site-packages/nupic/bindings/_math.so) > /usr/local/lib/python2.7/site-packages/nupic/bindings/_math.so: > /lib64/libc.so.6: version `GLIBC_2.14' not found (required by > /usr/local/lib/python2.7/site-packages/nupic/bindings/_math.so) > > I can't figure out how to point the "_math.so" to a different version of > libstdc++. (the machine does have another version with the right > GLIBCXX_x.y.z installed). > > With all this effort, I'm beginning to wonder if I should try the docker > route to install on linux =) Thanks again. > > Best, > > Ryan > > On Thu, Sep 17, 2015 at 9:48 AM, Matthew Taylor <[email protected]> wrote: > >> I assume you have the following packages installed? >> >> python-dev python-pip automake libtool libssl-dev g++ cmake libpcre3-dev >> >> --------- >> Matt Taylor >> OS Community Flag-Bearer >> Numenta >> >> >> On Wed, Sep 16, 2015 at 8:30 AM, Ryan J. McCall <[email protected]> >> wrote: >> > Hello, I wanted to see if I could get some hints about this error I'm >> > encountering when running NuPIC on Linux: >> > >> > ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not >> found >> > (required by >> /usr/local/lib/python2.7/site-packages/nupic/bindings/_math.so) >> > >> > Thank you, >> > >> > Ryan >> > >> > >> > On Sun, Sep 13, 2015 at 3:50 PM, Ryan J. McCall <[email protected]> >> > wrote: >> >> >> >> Hi Austin! >> >> >> >> Yes it's a 64-bit system. The issue was the default version of python >> >> being 2.6. By changing the alias for python to python2.7 I was able to >> >> install nupic, i.e. I can import nupic in python. >> >> >> >> Now I'm facing: >> >> >> >> ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not >> found >> >> (required by >> /usr/local/lib/python2.7/site-packages/nupic/bindings/_math.so) >> >> >> >> By doing `strings /usr/lib64/libstdc++.so.6 | grep LIBCXX` I see that >> the >> >> highest version is `GLIBCXX_3.4.13` >> >> >> >> And `g++ -v ` gives "gcc version 4.8.5 (GCC)". >> >> >> >> Base on some reading it seems I have to do some linking or set >> >> $LD_LIBRARY_PATH differently. >> >> >> >> Well, that's where I am and I'd appreciate any further pointers. I'll >> keep >> >> at this. >> >> >> >> Many thanks, >> >> >> >> Ryan >> >> _____________________________________________ >> >> >> >> Hi, Ryan! >> >> >> >> What is the output of `python -c 'import struct; print 8 * >> >> struct.calcsize("P")'`? >> >> >> >> For example, on my system: >> >> >> >> $ python -c 'import struct; print 8 * struct.calcsize("P")' >> >> 64 >> >> >> >> If it prints 32, you're on a 32-bit system, in which case the 64-bit >> wheel >> >> won't work. >> >> >> >> Separately, if you're not running Python 2.7.x, then it won't work >> either. >> >> What is the output of `python --version`? >> >> >> >> It should look something like: >> >> >> >> $ python --version >> >> Python 2.7.6 >> >> >> >> >> >> If installing the binaries fails, building from source is an option if >> >> you're running Python 2.7 >> >> >> >> On Sat, Sep 12, 2015 at 5:49 PM, Ryan J. McCall <[email protected] >> > >> >> wrote: >> >>> >> >>> Hi NuPIC, >> >>> >> >>> I'm trying to install NuPIC on Linux but perhaps pip thinks I'm on a >> >>> 32-bit system? Installing the nupic.core wheel is not happening. >> >>> >> >>> pip install >> >>> >> https://s3-us-west-2.amazonaws.com/artifacts.numenta.org/numenta/nupic.core/releases/nupic.bindings/nupic.bindings-0.1.5-cp27-none-linux_x86_64.whl >> >>> nupic.bindings-0.1.5-cp27-none-linux_x86_64.whl is not a supported >> wheel >> >>> on this platform. >> >>> >> >>> You're help is greatly appreciated. >> >>> >> >>> Thank you, >> >>> >> >>> Ryan >> >> >> >> >> >> >> >> >> >> -- >> >> Ryan J. McCall >> >> ryanjmccall.com >> >> 650 906 8223 >> > >> > >> > >> > >> > -- >> > Ryan J. McCall >> > ryanjmccall.com >> > 650 906 8223 >> >> > > > -- > Ryan J. McCall > ryanjmccall.com > -- Ryan J. McCall ryanjmccall.com
