由于个人原因,我的饥荒服务器从来没有存在过一个月以上(玩两天就不想玩了)然而过一段时间又想重温这个游戏,每次都是想和好友玩的时候再搭建一遍,感觉都非常地麻烦。于是,我写了一个脚本 。
这个脚本功能还不是很完善,主要是ldd部分,还不能自动处理问题。
从标题可以看出来这是一个半自动脚本,这么设计主要是因为每个服务器的mod、游戏模式各不相同,不可能写出一个完美的配置。这个脚本可以快捷部署一个服务器,但是配置部分需要自行配置。
注意:
本脚本仅适用于Debian,Ubuntu未测试,如您必须要在Ubuntu等其它发行版下使用,碰到问题,请尝试自行解决,请勿反馈。
最后测试环境:标准Debian 10 x64
《饥荒联机版》也叫 Don’t Starve Together 所以下文中的dst 饥荒 均代表《饥荒联机版》
食用方法:
curl -O -L https://raw.githubusercontent.com/wlmqpsc/some-scrips/master/build_dst_server.sh
chmod 755 ./build_dst_server.sh
sudo ./build_dst_server
这个脚本需要root权限,运行后会有英文指引,只需要按照提示输入相应内容。
选项提示中的大写字母是默认选项,使用时不用区分大小写。
这个脚本干的事情:
- 要求你手动添加一个non-free源
- 安装steamcmd
- 创建一个用户,名为steam,并创建home目录
- 使用用户steam的权限安装Don’t Starve Together
- 使用ldd检查依赖
- 生成服务器启动脚本
详细说明
1、添加non-free源时,脚本会使用 nano 打开 /etc/apt/sources.list 。一般,只需要在stable main contrib 后面加上 non-free 即可。例如下面这样:
deb http://http.debian.org/debian stable main contrib non-free
之后脚本会尝试安装steamcmd。
2、新添加的用户的名字是steam,home目录是/home/steam,shell默认使用sh,sh不支持tab命令补全,如果需要切换到bash,请编辑/etc/passwd
,找到steam用户将末尾修改为/bin/bash。
steam用户没有密码,普通用户必须使用root权限加上su才能切换到steam,具体如下:
sudo su steam
如果你需要为其设置密码
sudo passwd steam
该用户没有sudo权限,如非必要无需添加。
3、目前ldd在检测到错误后,会自动退出,直到手动修复,ldd不出现问题。具体修复方法:
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found
cp ~/steamcmd/linux32/libstdc++.so.6 ~/dst/bin/lib32/
/lib/libc.so.6: version `GLIBC_2.15' not found
cd ~/dst/bin/lib32/
wget https://github.com/dgibbs64/linuxgameservers/raw/master/Insurgency/dependencies/libc.so.6
wget https://github.com/dgibbs64/linuxgameservers/raw/master/Insurgency/dependencies/libpthread.so.0
wget https://github.com/dgibbs64/linuxgameservers/raw/master/Insurgency/dependencies/librt.so.1
libcurl-gnutls.so.4 not found
sudo apt-get install libcurl4-gnutls-dev:i386
4、服务器启动时请使用steam用户,进入/home/steam/dst/bin后运行./dst_overworld.sh以及./dst_caves.sh启动地面以及洞穴。需要使用screen命令来保持运行
sudo su steam
cd home/steam/dst/bin
screen -S world
./dst_overworld.sh
#先按一下Ctrl和A再同时按下Ctrl和D进行分离
screen -S cave
./dst_caves.sh
#同理按一下Ctrl和A再同时按下Ctrl和D进行分离
最后
服务器配置篇在这里:[重写]饥荒服务器搭建 配置篇
项目还在Alpha版本,部分功能还未完成,欢迎提出改进意见!