CentOS 5.8 (Latest) and installing Counter Strike Global Offensive Server (SteamCMD)

It's been some time now that I've been trying to install a CS:GO server onto my CentOS 5.8 server.  Unfortunately since CentOS/RedHat do not release the latest packages, only those with large security/stability fixes, the lack of LATER packages comes back to bite when trying to install new software(s).

Upon downloading and decompressing the files for SteamCMD and following the directions on valves how-to site, you receive the following:

[18:51:30] [dave@theia test]$ ./steam.sh
./steam.sh: line 49: ulimit: open files: cannot modify limit: Operation not permitted
./steam.sh: line 56: /home/dave/test/linux32/steam: No such file or directory
[18:51:32] [dave@theia test]$ STEAMEXE=steamcmd ./steam.sh
./steam.sh: line 49: ulimit: open files: cannot modify limit: Operation not permitted
/home/dave/test/linux32/steamcmd: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by /home/dave/test/linux32/steamcmd)
/home/dave/test/linux32/steamcmd: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /home/dave/test/linux32/steamcmd)

I went ahead and deleted line 49 from the "steam.sh" file as my system doesn't have any ulimit but the setting was being put forth by the script provided by Valve. Now I'm receiving the following error:

[18:54:14] [dave@theia test]$ ./steam.sh
./steam.sh: line 54: /home/dave/test/linux32/steam: No such file or directory

It turns out this is an easy fix as well. Navigate to Line 54 of "steam.sh" and Replace the following:

Before Replace (Line 54, steam.sh)

        ${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/${STEAMEXE} "$@"

Replace With (Line 54, steam.sh)

        ${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/steamcmd "$@"

Now the only errors you should be receiving are the following:

[18:58:02] [dave@theia test]$ ./steam.sh
/path/to/steamsh/linux32/steamcmd: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by /path/to/steamsh/linux32/steamcmd)
/path/to/steamsh/linux32/steamcmd: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /path/to/steamsh/linux32/steamcmd)

One of these can be resolved by downloading libstdc.so.6.0.9 which you can use a wget on here: libstdc++.so.6.0.9.tar

wget http://dbiers.me/wp-content/uploads/2012/08/libstdc++.so_.6.0.9.tar.gz
tar -zxvf libstdc++.so_.6.0.9.tar.gz
rm -f libstdc++.so_.6.0.9.tar.gz

You will then need to place it in /usr/lib and link it to the versions being requested:

chmod 755 libstdc++.so.6.0.9
cp libstdc++.so.6.0.9 /usr/lib/.
cd /usr/lib/
unlink libstdc++.so.6
ln -s libstdc++.so.6.0.9 libstdc++.so.6
/sbin/ldconfig

Once this has been completed, you will still have 1 more error to resolve. To fix it, you will need to download a package from Fedora 10.

x86 (32-bit): http://rpm.pbone.net/index.php3/stat/4/idpl/10502724/com/libstdc++-4.3.2-7.i386.rpm.html

x64 (64-bit): http://rpm.pbone.net/index.php3/stat/4/idpl/10505303/com/libstdc++-4.3.2-7.x86_64.rpm.html

After you've downloaded the RPM from there, you will need to force install it to over-write the old versions as just normally installing it will cause a conflict and a failed/aborted install.

x86 (32-Bit)

rpm -ivh libstdc++-4.3.2-7.i386.rpm --replacefiles

x64 (64-Bit)

rpm -ivh --replacefiles libstdc++-4.3.2-7.x86_64.rpm

And that is that, you should be able to go through with installing the CS:GO Server.  And Yes, there MAY be some errors encountered but I have not had any problems.:

[19:11:40] [servers@athena csgotest]$ STEAMEXE=steamcmd ./steam.sh
./steam.sh: line 53: ulimit: open files: cannot modify limit: Operation not permitted
Installing breakpad exception handler for appid(steam)/version(1345149945)
[  0%] Checking for available updates...
[  0%] Download complete.
[----] Verifying installation...
unlinked 0 orphaned pipes
removing stale semaphore last operated on by process 19612 with name 0eBlobRegistryMutex_E16D90A478D322868F42C740015851FD
removing stale semaphore last operated on by process 19612 with name 0eBlobRegistrySignal_E16D90A478D322868F42C740015851FD
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam3...OK.
Loading Steam2...OK.

