By | 15 septembre 2017

Installation d’un serveur Minetest Stable 0.4.16 sur un serveur Gandi (IaaS).

Version : v0.0.2

I) Création d’un serveur Gandi.

– Lien :

https://www.gandi.net/admin/iaas/vm/create

– Configuration physique :

Cœur(s) : 1
Disques : 1 / Taille : 10 Go
Mémoire : 1 Go
Interfaces : 1
Centre de données : Bissen, Luxembourg (LU-BI1)

Consommation de crédit : 218/h Soit 15,70 € / mois

– Système :

Système d’exploitation : Debian 8
Nom du disque système : sysdiskmt

– Paramètres de connexion :

Nom (hostname) : servermt
Identifiant administrateur : < A définir, par exemple : admin>
Méthode d’authentification : Mot de Passe
Mot de passe : < A définir, par exemple : Mot2P@sse>
Adresse ipv4 : 213.166.243.99

II) Configuration du serveur.

1/ Connexion.

[~] ➔ ssh admin@213.166.243.99
admin@213.166.243.99's password: 
Linux servermt 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2 (2017-04-30) x86_64 GNU/Linux
[-----------------------------------------]
  Gandi - Welcome to your new OS image.

  Documentation : 
   [EN] http://wiki.gandi.net/en/iaas
   [FR] http://wiki.gandi.net/fr/iaas

  Configuration file for Gandi :
   /etc/default/gandi or
   /etc/sysconfig/gandi

[-----------------------------------------]
admin@servermt:~$ 

2/ Connexion en super-utilisateur.

admin@servermt:~$ su
Password: <Défini pendant la création du serveur >
root@servermt:/home/admin

3/ Mise-à-jour du dépôt des sources.

root@servermt:/home/admin# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D9A579D6BB859933
root@servermt:/home/admin# apt-get update

4/ Mise-à-jour du système.

root@servermt:/home/admin# apt-get upgrade

5/ Installation des paquets de base.

root@servermt:/home/admin# apt-get install mc vim screen htop links wget

III) Installation du serveur Minetest Stable.

1/ Installation des paquets de développement.

root@servermt:/home/admin# apt-get install build-essential git-core cmake libirrlicht-dev cmake libbz2-dev libpng12-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libluajit-5.1-2 libluajit-5.1-dev  libncurses5-dev doxygen gettext-base libgettextpo-dev libopenal-dev libvorbis-dev gettext libleveldb-dev

2/ Installation de Postgresql 9.6.

– Ajout du dépôt :

root@servermt:/home/admin# echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main 9.5" > /etc/apt/sources.list.d/posgresql.list

– Récupération de la clé :

root@servermt:/home/admin# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

– Mise-à-jour des dépôts :

root@servermt:/home/admin# apt-get update

– Vérification de la version :

root@servermt:/home/admin# apt-cache policy postgresql
postgresql:
  Installed: (none)
  Candidate: 9.6+184.pgdg80+1
  Version table:
     9.6+184.pgdg80+1 0
        500 http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg/main amd64 Packages
     9.4+165+deb8u2 0
        500 https://mirrors.gandi.net/debian/ jessie/main amd64 Packages
root@servermt:/home/admin# 

– Installation de postgresql 9.6 :

root@servermt:/home/admin# apt-get install postgresql postgresql-server-dev-9.6

3/ Quitter le mode ‘super-utilisateur‘.

root@servermt:/home/admin# exit
exit
admin@servermt:~$ 

4/ Création du répertoire de travail.

admin@servermt:~$ mkdir -p JEUX/MINETEST
admin@servermt:~$ cd JEUX/MINETEST/
admin@servermt:~/JEUX/MINETEST$ 

5/ Téléchargement du code source.

admin@servermt:~/JEUX/MINETEST$ git clone https://github.com/minetest/minetest.git
Cloning into 'minetest'...
remote: Counting objects: 51032, done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 51032 (delta 34), reused 27 (delta 17), pack-reused 50961
Receiving objects: 100% (51032/51032), 50.97 MiB | 9.55 MiB/s, done.
Resolving deltas: 100% (36600/36600), done.
Checking connectivity... done.
admin@servermt:~/JEUX/MINETEST$ 

