Difference between revisions of "Installation"

From Mineserver Wiki
Jump to navigation Jump to search
m
==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==
 
===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===
 
====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====
 
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 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 [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===
 
(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