Setting up a server/Debian/ru

From Minetest


Эти инструкции были протестированы в Debian Jessie ("Testing" в январе 2015 года), который включает в себя пакет minetest-server.

Простые Minetest сервера могут быть запущены в любом Debian (Ubuntu, Linux Mint, или другом дистрибутиве), в котором есть minetest, перейдя в игре на вкладку "Server", однако такой способ только частично подходит для длительного игрового сеанса.

Это руководство направлено на обеспечение более постоянного, с минимальной средой сервера без графического окружения рабочего стола, сервера.

Установка и начальная подготовка

Команды с префиксом $ должны запускаться с ограниченными правами, в то время как команды с префиксом # следует использовать с правами администратора (как правило, с помощью sudo).

Подготовка виртуальной машины Debian 7 (опционально)

Если вы хотите установить Minetest в своей выделенной среде, интересно сделать это на хосте KVM, в качестве выделенной виртуальной машины.

Это требует предварительного установку и настройку KVM и virtinst пакетов на вашей хост-системе. Вы также можете настроить сетевой мост, чтобы ваш Интернет имел прямой доступ к серверу в той же подсети.

Следующая команда подготовит виртуальную машину с именем "dungeon" в существующем хосте KVM:

sudo virt-install -n dungeon -r 1024 --disk path=/var/lib/libvirt/images/dungeon.img,bus=virtio,size=10 -l http://ftp.ca.debian.org/debian/dists/wheezy/main/installer-i386/ --accelerate -b br0,model=virtio --connect=qemu:///system --vnc --noautoconsole -v

После установки, вы можете получить доступ к консоли через VNC.

Установка сервера Minetest

Установите minetest-server package:

# apt-get install minetest-server

Текущий пакет Debian в Jessie автоматически не настроит сервер Minetest на запуск в качестве службы. Он может работать под root пользователем, но предпочтительно создать пользователя, чтобы запустить его:

 # adduser minetest

Начиная с версии 0.4.10+repack-3 ручная конфигурация пакета minetest-server в Debian не нужна. Пожалуйста, обратитесь к разделу о systemd и sysV-init ниже.

Перед установкой автозапуска при загрузке, запустите сервер вручную, чтобы лучше определить параметры командной строки.

Запуска сервера вручную

Сервер может быть запущен вручную, по команде:

 $ minetestserver --info

Последние несколько строк вывода терминала должны быть похожи на это:  

03:33:25: INFO[main]: Server: Loading environment metadata
03:33:25: INFO[main]: Server: Loading players
03:33:25: INFO[main]: Starting server on port 30000...
03:33:25: ACTION[main]:         .__               __                   __   
03:33:25: ACTION[main]:   _____ |__| ____   _____/  |_  ____   _______/  |_ 
03:33:25: ACTION[main]:  /     \|  |/    \_/ __ \   __\/ __ \ /  ___/\   __\
03:33:25: ACTION[main]: |  Y Y  \  |   |  \  ___/|  | \  ___/ \___ \  |  |  
03:33:25: ACTION[main]: |__|_|  /__|___|  /\___  >__|  \___  >____  > |__|  
03:33:25: ACTION[main]:       \/        \/     \/          \/     \/        
03:33:25: ACTION[main]: World at [/home/minetest/.minetest/worlds/world]
03:33:25: ACTION[main]: Server for gameid="minetest" listening on port 30000.
03:33:25: INFO[ServerThread]: Server creating detached inventory "creative"
03:33:28: INFO[ServerThread]: ServerMap: SQLite3 database opened

 

Остановка сервера вручную

Чтобы остановить сервер, нажмите Ctrl + C. Старайтесь его его убивать, так как это может привести к повреждению мира.

Последние несколько строк вывода терминала должен быть похож на это:

03:34:52: INFO: sigint_handler(): Ctrl-C pressed, shutting down.
03:34:52: INFO[main]: Dedicated server quitting
03:34:52: INFO[main]: Server destructing
03:34:52: INFO[main]: Server: Saving players
03:34:52: INFO[main]: Server: Saving environment metadata
03:34:52: INFO[main]: Server: Stopping and waiting threads
03:34:52: INFO[main]: Server: Threads stopped
03:34:52: INFO[main]: ServerMap: Saved map to /home/minetest/.minetest/worlds/world
03:34:52: INFO[main]: RollbackManager::~RollbackManager()
03:34:52: INFO[main]: RollbackManager::flush()
03:34:52: INFO[main]: BanManager: saving to /home/minetest/.minetest/worlds/world/ipban.txt
03:34:52: INFO[main]: Server: Deinitializing scripting

Настройка автоматического запуска при загрузке

С командой запланированной загрузки (только для версий 0.4.10+repack-3 и ниже)

ВАЖНО: это ручная настройка автоматического сервера Minetest при загрузке не нужна с 0.4.10+repack-3. Эти усовершенствование доступно при установке пакета из экспериментальных репозиториев Debian, на момент написания этой статьи.

После того, как вы удовлетворены параметрами командной строки и проверив работу сервера, вы можете настроить автоматический запуск при загрузке:

  1. Залогинтесь в качестве пользователя, ранее созданного. Это может быть не привилегированный пользователь.
  2. Добавьте minetestserver после тестирования с ручным запуском сервера в crontab
    1. Вызовите редактор crontab:
      $ crontab -e
    2. Добавить вашу команду, которая будет выполнена при перезагрузке, в самый конец файла, например:
      @reboot /usr/games/minetestserver --info --worldname MyWorld
  3. Сохранить файл (Ctrl-X при использовании редактора nano)

Запуск сервера Minetest как сервис Systemd или sysV-init демон

Начиная с версии 0.4.10+repack-3 пакет Minetest-server в Debian автоматически создает общесистемного, непривилегированного пользователя с именем Debian-minetest. Домашний каталог этого пользователя - /var/games/minetest-server. Вы можете сделать все настройки в /etc/minetest/minetest.conf. Все файлы журналов записываются в /etc/minetest/minetest.conf .

Systemd

Запуск сервера

  1. systemctl start minetest-server

Остановка сервера

# systemctl stop minetest-server

Вы можете отключить сервер при загрузке

# systemctl disable minetest-server

Вы можете запустить несколько серверов с различными конфигурациями с помощью блока шаблона функцию Systemd годов.

# systemctl start minetest-server@pvp.service

Вы можете запустить несколько серверов с различными конфигурациями с помощью блока шаблона функций systemd.

 # systemctl start minetest-server@pvp.service

Если вы сохранили файл конфигурации для этого сервера в /etc/minetest/pvp.conf, сервер теперь будет использовать эту вторую конфигурацию и записывать все в /var/log/minetest/pvp.log. Просто замените pvp после @ желаемым именем.

sysV-init

Если Systemd не ваша система инициализации по умолчанию, и вы по-прежнему предпочитаете использовать конфигурацию старого sysV-init, вы можете использовать команду обслуживания, чтобы запустить или остановить сервер.

# service minetest-server start

или:

#service minetest-server stop

Дополнительная информация

Несколько советов

  • Каталог .minetest содержит данные игры (worlds, config, debug.txt).
  • Файловая структура с папками Minetest изменяется после некоторого использования в качестве клиента и сервера, она обозначена в скобках (...).

  minetest/

├── bin/
├── builtin/
├── cache/
│   ├── media/
│   └── tmp/
├── client/
│   ├── serverlist/
│   └── shaders/
│       ├── …
├── doc/
├── fonts/
├── games/
│   ├── minetest_game/
│   ├── minimal/
│   └── … (установленые дополнительные игры)
├── locale/ (множество языковых папок)
├── mods/
│   └── … (установленные дополнительные моды и сборники модов)
├── textures/
│   ├── base/
│   │   └── pack/
│   └── … (установлены дополнительные пакеты текстур)
└── worlds/
    └── … (сохранные миры. Некоторые расширения модов мира)