6/ Récupérer la version stable : tag 0.4.16

admin@servermt:~/JEUX/MINETEST$ cd minetest/
admin@servermt:~/JEUX/MINETEST/minetest$ git checkout tags/0.4.16
Note: checking out 'tags/0.4.16'.
...
HEAD is now at 80dc961... Bump version to 0.4.16
admin@servermt:~/JEUX/MINETEST/minetest$ 

7/ Création de la branche stable.

admin@servermt:~/JEUX/MINETEST/minetest$ git checkout -b 0.4.16
Switched to a new branch '0.4.16'
admin@servermt:~/JEUX/MINETEST/minetest$ 

8/ Configuration de la compilation.

admin@servermt:~/JEUX/MINETEST/minetest$ cmake . -DRUN_IN_PLACE=TRUE -DBUILD_SERVER=TRUE -DENABLE_LUAJIT=TRUE -DENABLE_FREETYPE=TRUE -DENABLE_GETTEXT=TRUE -DENABLE_CURL=TRUE -DENABLE_GLES=TRUE -DCMAKE_BUILD_TYPE=Release 
-- *** Will build version 0.4.16 ***
-- Using GMP provided by system.
-- Using bundled JSONCPP library.
-- Using LuaJIT provided by system.
-- cURL support enabled.
-- GetText enabled; locales found: be;sw;ky;lt;ms;he;id;it;nl;de;dv;sr_Cyrl;eo;uk;pl;tr;cs;ko;es;ro;sl;da;ja;pt_BR;jbo;sv;pt;ca;ru;fr;zh_TW;zh_CN;hu;et;nb
-- Sound enabled.
-- Freetype enabled.
-- ncurses console enabled.
-- Found PostgreSQL: /usr/lib/x86_64-linux-gnu/libpq.so (found version "9.6.5") 
-- PostgreSQL backend enabled
-- PostgreSQL includes: /usr/include/postgresql
-- LevelDB backend enabled.
-- Redis not found!
-- SpatialIndex not found!
-- Locale blacklist applied; Locales used: sw;lt;ms;id;it;nl;de;dv;sr_Cyrl;eo;uk;pl;tr;cs;es;ro;sl;da;ja;pt_BR;jbo;sv;pt;ca;ru;fr;hu;et;nb
-- Configuring done
-- Generating done
-- Build files have been written to: /home/admin/JEUX/MINETEST/minetest
admin@servermt:~/JEUX/MINETEST/minetest$   

9/ Compilation de Minetest.

admin@servermt:~/JEUX/MINETEST/minetest$ make
Scanning dependencies of target jsoncpp
[  0%] Building CXX object lib/jsoncpp/CMakeFiles/jsoncpp.dir/jsoncpp.cpp.o
Linking CXX static library libjsoncpp.a
[  0%] Built target jsoncpp
Scanning dependencies of target cguittfont
[  0%] Building CXX object src/cguittfont/CMakeFiles/cguittfont.dir/xCGUITTFont.cpp.o
Linking CXX static library libcguittfont.a
[  0%] Built target cguittfont
Scanning dependencies of target GenerateVersion
[  0%] Built target GenerateVersion
Scanning dependencies of target minetest
[  1%] Building CXX object src/CMakeFiles/minetest.dir/client/clientlauncher.cpp.o
...
[ 99%] Building CXX object src/CMakeFiles/minetestserver.dir/version.cpp.o
[ 99%] Building CXX object src/CMakeFiles/minetestserver.dir/voxel.cpp.o
[100%] Building CXX object src/CMakeFiles/minetestserver.dir/voxelalgorithms.cpp.o
Linking CXX executable ../bin/minetestserver
[100%] Built target minetestserver
...
[100%] mo-update [et]: Creating locale directory.
[100%] mo-update [et]: Creating mo file.
[100%] mo update
[100%] Built target translations
admin@servermt:~/JEUX/MINETEST/minetest$ 

