Installation

From Mineserver Wiki

(Difference between revisions)
Jump to: navigation, search
(CentOS/RHEL)
m (Windows)
 
(37 intermediate revisions not shown)
Line 3: Line 3:
==Binary Packages==
==Binary Packages==
-
This will be written up when there are binary releases available.
+
Currently we have binaries for Windows.
 +
Download from here: http://mineserver.be/downloads/ and install using installer.
==Source Distributions==
==Source Distributions==
Line 9: Line 10:
===Prerequisites===
===Prerequisites===
-
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.
+
Mineserver requires 3 external libraries: zlib, libevent and libnoise (possibly from [https://github.com/qknight/libnoise https://github.com/qknight/libnoise]). The method of obtaining these libraries may differ system to system, so consult your operating system's manual.
===General===
===General===
Line 30: Line 31:
====Windows====
====Windows====
-
(needs to be filled in)
+
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). Visual Studio 2008 Express (C++ version) works as well, but you need to create project files manually (for now, until we have a CMake fix)
====Debian and Similar====
====Debian and Similar====
Line 36: Line 37:
To build software on Debian, the <code>build-essential</code> 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.
To build software on Debian, the <code>build-essential</code> 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/RHEL====
+
====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.
+
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
   wget http://prdownloads.sourceforge.net/libnoise/libnoisesrc-1.0.0.zip?download -O libnoisesrc-1.0.0.zip
Line 44: Line 51:
   less README # Read this  
   less README # Read this  
   make
   make
-
   cp -R include /usr/local/include/libnoise
+
   sudo cp -R include /usr/local/include/noise
-
   cp lib/* /usr/local/lib
+
   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 echo "/usr/local/lib" > /etc/ld.so.conf/user.conf
   sudo /sbin/ldconfig
   sudo /sbin/ldconfig
-
All other dependancies can be installed with the following commands:
+
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:
-
   # Install EPEL (Extra Packages for Enterprise Linux)
+
   change directory to your mineserver src directory
-
   sudo su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm'  
+
  mkdir libnoise
-
  sudo yum install git libevent libevent-devel zlib zlib-devel
+
  cp -R /path/to/libnoise/src/* ./
 +
  make
 +
 
 +
====BSD Variants====
 +
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
 +
 
 +
====Arch Linux====
 +
 
 +
You can obtain and install the required [http://aur.archlinux.org/packages.php?ID=39041 libnoise] package through [https://wiki.archlinux.org/index.php/Arch_User_Repository AUR].
 +
 
 +
Run the <code>make</code> command.
 +
 
 +
====OS X====
 +
 
 +
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
 +
 
 +
or Fink:
 +
 
 +
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
 +
 
 +
or Fink:
 +
 
 +
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
 +
 
 +
===== Homebrew =====
 +
 
 +
With homebrew installed, you can just install libevent:
 +
 
 +
brew install libevent
 +
 
 +
A formular for libnoise can be found on [http://github.com/krono/homebrew 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.
===Building Mineserver===
===Building Mineserver===
Line 61: Line 128:
(needs to be filled in)
(needs to be filled in)
-
====Debian and Similar====
+
====GNU/Linux====
-
To build the mineserver binary, simply enter the <code>src</code> directory in the source distribution and run <code>make</code>. If you receive errors referring to missing files, check that you have all the prerequisites installed.
+
To build the mineserver binary, use the following commands. The output should be very similar to that below.
 +
 
 +
  # Run cmake to generate makefile
 +
  user@workstation:~/mineserver$ cmake .
 +
  # Run make all to build the binary
 +
  user@workstation:~/mineserver/src$ make all
 +
  (Lots of compile output here)
 +
  # Done!
 +
  # Run make install to move all necessary files to bin
 +
  user@workstation:~/mineserver/src$ make install
 +
 
 +
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. <code>zlib.h</code> is zlib, <code>event.h</code> is libevent and <code>noise.h</code>, <code>interp.h</code> or <code>mathconsts.h</code> are libnoise.
 +
 
 +
=====Arch Linux (This might be outdated?)=====
 +
 
 +
To install the latest development version of mineserver, you can download the [http://aur.archlinux.org/packages.php?ID=44017 mineserver-git] package from [https://wiki.archlinux.org/index.php/Arch_User_Repository AUR].
 +
 
 +
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 <code>mineserver /usr/share/mineserver/config.cfg</code>
 +
 
 +
''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 <code>mineserver</code>, without specifying the configuration file location, since mineserver will look for it in the current directory.
 +
 
 +
====OS X====
 +
 
 +
===== Macports =====
 +
 
 +
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
 +
 
 +
===== Fink =====
 +
 
 +
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 =====
 +
 
 +
Homebrew installs in a System-Known location, so you just have to make.
 +
  cd src
 +
  make
===Editing the Config===
===Editing the Config===
This part is nice and easy. Grab the default config files from the <code>bin</code> directory in the distribution and view the [[configuration]] article to get accustomed with the options available.
This part is nice and easy. Grab the default config files from the <code>bin</code> directory in the distribution and view the [[configuration]] article to get accustomed with the options available.
 +
 +
==Directory Structure==
 +
 +
{| class="wikitable" style="font-size:90%"
 +
|-
 +
!
 +
! Unix install
 +
! Unix distribution
 +
! Windows
 +
|-
 +
! Install Prefix
 +
| <code>$HOME</code> or <code>~</code>
 +
| <code>/usr</code>
 +
| <code>C:\Program Files\mineserver</code>
 +
|-
 +
! Configuration<sup>1</sup>
 +
| <code>$HOME/.mineserver</code>
 +
| <code>/etc/mineserver</code>
 +
| <code>%AppData%\.mineserver</code>
 +
|-
 +
! Working Directory<sup>2</sup>
 +
| <code>$HOME/.mineserver</code>
 +
| <code>/var/lib/mineserver</code>
 +
| <code>%AppData%\.mineserver</code>
 +
|-
 +
! Binaries
 +
| colspan="2" | <code>$PREFIX/bin</code>
 +
| <code>%PREFIX%\bin</code>
 +
|-
 +
! Plugins
 +
| colspan="2" | <code>$PREFIX/lib/mineserver</code>
 +
| <code>%PREFIX%\bin</code>
 +
|-
 +
! Resources
 +
| colspan="2" | <code>$PREFIX/share/mineserver</code>
 +
| <code>%PREFIX%\share</code>
 +
|-
 +
|}
 +
* <sup>1</sup> Specified through the [[Command Line]] arguments
 +
* <sup>2</sup> Specified in [[Configuration]] file

Latest revision as of 11:06, 11 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.

Contents

Binary Packages

Currently we have binaries for Windows. Download from here: http://mineserver.be/downloads/ and install using installer.

Source Distributions

Prerequisites

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.

General

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

Windows

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). Visual Studio 2008 Express (C++ version) works as well, but you need to create project files manually (for now, until we have a CMake fix)

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

BSD Variants

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

Arch Linux

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

Run the make command.

OS X

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

or Fink:

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

or Fink:

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
Homebrew

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.

Building Mineserver

Windows

(needs to be filled in)

GNU/Linux

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

 # Run cmake to generate makefile
 user@workstation:~/mineserver$ cmake .
 # Run make all to build the binary
 user@workstation:~/mineserver/src$ make all
 (Lots of compile output here)
 # Done!
 # Run make install to move all necessary files to bin
 user@workstation:~/mineserver/src$ make install

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 (This might be outdated?)

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 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 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.

OS X

Macports

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
Fink

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

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.

Directory Structure

Unix install Unix distribution Windows
Install Prefix $HOME or ~ /usr C:\Program Files\mineserver
Configuration1 $HOME/.mineserver /etc/mineserver %AppData%\.mineserver
Working Directory2 $HOME/.mineserver /var/lib/mineserver %AppData%\.mineserver
Binaries $PREFIX/bin %PREFIX%\bin
Plugins $PREFIX/lib/mineserver %PREFIX%\bin
Resources $PREFIX/share/mineserver %PREFIX%\share