Steam>

You may also like...

26 Responses

  1. Richard Layton says:

    Thanks for your directions. unfortunationaly i get the error:
    main.cpp (365) : Assertion Failed: Looks like steam didn't shutdown cleanly, scheduling immediate update check
    Assert( Assertion Failed: Looks like steam didn't shutdown cleanly, scheduling immediate update check ):/home/buildbot/buildslave_steam/steam_rel_client_linux/build/src/steamcmd/../steamexe/main.cpp:365

    [ 0%] Checking for available updates...
    [ 0%] Download complete.
    [----] Verifying installation...
    unlinked 0 orphaned pipes
    terminate called after throwing an instance of 'common::CNamedArgsUndefinedNameException'
    what(): Tried to read undefined arg name: ActivityLogFile
    Uploading dump (in-process) [proxy '']
    /tmp/dumps/crash_20120820150707_1.dmp
    success = yes

  2. Phil C says:

    same issue on centos 5.6 x64

    • David says:

      The latest version of CentOS 5.x is 5.8 - I recommend you run the following to update all software on the server and then start the fix over again to see if it resolves the issue.

      # yum -y update

  3. BenhoN says:

    Thanks for your solve ways, but i had other problem after fix :
    (CentOS 5.6)

    =================================================
    [root@hlds steamcmd]# STEAMEXE=steamcmd ./steam.sh
    main.cpp (365) : Assertion Failed: Looks like steam didn't shutdown cleanly, scheduling immediate update check
    [ 0%] Checking for available updates...
    [ 0%] Download complete.
    [----] Verifying installation...
    unlinked 0 orphaned pipes
    Steam Console Client (c) Valve Corporation
    -- type 'quit' to exit --
    Loading Steam3...client_api.cpp (243) : Assertion Failed: ClientAPI_InitGlobalInstance: InternalAPI_Init_Internal failed.

    FAILED.
    Shutting down. . .
    unlinked 2 orphaned pipes
    CAsyncIOManager: 0 threads terminating. 0 reads, 0 writes, 0 deferrals.
    CAsyncIOManager: 44 single object sleeps, 1 multi object sleeps
    CAsyncIOManager: 0 single object alertable sleeps, 1 multi object alertable sleeps
    ./steam.sh: line 67: 2375 Segmentation fault ${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/${STEAMEXE} "$@"
    [root@hlds steamcmd]#
    =================================================

    • David says:

      As I've mentioned in another comment, you need to upgrade to 5.8 as this is the latest version of CentOS 5.x:

      # yum -y update

      • BenhoN says:

        Hi David, system tole me update completed ~ after reboot, the SteamCmd run error still ~ :(

        [root@hlds steamcmd]# STEAMEXE=steamcmd ./steam.sh
        main.cpp (365) : Assertion Failed: Looks like steam didn't shutdown cleanly, scheduling immediate update check
        [ 0%] Checking for available updates...
        [ 0%] Download complete.
        [----] Verifying installation...
        unlinked 0 orphaned pipes
        Steam Console Client (c) Valve Corporation
        -- type 'quit' to exit --
        Loading Steam3...client_api.cpp (243) : Assertion Failed: ClientAPI_InitGlobalInstance: InternalAPI_Init_Internal fail ed.

        FAILED.
        Shutting down. . .
        unlinked 2 orphaned pipes
        CAsyncIOManager: 0 threads terminating. 0 reads, 0 writes, 0 deferrals.
        CAsyncIOManager: 45 single object sleeps, 1 multi object sleeps
        CAsyncIOManager: 0 single object alertable sleeps, 1 multi object alertable sleeps
        ./steam.sh: line 67: 2132 Segmentation fault ${DEBUGGER} "${STEAMROOT}"/${PLATFORM}/${STEAMEXE} "$@"
        [root@hlds steamcmd]#

      • BenhoN says:

        if can not fix it, I'll change os to CentOS 6.0 tomorrow ... then try it again ...

  4. dyxL says:

    hi im doing everything ,

    and when i write STEAMEXE=steamcmd ./steam.sh

    im use 64bit centos 5.8 offff please help how can i solve this problem

    STEAMEXE=steamcmd ./steam.sh
    /home/csgoserver/linux32/steamcmd: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by /home/csgoserver/linux32/steamcmd)

    • David says:

      This is outlined in the walk through of this post. You need download and install the RPM's provided by Fedora 10 (linked above in the post) to get the correct (later/latest?) version of libstdc++.

      • dyxL says:

        http://rpm.pbone.net/index.php3/stat/4/idpl/10505303/com/libstdc++-4.3.2-7.x86_64.rpm.html
        this link and I downloaded an empty folder after

        im write rpm -ivh --replacefiles libstdc++-4.3.2-7.x86_64.rpm

        2012-08-22 19:29:19 (617 KB/s) - `libstdc++-4.3.2-7.x86_64.rpm' saved [327175]

        [root@17 csgg]# rpm -ivh --replacefiles libstdc++-4.3.2-7.x86_64.rpm
        warning: libstdc++-4.3.2-7.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 4e bfc273
        Preparing... ########################################### [100%]
        package libstdc++-4.3.2-7.x86_64 is already installed
        [root@17 csgg]# ./steam.sh
        /home/csgg/linux32/steamcmd: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.10' n ot found (required by /home/csgg/linux32/steamcmd)

        help :(

        • Dylan says:

          Same here,

          [root@alpha csgo]#./steam.sh
          /home/gameserver/csgo/linux32/steamcmd: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by /home/gameserver/csgo/linux32/steamcmd)
          [root@alpha csgo]#

        • David says:

          Fine this line in the post

          [code]Once this has been completed, you will still have 1 more error to resolve. To fix it, you will need to download a package from Fedora 10.[/code]

          ..then continue from there. This should resolve it.

      • Tyson says:

        Do they need the 32bit on 64bit systems? I starting fresh on a VM with 5.8 so I can figure out why I can't make this work on my 5.8 dedicated box (they want $150 to preform clean install of 6.x) I installed the 64bit RPM and get same error. Need clarification on the RPM steps please.

  5. BenhoN says:

    OS Change to CentOS 6.0 and everything gona be OK :p

  6. fixeL says:

    Hi david,

    I'm trying everydays what if I did not work I've done everything I've tried everything i use centos 5.8 please help me

    /home/csg/linux32/steamcmd: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by /home/csg/linux32/steamcmd)

  7. Tyson says:

    David,

    Started with
    Getting this error. I'm on CentOS 5.8. Followed your guide all the way through.
    [steam@********** steamcmd]$ STEAMEXE=steamcmd ./steam.sh
    ./steam.sh: line 53: ulimit: open files: cannot modify limit: Operation not permitted
    [ 0%] Checking for available updates...
    [ 0%] Download complete.
    [----] Verifying installation...
    unlinked 0 orphaned pipes
    Steam Console Client (c) Valve Corporation
    -- type 'quit' to exit --
    Loading Steam3...client_api.cpp (243) : Assertion Failed: ClientAPI_InitGlobalInstance: InternalAPI_Init_Internal failed.

    FAILED.
    unlinked 0 orphaned pipes
    CAsyncIOManager: 0 threads terminating. 0 reads, 0 writes, 0 deferrals.
    CAsyncIOManager: 39 single object sleeps, 1 multi object sleeps
    CAsyncIOManager: 0 single object alertable sleeps, 1 multi object alertable sleeps

    If I navigate to /home/steam/steamcmd/linux32

    [steam@gnax-ded41 linux32]$ ./steamcmd
    [ 0%] Checking for available updates...
    [ 0%] Download complete.
    [----] Verifying installation...
    [----] !!! Fatal Error: Failed to load libsteam.so

    First time I did that it, did download quite a bit but gave same fatal error. Stuck at this time as what to try next.

    • David says:

      Tyson,

      Try removing line 53 from steam.sh and running STEAMEXE=steamcmd ./steam.sh again. - Let me know what it does

      • Tyson says:

        Did same result, run the steam.sh again get a seg fault. Next run SteamCmd verifies files rewrites the steam.sh. Endless cycle. Can't afford to pay the $150 to fresh install 6.x OS on this box. Will keep playing with the VM locally I guess.

        • Grant says:

          This error can occur when attempting to launch steam.sh using 'root'.

        • Grant says:

          Just realized he's not logged in as root - but the last error he received is the same. Ironically, he received the last error he posted because he tried to launch steamcmd directly without the script.

  8. Grant says:

    Want to thank you for this. Was an absolute pain in the ass trying to find the right packages for this to work. How did you manage to figure this out and find the right libraries?

    • David says:

      I don't remember exactly how I came across it other than CentOS wasn't offering the latest version of the libraries as they don't really offer the latest version of anything since their focus is on stability.

      I do remember getting the latest versions via RPM's from, say, Fedora and EPEL of sorts and replacing them. I was given a different error that other people were receiving in response to a completely unrelated issue with other software that actually fixed the issue I was having with SteamCMD.

      Alas, maybe valve will update the tool or decide to move back to hldsupdatetool (I HOPE) as I STILL hate steamCMD. I've actually taken down my CS:GO Server(s) because it was too much of a pain to keep up with.

  9. Linn Queb says:

    Hey thanks for the tutorial, it's been a great help so far. Anyways, I'm new to linux and appear to still be missing GLIBCXX_3.4.10 I've downloaded the rpm file and force installed it like you said, but when I run steam.sh I still get the same error: /home/gameserv/linux32/steamcmd: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by /home/gameserv/linux32/steamcmd)

    I ran strings /usr/lib/libstdc++.so.6 | grep GLIBC and see that GLIBCXX_3.4.10 is not in the list. Any help?

  10. Rayzyr says:

    No! No! Please do not follow the complete procedure in the original post! You are just asking for system trouble that way. It's usually a VERY BAD idea to force install updated system packages in an RPM-based system, because of the dependencies and interconnectedness, you're just asking for unexpected behavior and crashes and other headaches. And in this case it isn't even needed to resolve the issue. Here's what I did to bootstrap steamcmd on my CentOS 5 server so I could get a Killing Floor dedicated server setup:

    I didn't have the other errors... just the GLIBCXX errors. So this is focused on fixing those. So, ignore the whole part about libstdc.so.6.0.9, as it's unnecessary.
    Get the Fedora 10 rpm as described... (the 32 bit one is the only one needed, even on 64 bit systems like mine). So I did:

    wget ftp://ftp.uni-bayreuth.de/pub/redhat.com/fedora/linux/releases/10/Everything/i386/os/Packages/libstdc++-4.3.2-7.i386.rpm

    But we do not install this rpm! We just want to extract the file we need so we can use it to bootstrap steam. So we will use rpm2cpio to do this.

    First, we find out where the file we want will be installed:

    rpm -qlp libstdc++-4.3.2-7.i386.rpm | grep libstdc++

    So it'll put it in /usr/lib/libstdc++.so.6.0.10

    Then, we run rpm2cpio to extract it into a directory tree under our current directory.

    rpm2cpio libstdc++-4.3.2-7.i386.rpm | cpio -ivd ./usr/lib/libstdc++.so.6.0.10

    Notice I have a period in front of the directory tree for extraction. That means 'current directory'. It will create the usr/lib and then place libstdc++.so.6.0.10 in that dir structure in whatever dir you are currently in.

    Copy the newly extracted file to our steam install library (linux32) directory:

    cp ./usr/lib/libstdc++.so.6.0.10 /usr/local/steam/linux32

    Go into to the target directory, and then make a symbolic link so steamcmd can find it:

    ln -s libstdc++.so.6.0.10 libstdc++.so.6

    And with that you should be good to get steamcmd updated and working without risking the stability of your system or breaking something else. Steamcmd will update and overwrite libstdc++.so.6 with their own version, so this procedure is just to bootstrap steamcmd to get it to that point.

    If you have already done the procedure in this post, you should verify/reinstall the rpm packages affected so that the original files can be restored.