server complaints about GLIBC_2.15 and libSpark_Physics.so on centos 6.3 x64

funkoolowfunkoolow Join Date: 2003-04-28 Member: 15917Members, WC 2013 - Supporter
hello there,
tryin to run the fresh linux server on centos 6.3 x64, pops out the infamous message mentioned in the wiki:
./server_linux32
./server_linux32: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./server_linux32)
./server_linux32: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/ns2server/ns2/libSpark_Core.so)
./server_linux32: /lib/libm.so.6: version `GLIBC_2.15' not found (required by /home/ns2server/ns2/libSpark_Physics.so)
./server_linux32: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/ns2server/ns2/libsteam_api.so)

I saw the wiki says to install manually someextra libs but it only refers to ubuntu debian distros packages, can someone pls give the precise library name so that I can look for it on centos 6 or eventually set it up from source?
thanks in advance

Comments

  • dgibbsdgibbs Join Date: 2013-08-31 Member: 187443Members
    I can confirm I am also getting this. Found no simple fix yet. There are some confusing dependancy issues with NS2 linux server currently.
  • MaxunitMaxunit Join Date: 2005-02-01 Member: 39414Members, Reinforced - Shadow
    Centos 6.3 only seems to have glibc 2.12. Debian 6, for example, only had glibc 2.11.

    You either need Centos 6.4 or higher or something like Ubuntu 12.04 LTS or 13.04.

    Unless the Centos Developers release a newer glibc for Centos 6.3. This manual fix stated in the Wiki is rather useless, because GLIBCXX is also not being updated properly this way. Other things might be missing as well.
  • Omega_K2Omega_K2 Join Date: 2011-12-25 Member: 139013Members, Reinforced - Shadow
    edited September 2013
    funkoolow wrote: »
    hello there,
    tryin to run the fresh linux server on centos 6.3 x64, pops out the infamous message mentioned in the wiki:
    ./server_linux32
    ./server_linux32: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./server_linux32)
    ./server_linux32: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/ns2server/ns2/libSpark_Core.so)
    ./server_linux32: /lib/libm.so.6: version `GLIBC_2.15' not found (required by /home/ns2server/ns2/libSpark_Physics.so)
    ./server_linux32: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/ns2server/ns2/libsteam_api.so)
    
    
    I saw the wiki says to install manually someextra libs but it only refers to ubuntu debian distros packages, can someone pls give the precise library name so that I can look for it on centos 6 or eventually set it up from source?
    thanks in advance

    You try installing compiled files yourself (from another distro, newer vision of your distro). You can also always compile them yourself.

    Maxunit mentions this works on 6.4, so I'd just upgrade (unless there is a reason not to)

    Considering this is the C and C++ Standard library, they shouldn't have more dependencies I think. You can always check though with a programm called ldd.
  • MaxunitMaxunit Join Date: 2005-02-01 Member: 39414Members, Reinforced - Shadow
    edited September 2013
    I am not ENTIRELY sure, if it will work.

    I had to upgrade from Debian 6 to another Distro, since Debian 7 also only has GLIBC 2.13. Ubuntu was my choice, since it is based on Debian and Ubuntu 12.04 LTS has GLIBC 2.15 according to the shell command ldd --version.

    I just downloaded the NS2 Server for Linux and will try to run it.

    Another reason was, that Steam is compiled on Ubuntu and against GLIBC 2.15 and the NS2 Server also might be. No official word on that tho.
  • dgibbsdgibbs Join Date: 2013-08-31 Member: 187443Members
    I am running CentOS 6.4 with the same issues.
    [ns2server@server ns2]$ ./server_linux32
    ./server_linux32: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./server_linux32)
    ./server_linux32: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/ns2server/ns2/libSpark_Core.so)
    ./server_linux32: /lib/libm.so.6: version `GLIBC_2.15' not found (required by /home/ns2server/ns2/libSpark_Physics.so)
    ./server_linux32: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/ns2server/ns2/libsteam_api.so)
    

    As you can see CentOS 6.4 only supports up to GLIBCXX_3.4.13
    [ns2server@server ns2]$ strings /usr/lib/libstdc++.so.6 | grep GLIBC
    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
    GLIBC_2.0
    GLIBC_2.3
    GLIBC_2.4
    GLIBC_2.1
    GLIBC_2.1.3
    GLIBC_2.3.2
    GLIBC_2.2
    GLIBCXX_FORCE_NEW
    GLIBCXX_DEBUG_MESSAGE_LENGTH
    

    It seems that Ubuntu is the best best currently with these issues. Unless you want to self compile. Hopfully someone finds a simple workaround for this. I will also be researching this
  • Omega_K2Omega_K2 Join Date: 2011-12-25 Member: 139013Members, Reinforced - Shadow
    I'd just try unpacking one from another distro, it might work. As I said these have very little dependences, and I figure it might be worth a shot (besides compiling them yourself oviously).

    But the NS2 devs could always link/compile against an older version I suppose, as long they don't need the features from a newer one.
  • funkoolowfunkoolow Join Date: 2003-04-28 Member: 15917Members, WC 2013 - Supporter
    any feedback I receive wherever I ask about installing the required version of glibc on centos 6.x speaks in terms of possible absolute disaster. It seems we all need to setup an ubuntu installation or wait for a binary compiled against less updated libraries :(
  • macrummacrum Join Date: 2013-09-05 Member: 187850Members
    Hey guys,
    just take the needed binaries from these packages and copy them directly to the folder where the server_linux32 binary is.

    for libm.so.6
    http://archive.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6_2.15-0ubuntu10.4_i386.deb

    and for libstdc++6:
    http://ftp.br.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6_4.7.2-5_i386.deb

    worked for me.

    greetz. :)
  • MaxMax Technical Director, Unknown Worlds Entertainment Join Date: 2002-03-15 Member: 318Super Administrators, Retired Developer, NS1 Playtester, Forum Moderators, NS2 Developer, Constellation, Subnautica Developer, Pistachionauts, Future Perfect Developer
    The Linux version of the game (the client and the server) are intended to be used with the Steam runtime (https://github.com/ValveSoftware/steam-runtime) which includes all of the dependencies the game requires. You shouldn't need to install anything else. The Steam runtime is used automatically when you launch the client from Steam, but for the server you will need to run it using the Steam runtime's shell script. We'll update the dedicated server usage help with information on this once we get some more information from Valve on the recommended setup.
  • dushandushan Breaker of Games Join Date: 2011-10-30 Member: 130202Members, NS2 Developer, Squad Five Blue, Pistachionauts
    edited September 2013
    NS2 is linked against the Steam Runtime, which is downloaded and auto-updated by Steam (alternatively you can grab it here: https://github.com/ValveSoftware/steam-runtime ).

    Simply run the server using the 'run.sh' script, e.g.:

    ~/.steam/bin32/steam-runtime/run.sh ./server_linux32

    EDIT: damn, Max beat me to it!
  • gH0sTygH0sTy Join Date: 2013-02-01 Member: 182727Members, Reinforced - Shadow
    Isn't the steam runtime somthing for the steam linux client and its game clients only!?
    You shouldn't link the server against the steam runtime as it doesn't require the steam client.
    All a server needs is steamcmd to download and update the server.
  • funkoolowfunkoolow Join Date: 2003-04-28 Member: 15917Members, WC 2013 - Supporter
    I can confirm that macrum solution works for me.
    Regarding the steam-runtime method, gonna try that later and report what happens

    thanks for now for the info everyone :)
  • dgibbsdgibbs Join Date: 2013-08-31 Member: 187443Members
    Thanks for the info Max. Once I have some clear instructions how to correctly install an ns2 server I will be looking forward to creating an automation script for it. WIth all game servers I have worked with in SteamCMD normally its just a case of downloading the files via SteamCMD and installing a bunch of required dependencies. If you find this useful here is a link to all the other server scripts I have created. It may help you with your server.

    https://github.com/dgibbs64/linuxgameservers
    http://danielgibbs.co.uk/scripts/
  • funkoolowfunkoolow Join Date: 2003-04-28 Member: 15917Members, WC 2013 - Supporter
    just to help everyone not very practical with linux commandline, i'll post all the passages to apply macrum workaround for centos 6.3 x64
    - open terminal
    - move to /tmp dir
    cd /tmp
    
    - grab packages
    wget http://archive.ubuntu.com/ubuntu/pool/main/e/eglibc/libc6_2.15-0ubuntu10.4_i386.deb
    wget http://ftp.br.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6_4.7.2-5_i386.deb
    
    - extract files from deb packages (be aware that the ar command will always extract a data.tar.gz file so be sure to extract it before launching any subsequent ar command):
    ar vx libc6_2.15-0ubuntu10.4_i386.deb
    tar xvzf data.tar.gz
    ar vx libstdc++6_4.7.2-5_i386.deb
    tar xvzf data.tar.gz (note: if this one exits out with an error about utime, extract it being root or with sudo then eventually change permission of extracted files with chmod / chown)
    
    - move needed files to the dir where your server_linux32 is (including symlinks):
    mv /usr/lib/i386-linux-gnu/libstdc++.so.6 /path/to/your/server/
    mv /usr/lib/i386-linux-gnu/libstdc++.so.6.0.17 /path/to/your/server/
    mv lib/i386-linux-gnu/libm.so.6 /path/to/your/server/
    mv lib/i386-linux-gnu/libm-2.15.so /path/to/your/server/
    
    - start your server with server_linux32 command

Sign In or Register to comment.