Zh/SteamCMD: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
(translation to SteamCMD Guardian 1.2)
m (Nesciuse moved page SteamCMD:zh-cn to Zh/SteamCMD over redirect: -Language prefixes)
 
(25 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|title=Steam 控制台客户端|SteamCMD}}
|title=SteamCMD
'''Steam 控制台客户端'''('''SteamCMD''')是一个命令行版本的 Steam 客户端。它的主要用途是在一个命令行界面的 Steam 客户端上安装及更新各种可用的专用服务端。它适用于使用 [[SteamPipe:zh-cn|SteamPipe]] 内容分发系统的游戏。所有游戏已经从旧的[[HLDSUpdateTool| 半条命专用服务器更新工具]]迁移到了 SteamCMD。
|en=SteamCMD
|es=SteamCMD:es
|fr=SteamCMD:fr
|nl=SteamCMD:nl
|pl=SteamCMD:pl
|ru=SteamCMD:ru
}}
'''Steam命令行客户端'''('''SteamCMD''')是一个命令行版本的Steam客户端。它的主要用途是在一个命令行界面的Steam客户端上安装和更新各种可用的专用服务端。它适用于使用[[SteamPipe]]内容分发系统的游戏。所有游戏已经从旧的[[HLDSUpdateTool|半条命专用服务器更新工具]]迁移到了SteamCMD。


== 下载 SteamCMD ==
== 下载 SteamCMD ==
=== Windows系统 ===
=== Windows ===


1. 创建一个为SteamCMD准备的文件夹。
1. 创建一个为 SteamCMD 准备的文件夹。


“例如”
''例如''


  C:\steamcmd
  C:\steamcmd


2. 下载Windows系统专用的SteamCMD:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
2. 下载适用于 Windows 系统的 SteamCMD:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
 
 
3. 提取 zip 中的文件至文件夹。
 
=== Linux ===
 
创建一个名为 ''steam'' 的用户帐户以安全地运行 SteamCMD,并将其与操作系统的其余部分隔离。'''以 root 用户身份登录时请勿运行 steamcmd'''——这样做会带来'''安全风险'''。
 
1. 以 root 用户身份创建 ''steam'' 用户:
 
useradd -m steam
 
2. 进入其主文件夹:
 
cd /home/steam
 
==== 安装来自软件仓库的软件包 ====
1. 建议从您的分发软件仓库安装 SteamCMD 软件包(如果有):
 
Ubuntu/Debian
sudo apt install steamcmd
 
{{Note|如果您使用的是64位计算机,则需要添加 multiverse
  sudo add-apt-repository multiverse
  sudo dpkg --add-architecture i386
  sudo apt update
  sudo apt install lib32gcc1 steamcmd
}}
 
RedHat/CentOS
yum install steamcmd
 
Arch Linux
git clone https://aur.archlinux.org/steamcmd.git
cd steamcmd
makepkg -si
 
2. 链接 '''steamcmd''' 可执行文件:
 
ln -s /usr/games/steamcmd steamcmd
 
