From Mineserver Wiki

Revision as of 21:07, 29 November 2010 by Nredor (Talk | contribs)
Jump to: navigation, search

Installation of Mineserver is generally trouble-free, but this page should offer a little more detail for those who desire it. Right now only source distributions are available; this will change once there is a stable release.


Binary Packages

Currently we have binaries for Windows. Download from here: and install using installer.

Source Distributions


Mineserver requires 3 external libraries: zlib, libevent and libnoise. The method of obtaining these libraries may differ system to system, so consult your operating system's manual.


Installation is generally very simple and consists of just a few steps.

  1. Obtain source
  2. Install prerequisites
  3. Build Mineserver
  4. Edit config

Obtaining the Source Code

The source code for Mineserver is available from GitHub and in future as tarballs for stable revisions.

Checking out the source from git is straightforward: simply clone the repository from GitHub and it's ready to be compiled. An explanation of how to use git is outside the scope of this article, but there are plentiful resources on the topic to be found with your favourite search engine.

Installing prerequisites


(needs to be filled in)

Debian and Similar

To build software on Debian, the build-essential package is required. This package will provide you with the basic gcc/g++ toolchain. The prerequisites for Mineserver can be found in the packages zlib1g-dev, libevent-dev and libnoise-dev.

CentOS and Red Hat

CentOS, and RHEL do not provide support for libnoise natively. As such we will need to manually compile and install the library.

 wget -O
 unzip; cd noise
 less README # Read this 
 cp -R include /usr/local/include/noise
 cp lib/* /usr/local/lib
 ln -s /usr/local/lib/ /usr/local/lib/
 ln -s /usr/local/lib/ /usr/local/lib/
 sudo echo "/usr/local/lib" > /etc/
 sudo /sbin/ldconfig

All other dependancies can be installed with the following commands:

 # Install EPEL (Extra Packages for Enterprise Linux) 
 sudo su -c 'rpm -Uvh' 
 sudo yum install git libevent libevent-devel zlib zlib-devel

Arch Linux

You can obtain and install the required libnoise package through AUR.

Run the make command.


You can install zlib and libevent using Macports:

sudo port install zlib libevent

You will need to build libnoise yourself. On OS X, this is best done by using qknight's unofficial branch. First install the libnoise prerequisities:

sudo port install cmake doxygen

Now you can get the code:

git clone
cd libnoise
mkdir build
cd build
cmake ..
sudo make install

Building Mineserver


(needs to be filled in)


To build the mineserver binary, use the following commands. The output should be very similar to that here:

 # Change to the source directory
 user@workstation:~/mineserver$ cd src
 # Run make to build the binary
 user@workstation:~/mineserver/src$ make
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o mineserver.o mineserver.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o map.o map.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o chat.o chat.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o commands.o commands.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o config.o config.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o constants.o constants.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o logger.o logger.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o mapgen.o mapgen.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o nbt.o nbt.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o packets.o packets.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o physics.o physics.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o sockets.o sockets.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o tools.o tools.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o user.o user.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o noiseutils.o noiseutils.cpp
 g++  -I. -I/usr/Local/include -I/usr/include -L/usr/local/lib   -c -o mersenne.o mersenne.cpp
 g++ -L/usr/local/lib -L/usr/lib -lpthread -levent -lz -lnoise  mineserver.o map.o chat.o commands.o
 config.o constants.o logger.o mapgen.o nbt.o packets.o physics.o sockets.o tools.o user.o
 noiseutils.o mersenne.o   -o mineserver
 # Done!

If you receive errors referring to missing files like this:

 mineserver.cpp:0:0: error: something.h: No such file or directory
 make: *** [mineserver.o] Error 1

Ensure that you have all the prerequisites installed. zlib.h is zlib, event.h is libevent and noise.h, interp.h or mathconsts.h are libnoise.

Arch Linux

To install the latest development version of mineserver, you can download the mineserver-git package from AUR.

Example on how to install the package:

 user@host ~ % wget
 user@host ~ % tar xfz mineserver-git.tar.gz
 user@host ~ % cd mineserver-git
 user@host ~/mineserver-git % makepkg
 user@host ~/mineserver-git % sudo pacman -U mineserver-git-*.pkg.tar.xz

And you're done. You can run the server with mineserver /usr/share/mineserver/config.cfg

Note: if you want to change the default configuration, you will have to copy them into another directory.

This is an example on how you copy all the configuration files to the ~/minecraft-server directory which you then can change to your preferences.

 user@host ~ % mkdir minecraft-server && cd minecraft-server
 user@host ~ % cp /usr/share/minecraft/* .
 user@host ~ % ls
 admin.txt  banned.txt  config.cfg  item_alias.cfg  motd.txt  rules.txt  whitelist.txt

You can then run the server by issuing mineserver, without specifying the configuration file location, since mineserver will look for it in the current directory.


Firstly, until batterseapowers patches are merged, you need to change these lines in src/Makefile:

LDFLAGS = -L/usr/local/lib -L/usr/lib -levent -lz -lnoise $(LFLAGS)
CXXFLAGS = $(DFLAGS) -I. -I/usr/Local/include -I/usr/include

To these:

LDFLAGS += -L/usr/local/lib -L/usr/lib -levent -lz -lnoise $(LFLAGS)
CXXFLAGS += $(DFLAGS) -I. -I/usr/Local/include -I/usr/include

This just allows us to supply some extra LDFLAGS and CXXFLAGS on the command line. Now you can build, ensuring that you point the compiler to any Macports-installed headers and libraries:

cd src
CXXFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib make

Editing the Config

This part is nice and easy. Grab the default config files from the bin directory in the distribution and view the configuration article to get accustomed with the options available.