SteamCMD is a command-line interface for Valve's Steam content delivery system. It allows you to download and update game server files directly from Steam, without needing a graphical interface.
Step 1: Update your system packages
sudo apt update && sudo apt upgrade -y
Step 2: Install required dependencies
SteamCMD requires 32-bit library support and some base tools:
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl wget
If you're on an ARM-based system or encounter library issues, also install:
sudo apt install -y libc6:i386 libstdc++6:i386
Step 3: Create a dedicated user for SteamCMD (recommended)
Running Steam as root is not recommended. Create a dedicated user:
sudo useradd -m -s /bin/bash steam
sudo su - steam
Step 4: Download and install SteamCMD
From the steam user account, download SteamCMD:
cd ~
mkdir steamcmd
cd steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz
Step 5: Run SteamCMD for the first time
The first run will extract and update SteamCMD itself:
./steamcmd.sh +quit
This command starts SteamCMD and exits immediately. Accept the Steam subscriber agreement when prompted.
Step 6: Test the installation
Verify SteamCMD works by checking its version:
./steamcmd.sh +login anonymous +app_info_update 1 +app_info_print 740 +quit
This fetches info for Counter-Strike 2 (app ID 740) as a test. If it completes without errors, your SteamCMD is ready.
Tips and Notes
- Firewall: SteamCMD downloads from Valve's CDN; no inbound ports needed, but ensure outbound HTTPS (port 443) is open.
- Storage space: Game files can be large. Ensure your server has 50+ GB free, depending on which games you plan to host.
- RHEL/CentOS/Fedora: Use
dnf install glibc-devel.i686 libstdc++.i686instead of the apt commands above. - Subsequent runs: You can now use SteamCMD to download game files (see the Counter-Strike 2 or Rust setup guides).
- Path reference: If you followed this guide, SteamCMD is at
~/steamcmd/steamcmd.shrelative to the steam user's home.