==== Docker ====
如果你的服务器正在运行 [https://www.docker.com/ Docker],您可以简单地使用:
<pre>
docker run -it --name=steamcmd cm2network/steamcmd bash
</pre>
 
steamcmd.sh location: ''/home/steam/steamcmd''
 
该映像可用作基于Steam的专用服务器的基础映像。
例如:
[https://hub.docker.com/r/cm2network/csgo/ https://hub.docker.com/r/cm2network/csgo/]
 
您可以在此处找到相关的 Docker Hub 页面:
[https://hub.docker.com/r/cm2network/steamcmd/ https://hub.docker.com/r/cm2network/steamcmd/]


3. 解压Zip文件中的文件到文件夹。


=== Linux系统 ===
==== 手动安装 ====
1. 在开始之前,您必须先安装运行 SteamCMD 所需的依赖项:


1. 首先安装运行环境用以运行SteamCMD。
Ubuntu/Debian 64-Bit


Ubuntu/Debian 64位
sudo apt-get install lib32gcc1


sudo apt-get -y install lib32gcc1
RedHat/CentOS


RedHat/CentOS 32位
yum install glibc libstdc++


sudo yum -y install glibc libstdc++
RedHat/CentOS 64-Bit


RedHat/CentOS 64位
yum install glibc.i686 libstdc++.i686


sudo yum -y install glibc.i686 libstdc++.i686
2. 以 root 用户身份升级至 ''steam'' 用户:


2. 建议创建一个SteamCMD专用的用户。在任何情况下,请 '''不要''' 在 '''root''' 身份下运行SteamCMD,这可能会导致严重的安全隐患!
运行以下命令以root身份创建“Steam”用户,并登录它:
useradd -m steam
  su - steam
  su - steam
如果你喜欢使用 <code>sudo</code>,更换第二行代码为以下命令:
 
如果您不是以 root 用户身份登录,而是使用<code>sudo</code>来行使管理权限,请以如下所示来升级至 ''steam'' 用户:
 
  sudo -iu steam
  sudo -iu steam


3. 创建一个为SteamCMD准备的目录,并切换到它
3. 为 SteamCMD 创建目录并切换至该目录。
mkdir ~/steamcmd
cd ~/steamcmd


3. 下载Linux系统专用的SteamCMD
  mkdir ~/Steam && cd ~/Steam
  wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz


4. 解压文件到目录。
4. 下载并解压缩适用于 Linux 的 SteamCMD。
tar -xf steamcmd_linux.tar.gz


=== macOS系统 ===
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -


1.打开终端并创建一个为SteamCMD准备的目录。
''中国内地用户可使用以下命令以使用内地节点:''


  mkdir ~/steamcmd
  curl -sqL "https://media.st.dl.bscstorage.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
cd ~/steamcmd


2. 下载macOS系统专用的SteamCMD。
5. 安装tmux 和/或 screen 以简化服务器管理


  curl -O https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz
  sudo apt-get install tmux screen -y;


3. 解压文件到目录。
=== macOS ===


  tar -xvzf steamcmd_osx.tar.gz
1.打开终端并创建一个为 SteamCMD 准备的目录。
 
  mkdir ~/steamcmd && cd ~/steamcmd
 
2. 下载并解压缩适用于 macOS 的 SteamCMD。
 
curl -sqL ' https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz ' | tar zxvf -
 
''中国内地用户可使用以下命令以使用内地节点:''
 
curl -sqL ' https://media.st.dl.bscstorage.net/client/installer/steamcmd_osx.tar.gz ' | tar zxvf -


== 运行 SteamCMD ==
== 运行 SteamCMD ==


''在第一次运行SteamCMD时将自动更新并显示一个 <code>Steam&gt;</code> 的输入提示。输入 <code>help</code> 来获取更多信息。''
''在第一次运行 SteamCMD 时将自动更新并显示一个<code>Steam&gt;</code>的输入提示。输入<code>help</code>来获取更多信息。''


=== Windows系统 ===
=== Windows ===
打开一个命令行窗口并启动SteamCMD。
打开一个命令行窗口并启动 SteamCMD。


  cd C:\steamcmd
  cd C:\steamcmd
  steamcmd
  steamcmd


=== Linux/macOS系统 ===
=== Linux/macOS ===
打开一个终端并启动SteamCMD。
打开一个终端并启动 SteamCMD.
 
如果您是通过软件仓库中的软件包安装的:
 
cd ~
steamcmd
 
如果您是手动安装的:


  cd ~/steamcmd
  cd ~/Steam
  ./steamcmd.sh
  ./steamcmd.sh


Line 95: Line 153:
  login anonymous
  login anonymous


=== Steam帐户登录 ===
=== 使用 Steam 帐户登录 ===


一些服务端需要你使用一个Steam帐户来登录。
一些服务端需要你使用一个 Steam 帐户来登录。
{{Note|为了安全起见建议您创建一个服务端专用的Steam帐户。}}
{{Note|为了安全起见建议您创建一个服务端专用的 Steam 帐户。}}
{{Note|一个用户同时只能在一处登录(无论是在图形界面客户端还是在SteamCMD登录)。}}
{{Note|一个用户同时只能在一处登录(无论是在图形界面客户端还是在 SteamCMD 登录)。}}


  login &lt;用户名&gt;
  login &lt;用户名&gt;
Line 105: Line 163:
下一步请输入您的密码。
下一步请输入您的密码。


如果Steam 令牌已经在用户帐户上激活,查看你电子邮箱中的Steam 令牌验证码并输入它。这仅仅只是第一次登录时需要(以及当你删除了SteamCMD用于存储登录信息文件的时候)。
如果 Steam 令牌已经在用户帐户上激活,查看你电子邮箱中的 Steam 令牌验证码并输入它。这仅仅只是第一次登录时需要(以及当你删除了 SteamCMD 用于存储登录信息文件的时候)。


如果你已经成功登录了你的帐户,你应该会看到一条消息。
如果你已经成功登录了你的帐户,你应该会看到一条消息。
Line 111: Line 169:
== 下载一个应用 ==
== 下载一个应用 ==


1. 打开SteamCMD并登录它。
1. 打开 SteamCMD 并登录它。


2. 设置你的应用安装目录(注意:在Linux/macOS系统下使用正斜杠<code>/</code>,在Windows系统下使用反斜杠<code>\</code>)。
2. 设置你的应用安装目录(注意:在 Linux/macOS 下使用正斜杠<code>/</code>,在Windows 下使用反斜杠<code>\</code>)。


  force_install_dir &lt;路径&gt;
  force_install_dir &lt;路径&gt;
Line 121: Line 179:
  force_install_dir ./csgo_ds/
  force_install_dir ./csgo_ds/


'''在Windows系统''': force_install_dir .\csgo_ds\
'''在Windows ''': force_install_dir .\csgo_ds\


3. 安装或更新应用使用<code>app_update</code>命令(在这里提供[[Steam Application IDs|Steam应用ID]])。 要同时校验应用的话,需添加<code>validate</code>到命令里。要下载测试分支的话,使用<code>-beta &lt;测试名称&gt;</code>选项 &ndash; 例如,[[Half-Life Dedicated Server|半条命专用服务器]]的测试分支名为<code>beta</code>以及[[Source Dedicated Server|起源专用服务器]]的测试分支名为<code>prerelease</code>。一些测试分支设置了密码;如果要从它那里下载,需同时添加<code>-betapassword &lt;密码&gt;</code>选项。
3. 安装或更新应用使用<code>app_update</code>命令(在这里提供[[Steam Application IDs|Steam 应用 ID]])。 要同时校验应用的话,需添加<code>validate</code>到命令里。要下载测试分支的话,使用<code>-beta &lt;测试名称&gt;</code>选项 &ndash; 例如,[[Half-Life Dedicated Server|半条命专用服务器]]的测试分支名为<code>beta</code>以及[[Source Dedicated Server|起源专用服务器]]的测试分支名为<code>prerelease</code>。一些测试分支设置了密码;如果要从它那里下载,需同时添加<code>-betapassword &lt;密码&gt;</code>选项。


  app_update &lt;应用ID&gt; [-beta &lt;测试名称&gt;] [-betapassword &lt;密码&gt;] [validate]
  app_update &lt;应用ID&gt; [-beta &lt;测试名称&gt;] [-betapassword &lt;密码&gt;] [validate]


[[Half-Life Dedicated Server|半条命专用服务器]]是一个特例:应用ID都是90,必须先选择模组。 这是通过设置配置选项<code>mod</code>来请求变量的。
[[Half-Life Dedicated Server|半条命专用服务器]]是一个特例:应用 ID 都是90,必须先选择模组。 这是通过设置配置选项<code>mod</code>来请求变量的。


  app_set_config &lt;应用ID&gt; &lt;选项名称&gt; &lt;变量选项&gt;
  app_set_config &lt;应用 ID&gt; &lt;选项名称&gt; &lt;变量选项&gt;


: 例如:安装并校验反恐精英:全球攻势专用服务器:
: 例如:安装并校验反恐精英:全球攻势专用服务器:
Line 136: Line 194:
  app_set_config 90 mod tfc
  app_set_config 90 mod tfc
  app_update 90 validate
  app_update 90 validate
{{Bug|[[Half-Life Dedicated Server|半条命专用服务器]] (应用ID 90)需要多次运行<code>app_update</code>命令才能安装完所有所需要的文件。只需运行<code>app_update 90 validate</code>多次直到没有更多的更新内容即可。}}
{{Bug|[[Half-Life Dedicated Server|半条命专用服务器]] (应用 ID 90)需要多次运行<code>app_update</code>命令才能安装完所有所需要的文件。只需运行<code>app_update 90 validate</code>多次直到没有更多的更新内容即可。}}
: 例如:安装并校验测试版本的[[Half-Life Dedicated Server|半条命专用服务器(半条命)]]:
: 例如:安装并校验测试版本的[[Half-Life Dedicated Server|半条命专用服务器(半条命)]]:
  app_update 90 -beta beta validate
  app_update 90 -beta beta validate
Line 146: Line 204:
  app_update 4940 -beta alpha -betapassword natsel validate
  app_update 4940 -beta alpha -betapassword natsel validate


3. 完成之后,输入<code>quit</code>从而正确地从Steam服务器内注销帐户。
3. 完成之后,输入<code>quit</code>从而正确地从 Steam 服务器内注销帐户。


  quit
  quit
Line 152: Line 210:
=== 验证 ===
=== 验证 ===
  validate
  validate
验证是一个命令以用来检查服务端的所有文件以确保他们符合SteamCMD所应该下载到本地的文件。如果你认为文件可能已丢失或已损坏,那么此命令将会非常有用。
验证是一个命令以用来检查服务端的所有文件以确保他们符合 SteamCMD 所应该下载到本地的文件。如果你认为文件可能已丢失或已损坏,那么此命令将会非常有用。


{{Note|验证将会覆盖已被更改了的文件。这可能会导致服务端的自定义问题。例如:如果你自定义了<code>mapcycle.txt</code>,此文件将会被覆盖至服务端的默认值。不是默认安装文件一部分的任何文件将不受影响。}}
{{Note|验证将会覆盖已被更改了的文件。这可能会导致服务端的自定义问题。例如:如果你自定义了<code>mapcycle.txt</code>,此文件将会被覆盖至服务端的默认值。不是默认安装文件一部分的任何文件将不受影响。}}
Line 160: Line 218:
=== 所支持的服务端 ===
=== 所支持的服务端 ===


已知可使用SteamCMD安装的服务端可在[[Dedicated Servers List|专用服务器列表]]页面查询。需要注意的是额外命令需在app_update之前被执行。
已知可使用 SteamCMD 安装的服务端可在[[Dedicated Servers List|专用服务器列表]]页面查询。需要注意的是额外命令需在 app_update 之前被执行。


== 自动执行SteamCMD ==
== 自动执行 SteamCMD ==


这里有两个方法来自动执行SteamCMD。(在Linux/macOS系统下使用<code>./steamcmd.sh</code>来替代<code>steamcmd</code>。)  
这里有两个方法来自动执行 SteamCMD 。(在Linux/macOS 下使用<code>./steamcmd.sh</code>来替代<code>steamcmd</code>。)  


=== 命令行 ===
=== 命令行 ===
Line 182: Line 240:
=== 创建脚本 ===
=== 创建脚本 ===


1. 把你的SteamCMD命令放置在文本文件中。(你可以添加注释,只需在其前面添加<code>//</code>。)例如:
{{Note|建议使用 UTF-8 编码保存文本文件。}}
1. 把你的 SteamCMD 命令放置在文本文件中。(你可以添加注释,只需在其前面添加<code>//</code>。)例如:
<syntaxhighlight>
<syntaxhighlight>
// 更新反恐精英:全球攻势专用服务器
// 更新反恐精英:全球攻势专用服务器
Line 196: Line 255:
</syntaxhighlight>
</syntaxhighlight>


2. 带着<code>+runscript</code>选项运行SteamCMD,指向你之前创建的文件。例如:
2. 带着<code>+runscript</code>选项运行 SteamCMD,指向你之前创建的文件。例如:


  steamcmd +runscript csgo_ds.txt
  steamcmd +runscript csgo_ds.txt
Line 202: Line 261:
== 跨平台安装 ==
== 跨平台安装 ==


它可以选择下载其他平台里SteamCMD所应该下载的文件,即使它不是当前正在运行的平台。 这是使用<code>@sSteamCmdForcePlatformType</code>变量来完成的(是的,在变量名称的开头有两个“s”。)例如:在Linux系统下载Windows端的反恐精英:全球攻势专用服务器,你可以运行下面的命令:
它可以选择下载其他平台里 SteamCMD 所应该下载的文件,即使它不是当前正在运行的平台。 这是使用<code>@sSteamCmdForcePlatformType</code>变量来完成的(是的,在变量名称的开头有两个“s”。)例如:在 Linux 下载 Windows 的反恐精英:全球攻势专用服务器,你可以运行下面的命令:


  ./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
  ./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
Line 220: Line 279:
这个变量支持<code>windows</code>,<code>macos</code>和<code>linux</code>。
这个变量支持<code>windows</code>,<code>macos</code>和<code>linux</code>。


== Windows系统 软件/脚本 ==
== Windows 软件/脚本 ==


=== condenser ===
=== condenser ===


[https://github.com/ShamelessCookie/condenser condenser] 是一个用于下载,配置和启动Steam专用服务器应用的引导程序。
[https://github.com/ShamelessCookie/condenser condenser] 是一个用于下载,配置和启动 Steam 专用服务器应用的引导程序。
=== SteamCMD AutoUpdater ===
=== SteamCMD AutoUpdater ===
安装和自动更新任何游戏服务端
安装和自动更新任何游戏服务端
Line 232: Line 291:


=== SteamCMD GUI ===
=== SteamCMD GUI ===
这个工具可以使用户在Windows系统上不通过命令行或批处理文件来使用SteamCMD。
这个工具可以使用户在 Windows 上不通过命令行或批处理文件来使用 SteamCMD。


GitHub仓库:
GitHub 仓库:
https://github.com/DioJoestar/SteamCMD-GUI
https://github.com/DioJoestar/SteamCMD-GUI


Line 240: Line 299:
在这里查看并下载:http://pastebin.com/BRUbsGQh
在这里查看并下载:http://pastebin.com/BRUbsGQh


== Linux系统 脚本 ==
== Linux 脚本 ==


===Linux Game Server Managers===
===Linux Game Server Managers===
[[Image:Lgsm-logo.png‎|right|thumb|370px|Linux Game Server Manager]]
[[File:Lgsm-logo.png‎|right|thumb|370px|Linux Game Server Manager]]
Linux Game Server Managers是一个快捷的命令行工具,通过SteamCMD来轻松地部署和管理各种游戏专用服务器。
Linux Game Server Managers 是一个快捷的命令行工具,通过 SteamCMD 来轻松地部署和管理各种游戏专用服务器。


==== 特点 ====
==== 特点 ====
Line 259: Line 318:


==== 链接 ====
==== 链接 ====
网站: http://gameservermanagers.com
网站: https://gameservermanagers.com
 
GitHub仓库: https://github.com/dgibbs64/linuxgsm


===Steam-cmd-installer===
GitHub 仓库: https://github.com/dgibbs64/linuxgsm
此脚本将自动执行SteamCMD的安装,并且选择性地安装游戏。目前此脚本已在Ubuntu系统中测试,但确认可以在Ubuntu系统,Mint系统,Centos系统,ZorinOS系统和Debian系统下工作。
 
'''如何安装'''
#首先为SteamCMD创建一个用户 “adduser steam”。
#用nano或vi创建一个叫“steamcmdinstaller.sh "的新文件。
#从https://github.com/Gousaid67/steam-cmd-installer 查找steamcmdinstaller.sh的最新版本,并将其粘贴到新创建的文件中。
#chmod +x steamcmdinstaller.sh 使脚本可以被执行。
#运行脚本 ./steamcmdinstaller.sh 。系统将提示你输入各种设置。
#现在该脚本将自动下载并安装SteamCMD。 你还可以通过选项给它一个应用ID来安装你所选择的游戏服务端。
'''可选:定义自定义路径'''
 
这个脚本可设置自定义路径到 /home/steam/ 之外但需要编辑脚本。感谢[https://github.com/dvdvideo1234 dvdvideo1234]在该功能上的帮助。
# 首先根据第四行的说明来编辑脚本。
# 之后执行./steamcmdinstaller.sh "自定义路径"之后再按照说明进行安装。如果你设置路径到受限目录比如 /etc,那么脚本将无法工作。


===SteamCMD Guardian 1.2===
===SteamCMD Guardian 1.2===


下面的脚本已在Debian系统Wheezy版本上测试。
下面的脚本已在 Debian Wheezy 上测试。
在这里查看并下载:
在这里查看并下载:
http://pastebin.com/hcpMpmaZ
http://pastebin.com/hcpMpmaZ
Line 288: Line 331:
'''安装教程'''  
'''安装教程'''  


为了使这个脚本的工作,我们需要一个工作位置。你最好创建个用户(例如steam)以及它自己的根目录(/home/steam)并且通过SSH,tty且使用su来登录它。
为了使这个脚本的工作,我们需要一个工作位置。你最好创建个用户(例如 steam)以及它自己的根目录(/home/steam)并且通过 SSH,tty 且使用 su 来登录它。


# 创建文件  
# 创建文件  
Line 300: Line 343:
#: <code>./updateserver.sh</code>
#: <code>./updateserver.sh</code>


这个文件将自动安装,更新SteamCMD,以及安装所有选定的游戏(最多4个)。再次运行该文件将更新游戏。
这个文件将自动安装,更新 SteamCMD,以及安装所有选定的游戏(最多4个)。再次运行该文件将更新游戏。


== 已知的问题 ==
== 已知的问题 ==
===ERROR! Failed to install app 'xxxxxx' (No subscription)===
=== 乱码 ===


If you get the 'No subscription' error, the game/server you are trying to download either requires a login or that you have purchased the game. You will therefore have to log in with a Steam username and password &ndash; if that doesn't help, you may need to purchase a copy of the game on Steam first. See [[Dedicated Servers List]].
如果出现乱码的问题,请尝试更换窗口所调用的字体。


{{Note|For security reasons it is recommended that you create a new Steam account just for your dedicated servers.}}
'''方法'''


For example
# 右键宽口标题
# 进入属性页面
# 进入字体标签页
# 在字体一栏选择 Consolas 字体或新宋体字体等,只要选择的字体无乱码问题即可,可凭个人偏好选择字体
# 点击确定保存设定
 
=== ERROR! Failed to install app 'xxxxxx' (No subscription) ===
 
如果你得到 'No subscription' 的错误,请你尝试在下载之前先登录帐户或者需要你已购买该游戏/服务端。因此你需要使用 Steam 用户名和密码来登录 &ndash; 如果这无法帮到你,你可能需要先在 Steam 购买游戏的副本。查看[[Dedicated Servers List|专用服务器列表]].
 
{{Note|为了安全起见,建议你创建一个只用于专用服务器的新的 Steam 帐户。}}
 
例如
<syntaxhighlight>
<syntaxhighlight>
steamcmd +login <username> <password>
steamcmd +login <用户名> <密码>
</syntaxhighlight>
</syntaxhighlight>


=== 32-bit libraries on 64-bit Linux systems ===
=== 在64位Linux 上需使用32位的库 ===


Since SteamCMD is a 32-bit binary, 32-bit libraries are required.
由于 SteamCMD 是一个32位应用,所以需要32位的库。


The following error may occur:
可能会出现以下错误:


  steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
  steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory


The resolution depends on your distro:
解决方法取决于你的 Linux 发行版本:


==== Debian based distributions (Ubuntu, Mint, etc.) ====
==== 基于 Debian 的发行版(Ubuntu,Mint 等。) ====


  sudo apt-get install lib32stdc++6
  sudo apt-get install lib32stdc++6


{{Note|<code>ia32-libs</code> are not required to install SteamCMD; <code>lib32gcc1</code> is enough.}}
{{Note|安装 SteamCMD 并不需要<code>ia32-libs</code><code>lib32gcc1</code> 就足够了。}}


With '''Debian 7 "Wheezy"''' you may encounter this error:
'''Debian 7 "Wheezy"''' 你可能会遇到这样的错误:


  The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installable
  The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installable
  E: Unable to correct problems, you have held broken packages.
  E: Unable to correct problems, you have held broken packages.


To fix this, do the following:
要修复这个错误,你需要执行下面的操作:
<syntaxhighlight>
<syntaxhighlight>
  dpkg --add-architecture i386
  dpkg --add-architecture i386
Line 342: Line 397:
</syntaxhighlight>
</syntaxhighlight>


==== Red Hat based distributions (RHEL, Fedora, CentOS, etc.) ====
==== 基于Red Hat 的发行版(RHEL,Fedora,CentOS 等。) ====


  yum install glibc.i686 libstdc++.i686
  yum install glibc.i686 libstdc++.i686


==== Arch Linux ====
==== Arch Linux ====
Don't forget to first enable the [https://wiki.archlinux.org/index.php/Multilib multilib repository].
首先不要忘记开启 [https://wiki.archlinux.org/index.php/Multilib_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) multilib 仓库]


  pacman -S lib32-gcc-libs
  pacman -S lib32-gcc-libs
Line 353: Line 408:
=== Login Failure: No Connection ===
=== Login Failure: No Connection ===


On linux servers, you may experience a "Login Failure: No Connection" error. This is related to missing iptables rules. You will want something along these lines:
在Linux 服务器上,你可能会遇到一个“Login Failure: No Connection”的错误。这或许是因为缺少 iptables 规则。你需要要执行下面几行内容:
<syntaxhighlight>
<syntaxhighlight>
iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT
</syntaxhighlight>
</syntaxhighlight>
The port list is found here: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english
在这里可以找到需要的端口列表:https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=simplified%20chinese


On Windows servers, you may experience "SteamUpdater: Error: Download failed: http error 0" and "SteamUpdater: Error: Steam needs to be online to update.  Please confirm your network connection and try again.". This is usually fixed by checking "Automatically detect settings" in IE (Internet Explorer) through the lan settings in the Internet option menu.
在Windows 服务器上,你可能会遇到 "SteamUpdater: Error: Download failed: http error 0" "SteamUpdater: Error: Steam needs to be online to update.  Please confirm your network connection and try again." 。这通常通过设置 IE(Internet Explorer)Internet 选项中连接标签页中的局域网(LAN)设置中的自动配置框中的自动检测设置来修复。


# Open Internet Explorer (IE).
# 打开Internet Explorer (IE)
# Click on ''Tools'' &rarr; ''Internet Options''
# 点击“工具” → “Internet选项”
# Click on the ''Connections'' tab
# 点击“连接”标签页
# At the bottom, you should see ''Local Area Network (LAN) Settings''.
# 在底部,你应该可以看到“局域网(LAN)设置”。=
# Check the first box (''Automatically detect settings'')
# 选中第一个框(“自动检测设置”)
# Hit ''OK'', and ''Apply''. Try running the SteamCMD again; if it still doesn't work. try lowering your ''Internet Security level zone'' to medium or lower. You can find that in the ''Security'' tab in ''Internet Options''.
# 点击''确定''''应用''。再次尝试运行 SteamCMD;如果仍然无法正常工作。尝试降低你的'该区域的允许级别'到中等或更低。你可以在“Internet 选项”中的“安全”标签页发现它。


=== SteamCMD startup errors ===
=== SteamCMD 启动错误 ===
==== Unable to locate a running instance of Steam ====
==== Unable to locate a running instance of Steam ====
You may get the following error when starting a server with Linux:
在开启 Linux 服务端时,你可能会得到以下错误:


  [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.
  [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.


Resolve the issue by linking <code>steamclient.so</code> to the <code>~/.steam/sdk32/steamclient.so</code> directory:
通过链接<code>steamclient.so</code><code>~/.steam/sdk32/steamclient.so</code>目录来解决问题:


  ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so
  ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so


==== ulimit Linux startup error ====
==== Linux 的 ulimit 启动错误====
Some users may get a <code>ulimit</code> error (no permission/cannot open file) while script is starting up. This error caused by a low setting of the <code>-n</code> parameter (number of file descriptors) of <code>ulimit</code>. SteamCMD uses standard commands inside of the initialization shell script to change the <code>ulimit</code> automatically, but some servers may forbid increasing <code>ulimit</code> values after startup (or beyond a limit set by <code>root</code>).
当开始运行脚本时一些用户可能会得到<code>ulimit</code> 错误 (没有权限/无法打开文件)。这个错误是因为<code>ulimit</code><code>-n</code>参数(文件描述符数目)设置过低造成的。SteamCMD使用标准的命令代替Shell初始脚本来自动修改<code>ulimit</code>,但是一些服务器系统可能在启动后禁止提高<code>ulimit</code>的值(或者通过<code>root</code>来突破上限设置)。
 
这可以改变并固定ulimit文件描述符数目:
This can be fixed by changing the file descriptor number ulimit:


  ulimit -n 2048
  ulimit -n 2048


If an error appears (''no permission''), you will have to log in as root to change the parameter. To check the current setting, type '''ulimit -a'''; the system will reply with many rows, you need to find one:
如果出现错误(''no permission''),你需要登录root来改变这个参数。想要检查当前设置,输入'''ulimit -a''';系统将显示多行内容,你需要找到:
  open files                      (-n) 1024
  open files                      (-n) 1024
In this case, ''1024'' is the current value.
在这种情况下,"1024" 是当前值。


<code>root</code> can also modify the limits in the <code>/etc/security/limits.conf</code> file.
<code>root</code>也可以在<code>/etc/security/limits.conf</code>文件修改此限制。


In most instances you will simply get a warning message however it will not stop SteamCMD from running.
在大多数情况下,你只会得到一个警告消息,但它不会停止运行 SteamCMD


=== Only the HLDS engine is downloaded ===
=== 只下载了半条命专用服务器引擎 ===


When trying to download a HL1 mod like TFC, initially it only downloads the engine files of the HLDS, but not the mod. This happens with both the regular version and the beta. You may have to try multiple times until all the required files are downloaded, but once this is done, the files should update correctly next time.
当试图下载一个半条命模组就像是军团要塞时,最初它只是下载半条命专用服务器的引擎文件,而不是模组。这种情况同时发生在普通版和测试版。你可能需要尝试多次直到已下载完所有所需的文件,只要完成了一次,下一次应该就会正常更新。 


Work-around for this issue here: http://danielgibbs.co.uk/2013/11/hlds-steamcmd-workaround-appid-90/
在这里有这个问题的解决方法:https://danielgibbs.co.uk/2013/11/hlds-steamcmd-workaround-appid-90/


Just deleting the appmanifest files, without downloading replacements from a third party, may work as well! You will get an error at first though, complaining that something went wrong, which is due to the deleted files.
这只是删除了 appmanifest 文件,替换从第三方下载的版本,这也许可行! 虽然首先你将会得到一个错误,抱怨说出了问题,但这只是因为那个被删除的文件。


On a side note, for some reason CS is always installed as well.
旁注,由于某种原因,CS 总是可以安装完成。


== See Also ==
== 也可以看看 ==
* [[Source Dedicated Server]]
* [[Source Dedicated Server|起源专用服务器]]
* [[Half-Life Dedicated Server]]
* [[Half-Life Dedicated Server|半条命专用服务器]]
* [[Dedicated Servers List]]
* [[Dedicated Servers List|专用服务器列表]]
* [[SteamCMDui]]
* [[SteamCMDui]]



Latest revision as of 20:41, 10 July 2024

English (en)Deutsch (de)Español (es)Français (fr)한국어 (ko)Nederlands (nl)Polski (pl)Português do Brasil (pt-br)Русский (ru)Türkçe (tr)中文 (zh)Translate (Translate)

Steam 控制台客户端SteamCMD)是一个命令行版本的 Steam 客户端。它的主要用途是在一个命令行界面的 Steam 客户端上安装及更新各种可用的专用服务端。它适用于使用 SteamPipe 内容分发系统的游戏。所有游戏已经从旧的 半条命专用服务器更新工具迁移到了 SteamCMD。

下载 SteamCMD

Windows

1. 创建一个为 SteamCMD 准备的文件夹。

例如

C:\steamcmd

2. 下载适用于 Windows 系统的 SteamCMD:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip


3. 提取 zip 中的文件至文件夹。

Linux

创建一个名为 steam 的用户帐户以安全地运行 SteamCMD,并将其与操作系统的其余部分隔离。以 root 用户身份登录时请勿运行 steamcmd——这样做会带来安全风险

1. 以 root 用户身份创建 steam 用户:

useradd -m steam

2. 进入其主文件夹:

cd /home/steam

安装来自软件仓库的软件包

1. 建议从您的分发软件仓库安装 SteamCMD 软件包(如果有):

Ubuntu/Debian

sudo apt install steamcmd
Note.png注意:如果您使用的是64位计算机,则需要添加 multiverse
 sudo add-apt-repository multiverse
 sudo dpkg --add-architecture i386
 sudo apt update
 sudo apt install lib32gcc1 steamcmd 

RedHat/CentOS

yum install steamcmd

Arch Linux

git clone https://aur.archlinux.org/steamcmd.git
cd steamcmd
makepkg -si

2. 链接 steamcmd 可执行文件:

ln -s /usr/games/steamcmd steamcmd

Docker

如果你的服务器正在运行 Docker,您可以简单地使用:

docker run -it --name=steamcmd cm2network/steamcmd bash

steamcmd.sh location: /home/steam/steamcmd

该映像可用作基于Steam的专用服务器的基础映像。 例如: https://hub.docker.com/r/cm2network/csgo/

您可以在此处找到相关的 Docker Hub 页面: https://hub.docker.com/r/cm2network/steamcmd/


手动安装

1. 在开始之前,您必须先安装运行 SteamCMD 所需的依赖项:

Ubuntu/Debian 64-Bit

sudo apt-get install lib32gcc1

RedHat/CentOS

yum install glibc libstdc++

RedHat/CentOS 64-Bit

yum install glibc.i686 libstdc++.i686

2. 以 root 用户身份升级至 steam 用户:

su - steam

如果您不是以 root 用户身份登录,而是使用sudo来行使管理权限,请以如下所示来升级至 steam 用户:

sudo -iu steam

3. 为 SteamCMD 创建目录并切换至该目录。

mkdir ~/Steam && cd ~/Steam

4. 下载并解压缩适用于 Linux 的 SteamCMD。

curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

中国内地用户可使用以下命令以使用内地节点:

curl -sqL "https://media.st.dl.bscstorage.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

5. 安装tmux 和/或 screen 以简化服务器管理

sudo apt-get install tmux screen -y;

macOS

1.打开终端并创建一个为 SteamCMD 准备的目录。

mkdir ~/steamcmd && cd ~/steamcmd

2. 下载并解压缩适用于 macOS 的 SteamCMD。

curl -sqL ' https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz ' | tar zxvf -

中国内地用户可使用以下命令以使用内地节点:

curl -sqL ' https://media.st.dl.bscstorage.net/client/installer/steamcmd_osx.tar.gz ' | tar zxvf -

运行 SteamCMD

在第一次运行 SteamCMD 时将自动更新并显示一个Steam>的输入提示。输入help来获取更多信息。

Windows

打开一个命令行窗口并启动 SteamCMD。

cd C:\steamcmd
steamcmd

Linux/macOS

打开一个终端并启动 SteamCMD.

如果您是通过软件仓库中的软件包安装的:

cd ~
steamcmd

如果您是手动安装的:

cd ~/Steam
./steamcmd.sh

登录 SteamCMD

匿名登录

下载大多数游戏服务端,你可以选择匿名登录。

login anonymous

使用 Steam 帐户登录

一些服务端需要你使用一个 Steam 帐户来登录。

Note.png注意:为了安全起见建议您创建一个服务端专用的 Steam 帐户。
Note.png注意:一个用户同时只能在一处登录(无论是在图形界面客户端还是在 SteamCMD 登录)。
login <用户名>

下一步请输入您的密码。

如果 Steam 令牌已经在用户帐户上激活,查看你电子邮箱中的 Steam 令牌验证码并输入它。这仅仅只是第一次登录时需要(以及当你删除了 SteamCMD 用于存储登录信息文件的时候)。

如果你已经成功登录了你的帐户,你应该会看到一条消息。

下载一个应用

1. 打开 SteamCMD 并登录它。

2. 设置你的应用安装目录(注意:在 Linux/macOS 下使用正斜杠/,在Windows 下使用反斜杠\)。

force_install_dir <路径>

例如 一个名叫csgo_ds的在当前目录下的目录:

force_install_dir ./csgo_ds/

在Windows : force_install_dir .\csgo_ds\

3. 安装或更新应用使用app_update命令(在这里提供Steam 应用 ID)。 要同时校验应用的话,需添加validate到命令里。要下载测试分支的话,使用-beta <测试名称>选项 – 例如,半条命专用服务器的测试分支名为beta以及起源专用服务器的测试分支名为prerelease。一些测试分支设置了密码;如果要从它那里下载,需同时添加-betapassword <密码>选项。

app_update <应用ID> [-beta <测试名称>] [-betapassword <密码>] [validate]

半条命专用服务器是一个特例:应用 ID 都是90,必须先选择模组。 这是通过设置配置选项mod来请求变量的。

app_set_config <应用 ID> <选项名称> <变量选项>
例如:安装并校验反恐精英:全球攻势专用服务器:
app_update 740 validate
例如:安装并校验军团要塞专用服务器:
app_set_config 90 mod tfc
app_update 90 validate
Icon-Bug.png错误:半条命专用服务器 (应用 ID 90)需要多次运行app_update命令才能安装完所有所需要的文件。只需运行app_update 90 validate多次直到没有更多的更新内容即可。  [todo tested in ?]
例如:安装并校验测试版本的半条命专用服务器(半条命)
app_update 90 -beta beta validate
例如:安装并校验测试版本的反恐精英:起源专用服务器:
app_update 232330 -beta prerelease validate
例如:安装并校验私人测试版本的物竞天择2专用服务器(测试名称alpha,测试密码natsel):
[测试名称]是私人测试分支的名称
[测试密码]是私人测试分支的密码
app_update 4940 -beta alpha -betapassword natsel validate

3. 完成之后,输入quit从而正确地从 Steam 服务器内注销帐户。

quit

验证

validate

验证是一个命令以用来检查服务端的所有文件以确保他们符合 SteamCMD 所应该下载到本地的文件。如果你认为文件可能已丢失或已损坏,那么此命令将会非常有用。

Note.png注意:验证将会覆盖已被更改了的文件。这可能会导致服务端的自定义问题。例如:如果你自定义了mapcycle.txt,此文件将会被覆盖至服务端的默认值。不是默认安装文件一部分的任何文件将不受影响。

建议你只在初次安装时或如果服务端有问题时才使用此命令。

所支持的服务端

已知可使用 SteamCMD 安装的服务端可在专用服务器列表页面查询。需要注意的是额外命令需在 app_update 之前被执行。

自动执行 SteamCMD

这里有两个方法来自动执行 SteamCMD 。(在Linux/macOS 下使用./steamcmd.sh来替代steamcmd。)

命令行

Note.png注意:当在命令行使用-beta选项时,它必须以一种特殊的方式被引用,比如+app_update "90 -beta beta"
Note.png注意:如果这不工作尝试将它用"+app_update 90 -beta beta"代替。

在命令行追加命令需要在其前面添加加号,例如:

steamcmd +login anonymous +force_install_dir ./csgo_ds +app_update 740 +quit

安装半条命的一个特定游戏模组,比如反恐精英:零点行动:

steamcmd +login anonymous +force_install_dir ./czero +app_set_config 90 mod czero +app_update 90 +quit

安装一个需要登录的游戏,就像杀戮空间:

steamcmd +login <用户名> <密码> +force_install_dir .\KFServer\ +app_update 215350 +quit

创建脚本

Note.png注意:建议使用 UTF-8 编码保存文本文件。

1. 把你的 SteamCMD 命令放置在文本文件中。(你可以添加注释,只需在其前面添加//。)例如:

// 更新反恐精英:全球攻势专用服务器
//
@ShutdownOnFailedCommand 1 //如果一次更新多个服务端请设置为0
@NoPromptForPassword 1
login <username> <password>
//一些服务端并不需要登录
//login anonymous 
force_install_dir ./csgo_ds
app_update 740 validate
quit

2. 带着+runscript选项运行 SteamCMD,指向你之前创建的文件。例如:

steamcmd +runscript csgo_ds.txt

跨平台安装

它可以选择下载其他平台里 SteamCMD 所应该下载的文件,即使它不是当前正在运行的平台。 这是使用@sSteamCmdForcePlatformType变量来完成的(是的,在变量名称的开头有两个“s”。)例如:在 Linux 下载 Windows 的反恐精英:全球攻势专用服务器,你可以运行下面的命令:

./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit

或者使用下面的脚本:

@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType windows
login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quit

这个变量支持windowsmacoslinux

Windows 软件/脚本

condenser

condenser 是一个用于下载,配置和启动 Steam 专用服务器应用的引导程序。

SteamCMD AutoUpdater

安装和自动更新任何游戏服务端

GitHub仓库: https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver

SteamCMD GUI

这个工具可以使用户在 Windows 上不通过命令行或批处理文件来使用 SteamCMD。

GitHub 仓库: https://github.com/DioJoestar/SteamCMD-GUI

SteamCMD Guardian 1.2

在这里查看并下载:http://pastebin.com/BRUbsGQh

Linux 脚本

Linux Game Server Managers

Linux Game Server Manager

Linux Game Server Managers 是一个快捷的命令行工具,通过 SteamCMD 来轻松地部署和管理各种游戏专用服务器。

特点

  • 安装服务端 (SteamCMD)
  • 启动/关闭/重启 服务端
  • 更新服务端 (SteamCMD)
  • 监控服务端 (包括用电子邮件通知)
  • 查看服务端的详细信息
  • 备份服务端
  • 可以进入服务端控制台

支持的服务端

现在支持40多个不同的游戏服务端并且数量还在上升。详情列表请访问网站。

链接

网站: https://gameservermanagers.com

GitHub 仓库: https://github.com/dgibbs64/linuxgsm

SteamCMD Guardian 1.2

下面的脚本已在 Debian Wheezy 上测试。 在这里查看并下载: http://pastebin.com/hcpMpmaZ


安装教程

为了使这个脚本的工作,我们需要一个工作位置。你最好创建个用户(例如 steam)以及它自己的根目录(/home/steam)并且通过 SSH,tty 且使用 su 来登录它。

  1. 创建文件
    nano updateserver.sh
  2. 粘贴脚本代码
  3. 修改脚本代码,在DL_SV*=一行的最后添加一个游戏。
  4. 使用Ctrl+O关闭文件,其次是 Enter,最后Ctrl+X
  5. 给用户执行文件的权限
    chmod u+x ./updateserver.sh
  6. 运行文件
    ./updateserver.sh

这个文件将自动安装,更新 SteamCMD,以及安装所有选定的游戏(最多4个)。再次运行该文件将更新游戏。

已知的问题

乱码

如果出现乱码的问题,请尝试更换窗口所调用的字体。

方法

  1. 右键宽口标题
  2. 进入属性页面
  3. 进入字体标签页
  4. 在字体一栏选择 Consolas 字体或新宋体字体等,只要选择的字体无乱码问题即可,可凭个人偏好选择字体
  5. 点击确定保存设定

ERROR! Failed to install app 'xxxxxx' (No subscription)

如果你得到 'No subscription' 的错误,请你尝试在下载之前先登录帐户或者需要你已购买该游戏/服务端。因此你需要使用 Steam 用户名和密码来登录 – 如果这无法帮到你,你可能需要先在 Steam 购买游戏的副本。查看专用服务器列表.

Note.png注意:为了安全起见,建议你创建一个只用于专用服务器的新的 Steam 帐户。

例如

steamcmd +login <用户名> <密码>

在64位Linux 上需使用32位的库

由于 SteamCMD 是一个32位应用,所以需要32位的库。

可能会出现以下错误:

steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

解决方法取决于你的 Linux 发行版本:

基于 Debian 的发行版(Ubuntu,Mint 等。)

sudo apt-get install lib32stdc++6
Note.png注意:安装 SteamCMD 并不需要ia32-libslib32gcc1 就足够了。

Debian 7 "Wheezy" 你可能会遇到这样的错误:

The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installable
E: Unable to correct problems, you have held broken packages.

要修复这个错误,你需要执行下面的操作:

 dpkg --add-architecture i386
 apt-get update
 apt-get install lib32gcc1

基于Red Hat 的发行版(RHEL,Fedora,CentOS 等。)

yum install glibc.i686 libstdc++.i686

Arch Linux

首先不要忘记开启 multilib 仓库

pacman -S lib32-gcc-libs

Login Failure: No Connection

在Linux 服务器上,你可能会遇到一个“Login Failure: No Connection”的错误。这或许是因为缺少 iptables 规则。你需要要执行下面几行内容:

iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT

在这里可以找到需要的端口列表:https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=simplified%20chinese

在Windows 服务器上,你可能会遇到 "SteamUpdater: Error: Download failed: http error 0" 和 "SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again." 。这通常通过设置 IE(Internet Explorer)的 Internet 选项中连接标签页中的局域网(LAN)设置中的自动配置框中的自动检测设置来修复。

  1. 打开Internet Explorer (IE)。
  2. 点击“工具” → “Internet选项”
  3. 点击“连接”标签页
  4. 在底部,你应该可以看到“局域网(LAN)设置”。=
  5. 选中第一个框(“自动检测设置”)
  6. 点击确定应用。再次尝试运行 SteamCMD;如果仍然无法正常工作。尝试降低你的'该区域的允许级别'到中等或更低。你可以在“Internet 选项”中的“安全”标签页发现它。

SteamCMD 启动错误

Unable to locate a running instance of Steam

在开启 Linux 服务端时,你可能会得到以下错误:

[S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.

通过链接steamclient.so~/.steam/sdk32/steamclient.so目录来解决问题:

ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so

Linux 的 ulimit 启动错误

当开始运行脚本时一些用户可能会得到ulimit 错误 (没有权限/无法打开文件)。这个错误是因为ulimit-n参数(文件描述符数目)设置过低造成的。SteamCMD使用标准的命令代替Shell初始脚本来自动修改ulimit,但是一些服务器系统可能在启动后禁止提高ulimit的值(或者通过root来突破上限设置)。 这可以改变并固定ulimit文件描述符数目:

ulimit -n 2048

如果出现错误(no permission),你需要登录root来改变这个参数。想要检查当前设置,输入ulimit -a;系统将显示多行内容,你需要找到:

open files                      (-n) 1024

在这种情况下,"1024" 是当前值。

root也可以在/etc/security/limits.conf文件修改此限制。

在大多数情况下,你只会得到一个警告消息,但它不会停止运行 SteamCMD 。

只下载了半条命专用服务器引擎

当试图下载一个半条命模组就像是军团要塞时,最初它只是下载半条命专用服务器的引擎文件,而不是模组。这种情况同时发生在普通版和测试版。你可能需要尝试多次直到已下载完所有所需的文件,只要完成了一次,下一次应该就会正常更新。

在这里有这个问题的解决方法:https://danielgibbs.co.uk/2013/11/hlds-steamcmd-workaround-appid-90/

这只是删除了 appmanifest 文件,替换从第三方下载的版本,这也许可行! 虽然首先你将会得到一个错误,抱怨说出了问题,但这只是因为那个被删除的文件。

旁注,由于某种原因,CS 总是可以安装完成。

也可以看看