饥荒开服(含各种踩雷)
纯小白,用过Mac电脑.这就是我全部Linux基础了,结果搭建了一个上午才勉强搭出来过程中感觉比饥荒还饥荒.所以我在这里分享一下我自己的搭建过程…我是使用的阿里云的Ubuntu 18.04 64位的服务器,我尽量会把出错误的各种情况说清楚
0.安装步骤
- 安装依赖
- 下载steamcmd
- 下载饥荒服务端
- 在klei官网开服
- 在本人的电脑上开档并上传到服务器
- 编写shell开服
1.安装依赖
这一步是最艰难的,你根本想不到要装一些什么才能和其他的教程一样
(0. 终端里键入cd ~
进入家目录,不然后面装在什么地方就不好找了,这个雷坑应该没什么人踩)
1. 更新包管理软件
其他系统同理,注意同时有upgrade和update
没弄好会出现这种错误
Unable to locate package xxx
sudo apt-get update
sudo apt-get upgrade
sudo apt upgrade
sudo apt upgrade
2. 下载32位的库文件
64位的Linux不装32位库文件会打不开32位的软件的,32位的系统也要安装相应的文件
没弄好会出现这种错误
xxx: No such file or directory
这里…我安装了超级多的库文件,才解决了问题,这个地方每个人的情况都不一样,我是都试了一遍,不建议像我这样,实在不行了就死马当活马医吧
ia32-libs 许多Linux和低版本的Ubuntu
lib32ncurses5 高版本Ubuntu就换成这个
lib32z1/lib32z1*
libstdc++6/libstdc++6*
这两个我是加了星号才解决的
libgcc1
lib32gcc1
3.curl
没弄好会这样
error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
和这个问题相似的是
error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
这个问题在第二点解决了,就是加上*
号
libcurl4-gnutls-dev
很多Linux不支持下这个,那这个时候就要偷梁换柱(外国友人提醒)
先安装libcurl4
cd /usr/lib/
ln -s libcurl.so.4 libcurl-gnutls.so.4
然后执行这个命令
2.下载steamcmd
命令行形式的steam,注意,下面的指令都是在家目录下执行的
mkdir steamcmd
cd steamcmd
wget -P ~/steamcmd https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
创建文件夹,进入文件夹,下载cmd安装包,安装他到steamcmd里
进入成功差不多是这个样子
3.下载饥荒服务端
./steam.sh #进入steam
login anonymous #匿名登录steam
force_install_dir /home/DSTserver
#让下载文件下载到这个地方,务必使用绝对路径,
#我用~/DST你敢信它在steamcmd文件夹里创建了一个`~`文件夹
app_update 343050 validate #下载服务端(这个过程很慢,不要急,超时了就重来一次,还是不要急)
quit #退出服务端
这两步都没遇到什么问题
4.Klei官网开服
进入官网,用steam登录,网址https://accounts.klei.com/login
这里登录steam社区是要梯子的,没有梯子可以在steam自己的浏览器里进klei官网,然后用加速器加速登录进去
登录后可以看见自己的很多信息
然后点击上面很多选项中的"游戏",在游戏列表中找到饥荒,点击"饥荒联机版的游戏服务器"
起一个恶毒的名字(这个名字和服务器的名字没有关系),点击添加新服务器
把下面的数字存下来,这样就算开服成功了
5.开档
把下好的饥荒联机版打开(没下联机版你干嘛要开服?)
创建一个世界,到选人物的地方就可以出来,先玩一会也没事,开服以后进去就是从你玩的这个地方开始
退出来
打开游戏存档(点右上角那个)
把这些文件拉出来保存一份
修改里面的cluster_token.txt
文件(没有就创建一个),在里面输入之前开服时保存的数字
把这些文件发送给服务器(我是用xshell,简单好用)保存在~/.klei/DoNotStarveTogether/Cluster_1
里
6.写脚本
最后一步了~~~
先确定自己有没有下screen,这个可以起到后台运行的作用
sudo apt-get install screen
在~文件夹里创建一个startDST.sh
文件,写下如下脚本
#!/bin/bash
steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/DSTserver"
cluster_name="Cluster_1"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"
function fail()
{
echo Error: "$@" >&2
exit 1
}
function check_for_file()
{
if [ ! -e "$1" ]; then
fail "Missing file: $1"
fi
}
cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"
check_for_file "steamcmd.sh"
check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
./steamcmd.sh +force_install_dir "$install_dir" +login anonymous +app_update 343050 validate +quit
check_for_file "$install_dir/bin"
cd "$install_dir/bin" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
"${run_shared[@]}" -shard Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" -shard Master | sed 's/^/Master: /'
记得给予这个脚本执行权限
chmod u+x ~/startDST.sh
现在,后台运行饥荒服务器!
screen -S DST
./startDST.sh
Ctrl +a+d
这一步里可能出现的问题我也放在开头了,问就是缺少依赖