LinuxGSM依赖资源迁移

继上次发布CS:GO对战服务器搭建之后,我发现了这种开服方式的许多问题。在分析脚本之后,就能发现其中存在请求方面的问题。

问题所在

以下是lgsm/functions/install_config.sh文件中的一些内容

1
2
3
4
5
6
7
8
9
10
11
12
13
# Downloads default configs from Game-Server-Configs repo to lgsm/config-default.
fn_fetch_default_config(){
echo -e ""
echo -e "${lightyellow}Downloading ${gamename} Configs${default}"
echo -e "================================="
echo -e "default configs from https://github.com/GameServerManagers/Game-Server-Configs"
fn_sleep_time
mkdir -p "${lgsmdir}/config-default/config-game"
githuburl="https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/master"
for config in "${array_configs[@]}"; do
fn_fetch_file "${githuburl}/${gamedirname}/${config}" "${remote_fileurl_backup}" "GitHub" "Bitbucket" "${lgsmdir}/config-default/config-game" "${config}" "nochmodx" "norun" "forcedl" "nomd5"
done
}

在获取资源文件时,脚本请求的是Github资源库中所有的文件。由于众所周知的原因,国内使用GIthub往往是非常不稳定的。所以在运行脚本的时候极有可能发生错误。要避免这种错误,就要对这些资源进行国内化的转移。

资源迁移

在你阅读下面的内容之前,我还准备了更好的解决方案。已经做好了优化和修改。

1
wget -O linuxgsm.sh https://gitee.com/scholarcoder/LinuxGSM/raw/master/linuxgsm.sh && chmod +x linuxgsm.sh

如果你选择自己去搭建一个LinuxGSM资源库,请跟随以下步骤进行资源地址迁移。另外,此篇文章中我们使用Gitee作为转移之后的储存仓库。

注册并登录到Gitee

Gitee的使用更加符合国人的习惯,在进入主页之后只需要点击注册Gitee按钮即可开始注册,或是在登录界面直接使用其他方式登录。目前Gitee支持国内主流的QQ、微信登录,同时也支持华为帐号、GitLab已经Github帐号登录。

创建资源仓库

单击主页右上角头像左方的“+”号,选择新建仓库。此时可以不填写仓库的名称,但是你必须在是否开源选项中选中公开

单击创建上方的导入已有仓库,填写地址https://github.com/GameServerManagers/Game-Server-Configs,点击创建。

修改脚本文件

在问题所在中已经提到了需要修改的文件,我们只需要修改其中的部分文件即可。在下面我将会以一个简单例子来解释如何去修改脚本文件。

假设你的Gitee名称是Username,那么你的配置文件将作出如下修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
# Downloads default configs from Game-Server-Configs repo to lgsm/config-default.
fn_fetch_default_config(){
echo -e ""
echo -e "${lightyellow}Downloading ${gamename} Configs${default}"
echo -e "================================="
echo -e "default configs from https://github.com/GameServerManagers/Game-Server-Configs"
fn_sleep_time
mkdir -p "${lgsmdir}/config-default/config-game"
githuburl="https://gitee.com/Username/Game-Server-Configs/raw/master"
for config in "${array_configs[@]}"; do
fn_fetch_file "${githuburl}/${gamedirname}/${config}" "${remote_fileurl_backup}" "GitHub" "Bitbucket" "${lgsmdir}/config-default/config-game" "${config}" "nochmodx" "norun" "forcedl" "nomd5"
done
}

至此,您的所有准备已经作好,现在只需要执行命令wget -O linuxgsm.sh https://gitee.com/Username/LinuxGSM/raw/master/linuxgsm.sh && chmod +x linuxgsm.sh即可。