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

Reply via email to