Пошаговая инструкция по установке PvPGN 1.99 на Linux (Debian/Ubuntu)
Для новичков рекомендуется ознакомиться с другой статьей, где более подробно описаны основы в Linux.
Последовательные действия
1. Закачать на сервер исходный код.
Можно из архива, можно свои. Рекомендую использовать мой git репозитарий в качестве основы - в нем есть некоторые улучшения по-сравнению с основным.
Наиболее простой способ загрузить все файлы из любого git репозитария - использовать команду "git clone".
cd /home
git clone https://github.com/pvpgn/pvpgn-server.git
После этого все файлы будут загружены в папку с названием репозитария, в этом случае в /home/pvpgn
Примечание: сперва необходимо установить пакет "git"
apt-get install git
2. Откройте путь, где расположена директория "src". Рядом с ней создайте папку "build" и перейдите в нее:
cd /home/pvpgn
mkdir build
cd build
3. Для выполнения дальнейших действий должны быть установлены следующие пакеты:
apt-get install cmake make build-essential zlib1g-dev
Для включения Lua скриптов:
apt-get install liblua5.1-0-dev
И если вам требуется поддержка MySQL, то нужно установить ещё 3 пакета:
cmake и make - подготавливают файлы к компиляции
build-essential - утилиты для сборки, включая компилятор c++
zlib1g-dev - заголовочные файлы библиотека zlib (требуются при компиляции)
libmysqlclient-dev - заголовочные файлы библиотека MySQL (требуются при компиляции)
mysql-server - MySQL сервер
mysql-client - MySQL консольный клиент
Можно установить все эти пакеты по отдельности, используя синтаксис "apt-get [package name]".
-D CMAKE_INSTALL_PREFIX=/usr/local/pvpgn - путь для установки PvPGN
-D WITH_MYSQL=true - (опционально) указывает на сборку с поддержкой MySQL
-D WITH_LUA=true - (опционально) указывает на сборку с поддержкой Lua
../ - означает относительный путь от текущей папки "build" к пути, где располагается папка с исходным кодом "src"; или можно указать прямой путь к /home/pvpgn/pvpgn
Примечение: если конфигурация завершилась с ошибкой, то иногда лучше очистить папку "build", во избежание непонятных ошибок из-за кеша
5. Запуск сборки
make
Следующая команда создает дерево папок в установочном пути и копирует туда со все конечные файлы
make install
Теперь в папке /usr/local/pvpgn есть все необходимое для работы сервера.
bin - утилиты
sbin - файлы для запуска pvpgn (bnetd, d2cs, d2dbs)
etc - конфиги
var - файлы, логи и т.п.
var/files - support файлы
var/lua - Lua скрипты
share/man - инструкция
Готово! Установка завершена.
6. (optional) В основном конфиге bnetd.conf требуется изменить переменную "storage_path", в соответствии с данными подключения к вагему MySQL серверу:
nano /usr/local/pvpgn/etc/bnetd.conf
7. (optional) Создать пустую базу данных "pvpgn" через консольный MySQL клиент:
mysql -u[user] -p[pass]
create database pvpgn;
quit
8. Запустить сервер PvPGN
/usr/local/pvpgn/sbin/bnetd
9. Изучить конец лога, и убедиться что сервер запущен
less /usr/local/pvpgn/var/bnetd.log
Распространенные ошибки при сборке и их решения
CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
apt-get install make
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
apt-get install build-essential
CMake Error at cmake/Modules/FindZLIB.cmake:44 (MESSAGE):
Could NOT find z library
apt-get install zlib1g-dev
CMake Error at cmake/Modules/FindMySQL.cmake:60 (MESSAGE):
Could NOT find MySQL library
apt-get install libmysqlclient-dev
CMake Error: The source directory "XXX" does not exist.
или
CMake Error: The source directory "XXX" does not appear to contain CMakeLists.txt
Последним параметром к cmake укажите путь к директории, где содержится папка с исходниками "src" (см. в начале статьи)
On Ubuntu Server 15.04:
CMake Error at CMakeLists.txt:32 (message):
G++ 5.1 or higher required
Tried to update G++ to latest version, but still got the same error.
Любое копирование информации с этого сайта - только со ссылкой на источник. Это в одинаковой мере распространяется на любую авторскую информацию в интернете.