饑荒開服(含各種踩雷)

純小白,用過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
這一步里可能出現的問題我也放在開頭了,問就是缺少依賴
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294594.html
標籤:其他