10/ Téléchargement du jeu de base.

admin@servermt:~/JEUX/MINETEST/minetest$ cd ..
admin@servermt:~/JEUX/MINETEST$ git clone https://github.com/minetest/minetest_game.git
Cloning into 'minetest_game'...
remote: Counting objects: 8511, done.
remote: Total 8511 (delta 0), reused 0 (delta 0), pack-reused 8511
Receiving objects: 100% (8511/8511), 6.52 MiB | 4.08 MiB/s, done.
Resolving deltas: 100% (4403/4403), done.
Checking connectivity... done.
admin@servermt:~/JEUX/MINETEST$ 

11/ Installation.

admin@servermt:~/JEUX/MINETEST$ cd minetest/games/
admin@servermt:~/JEUX/MINETEST/minetest/games$ ln -s ../../minetest_game/

12/ Lien.

https://dev.minetest.net/Compiling_Minetest

IV/ Fichier de configuration Minetest.

admin@servermt:~/JEUX/MINETEST/minetest/games$ cd minetest_game/
admin@servermt:~/JEUX/MINETEST/minetest/games/minetest_game$ cp minetest.conf.example minetest.conf

Ouvrir :

minetest.conf

Chercher :

#creative_mode = false

Remplacer par :

creative_mode = true

Ajouter :

name = superadminmt

Ajouter :

server_name = Serveur Minetest (FR)

Ajouter :

enable_damage = false
enable_pvp = false

Ajouter :

default_privs = interact, shout, fast, fly

Ajouter :

max_users = 100
admin@servermt:~/JEUX/MINETEST/minetest/games/minetest_game$ cd ../../bin

V/ Serveur Minetest.

1/ Lancement de screen.

admin@servermt:~/JEUX/MINETEST/minetest/bin$ screen

2/ Lancement du serveur.

admin@servermt:~/JEUX/MINETEST/minetest/bin$ ./minetestserver --gameid minetest_game 
2017-09-15 21:17:42: [Main]: Automatically selecting world at [/home/admin/JEUX/MINETEST/minetest/bin/../worlds/world]
2017-09-15 21:17:42: [Main]: Using game specified by --gameid on the command line
2017-09-15 21:17:43: WARNING[Main]: NodeDefManager: Ignoring CONTENT_IGNORE redefinition
2017-09-15 21:17:43: ACTION[Main]:         .__               __                   __   
2017-09-15 21:17:43: ACTION[Main]:   _____ |__| ____   _____/  |_  ____   _______/  |_ 
2017-09-15 21:17:43: ACTION[Main]:  /     \|  |/    \_/ __ \   __\/ __ \ /  ___/\   __\
2017-09-15 21:17:43: ACTION[Main]: |  Y Y  \  |   |  \  ___/|  | \  ___/ \___ \  |  |  
2017-09-15 21:17:43: ACTION[Main]: |__|_|  /__|___|  /\___  >__|  \___  >____  > |__|  
2017-09-15 21:17:43: ACTION[Main]:       \/        \/     \/          \/     \/        
2017-09-15 21:17:43: ACTION[Main]: World at [/home/admin/JEUX/MINETEST/minetest/bin/../worlds/world]
2017-09-15 21:17:43: ACTION[Main]: Server for gameid="minetest_game" listening on 0.0.0.0:30000.

3/ Client Minetest : Connexion au serveur Minetest.

Ordinateur : Raspberry Pi 3
Client Minetest : 0.4.16

pi@minetest:~/JEUX/MINETEST/minetest/bin $ ./minetest --address 213.166.243.99 --name Sam --go

4/ Fichier de journalisation de connexion d’un joueur.

2017-09-15 21:18:24: ACTION[Server]: Sam [90.6.217.235] joins game. 
2017-09-15 21:18:24: ACTION[Server]: Sam joins game. List of players: Sam