使用命令设置SteamCMD
64位centos下使用以下命令进行安装
首先安装所需的32位依赖
yum install glibc.i686 libstdc++.i686
之后创建一个新账户,命名为steam,之所以需要创建一个新账户,是为了安全性而要求的。若使用root账户运行steamcmd会看到安全提醒。
useradd -m steam
之后切换到这个账户,注意这里的命令是 su空格-空格steam,这样做的话,切换后立即转到steam账户的~目录:
su - steam
之后创建一个文件夹命名为steamcmd并进入:
mkdir ~/steamcmd
cd ~/steamcmd
使用wget下载steamcmd压缩包:
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
解压缩:
tar -xvzf steamcmd_linux.tar.gz
运行它:
cd ~/steamcmd
./steamcmd.sh
第一次启动steamcmd将会自动下载steamcmd全部文件,耐心等待即可。下一次启动时不需要再次下载。steamcmd启动后,会进入程序内的命令行界面。此处可以输入命令。以安装一个游戏为例,我们来介绍一下steamcmd的基础命令。
首先,和桌面版steam一样,我们首先需要登陆,比如我们用匿名账号登陆(匿名账号不需要密码):
login anonymous
登陆成功后我们指定游戏服务端安装目录,例如自定为上一层目录中的 cs_go 文件夹,注意,linux下的steamcmd只要制定了目录,就会立刻创建该目录,windows版steamcmd不会立刻创建,因此在linux下可以以此确认该命令是否正确按照预想设定。
force_install_dir ../cs_go/
之后我们要开始安装游戏服务端,以上面那个csgo为例,我们首先需要确认这个程序的app id,我们访问以下网址:
https://developer.valvesoftware.com/wiki/Dedicated_Servers_List
该列表会显示所有steamcmd支持下载的服务端,ID这个column下就是我们需要的app id,例如我们找到csgo的id为740,使用以下命令:
app_update 740
进行安装,这里有几个参数说明,常用的其实只有validate参数。validate意味着校验,和桌面版steam上那个校验本地文件是一模一样的功能,注意,在任何app相关的命令使用前都需要先指定目录,否则视为当前目录。第一次安装程序,有没有validate效果是一样的。从原理上来说,更新服务端时如果不加validate应该会全部覆盖一次,但是我发现并没有,依然会首先校验本地文件和云端文件然后增量下载。换句话说,我发现有没有validate都是一样的,可能是我观测失误,推荐任何app_update命令全部加上validate参数。即以下命令 app_update 740 validate
按下回车后会不断提示下载进度,到达百分百后会回到steamcmd命令行,输入quit来退出steamcmd。
之后我们 cd ../cs_go 即可进入csgo服务端所在文件夹,然后根据具体服务端的启动方式来运行服务端。
对于其他游戏来说,安装过程是一致的。需要注意的是部分游戏的安装有特殊要求或者需要首先购买该游戏。以七日杀为例,在刚才的dedicated servers list列表中我们可以看到七日杀旁边的notes这个column里写着“game purchase required”,这意味着这个游戏必须首先购买,而确认你已经购买的方法就是在steamcmd登陆时使用自己的steam账号登陆而不是匿名账号。首次使用你的steam账号登陆时会和桌面版steam一样有邮箱校验,你需要输入邮箱里发来的验证码才可以登陆,登陆后这样的游戏服务端才可以被下载。
steamcmd下载得到的服务端全部都是正版服务端,也就是客户端进行连接时会有steam账户校验。因此连入的玩家必须拥有该游戏的正版,虽然本人不支持盗版,但是作为一件事实还是需要特别说明以下。source引擎游戏有专门的破解补丁,现在是俄罗斯的一波人在维护,可以破解source引擎的steam账户校验,该补丁可以装到服务端上面从从而模拟验证以使得盗版玩家可以连入服务器。以前倒腾过这玩意,但是该补丁的linux版本年久失修,只有windows版本在不停更新,因此如果使用linux开服还是自觉去买正版,linux服务端基本上和盗版无缘。
关于游戏服务端的更新,更新操作过程和安装一模一样(绝大多数情况下,游戏客户端如果更新了,那么服务端也要更新),在此不在赘述,推荐加上validate参数。