From Mineserver Wiki
(→CentOS and Red Hat)
|Line 64:||Line 64:|
cp -R /path/to/libnoise/src/* ./
cp -R /path/to/libnoise/src/* ./
Revision as of 19:12, 1 March 2011
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.
Currently we have binaries for Windows. Download from here: http://mineserver.be/downloads/ and install using installer.
Mineserver requires 3 external libraries: zlib, libevent and libnoise (possibly from https://github.com/qknight/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.
- Obtain source
- Install prerequisites
- Build Mineserver
- 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.
Prerequisites can be found at http://www.mineserver.be/downloads buildpack or you can compile those yourself. For that you will need VS2010 or mingw (no supported)
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
Most dependancies can be installed with the following commands:
# Install EPEL (Extra Packages for Enterprise Linux) sudo su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm' sudo yum install git libevent libevent-devel zlib zlib-devel
However CentOS, and RHEL do not provide support for libnoise natively. As such we will need to manually compile and install the library.
wget http://prdownloads.sourceforge.net/libnoise/libnoisesrc-1.0.0.zip?download -O libnoisesrc-1.0.0.zip unzip libnoisesrc-1.0.0.zip; cd noise less README # Read this make sudo cp -R include /usr/local/include/noise sudo cp lib/* /usr/local/lib sudo ln -s /usr/local/lib/libnoise.so.0.3 /usr/local/lib/libnoise.so.0 sudo ln -s /usr/local/lib/libnoise.so.0.3 /usr/local/lib/libnoise.so sudo echo "/usr/local/lib" > /etc/ld.so.conf/user.conf sudo /sbin/ldconfig
You also have to copy the contents of the src folder of the libnoise package into a folder called libnoise within the mineserver src directory:
change directory to your mineserver src directory mkdir libnoise cp -R /path/to/libnoise/src/* ./ make
Due to a problem with the libnoise package, you may need to create the proper link for the libnoise shared object file:
ln -s /usr/local/lib/libnoise.so.0 /usr/local/lib/libnoise.so
To install third party libraries on OS X, some convenient ways exist. Note that zlib ships with OS X by default.
MacPorts or Fink
You can install zlib and libevent using Macports:
sudo port install libevent
sudo apt-get install libevent1
Either way, 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
sudo apt-get install cmake doxygen
Now you can get the code:
git clone https://github.com/qknight/libnoise cd libnoise mkdir build cd build cmake .. make sudo make install
With homebrew installed, you can just install libevent:
brew install libevent
A formular for libnoise can be found on krono’s homebrew fork. Using that, you can install libnoise just the same way:
brew install libnoise
It does not depend on cmake and doxygen.
(needs to be filled in)
To build the mineserver binary, use the following commands. The output should be very similar to that below.
NOTE! If you are using debian/ubuntu or similar use
make DEBIAN=1 instead of
# 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! user@workstation:~/mineserver/src$
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
mathconsts.h are libnoise.
Example on how to install the package:
user@host ~ % wget http://aur.archlinux.org/packages/mineserver-git/mineserver-git.tar.gz 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
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.
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
You can build, ensuring that you point the compiler to any Fink-installed headers and libraries:
cd src CXXFLAGS=-I/sw/include LDFLAGS=-L/sw/lib make
Homebrew installs in a System-Known location, so you just have to make.
cd src 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.