Skip to content

安装服务

优秀的小杨同学 edited this page Jul 1, 2023 · 7 revisions

安装服务

该项目仅支持 Linux 和 Windows 系统。对于 MacOS 系统,由于我们并没有相应的设备进行开发和测试,因此我们不提供对 MacOS 系统的支持。如果你有能力的话,可以考虑帮助我们提供对 MacOS 系统的支持。

对于如上操作系统,我们提供了预编译压缩包和手动编译两种安装方式。如果您不放心我们提供的预编译压缩包,您可以自己拉取源码,手动进行编译。

安装依赖

对于 Linux 操作系统,无论哪种安装方式,您都需要自己安装程序所需的全部依赖库。安装指令如下:

# 对于 Ubuntu 操作系统:
sudo apt install g++ libjsoncpp-dev libmysqlclient-dev libssl-dev libsqlite3-dev libcurl4 libzip-dev -y

对于 Windows 操作系统,由于 Windows 并没有依赖库源可供您安装所有必需依赖,配置环境相较于 Linux 操作系统麻烦数倍。因此我们建议您使用预编译安装包直接进行安装。

如果您执意要使用手动安装,以下是您需要准备的依赖库清单:

MinGW
libmysqlclient (不是 MySQL Connector/C++)
libjsoncpp
libsqlite3
openssl
zlib
libcurl
libzip

预编译压缩包

所有预编译压缩包保证开启了所有功能,且所有功能均能正常运作。

  1. Latest Release 处下载对应系统和架构的预编译压缩包。
  2. 解压预编译压缩包,将其放在您喜欢的目录里。安装完成。

手动编译

  1. 使用以下指令从 Github 拉取所有源码
git clone --recursive https://github.com/SonolusHaniwa/sonolus-server-cpp
  1. 进入源码文件夹,输入以下指令直接开始编译
g++ main.cpp -o sonolus -ldl -lpthread -lcrypto -lssl -ljsoncpp -std=c++14 -O2 -g
# 附加编译指令列表:
# -DENABLE_SONOLUS 加载 Sonolus 服务器主要路由。
# -DENABLE_MYSQL -lmysqlclient 允许程序与 MySQL/MariaDB 数据库进行交互。
# -DENABLE_SQLITE -lsqlite3 允许程序与 SQLite 数据库进行交互。
# -DENABLE_CURL -lcurl 允许程序与外界互联网进行交互,关闭后将无法导出远程服务器资源。
# -DENABLE_ZIP -lzip 允许程序解压 zip 压缩包,关闭后将无法导入官方 scp 数据包。
# Windows 操作系统的编译指令可能会有所不同,具体看您静态库的文件名称。
  1. (可选)输入以下指令编译我们提供的插件
# 对于 Linux 操作系统
g++ plugins/libsonolush/libsonolush.cpp -o plugins/libsonolush.so -fPIC -shared -std=c++17 -DENABLE_MYSQL -DENABLE_SQLITE
g++ plugins/libsonolusjs/libsonolusjs.cpp -o plugins/libsonolusjs.so -fPIC -shared -std=c++17 -DENABLE_MYSQL -DENABLE_SQLITE
# 对于 Windows 操作系统
g++ plugins/libsonolush/libsonolush.cpp -o plugins/libsonolush.dll -fPIC -shared -std=c++17 -DENABLE_MYSQL -DENABLE_SQLITE
g++ plugins/libsonolusjs/libsonolusjs.cpp -o plugins/libsonolusjs.dll -fPIC -shared -std=c++17 -DENABLE_MYSQL -DENABLE_SQLITE
  1. 进入数据库,将 data.sql 导入至数据库里。
  2. 如中途未出现错误,安装完成,源码文件夹下会出现一个名为 sonolus(.exe) 的可执行文件。
Clone this wiki locally