Configuring, Compiling and Launching MaNGOS Zero (1.12.1) on Linux menu

Shout-Out

User Tag List

Results 1 to 1 of 1
  1. #1
    Sleighyah's Avatar Private
    Reputation
    5
    Join Date
    Jan 2011
    Posts
    12
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Configuring, Compiling and Launching MaNGOS Zero (1.12.1) on Linux

    Probably a higher-quality first post than most members. For those who don't visit the MaNGOS forums, I'm one of the original MaNGOS tutorial writers, a lot of my stuff is all over the wiki. On the contrary, the tutorials for MaNGOS Zero are...average at best. I had to talk to one of the developers a couple of times to get things patched.

    I'm going to do you all a favour and write this in a two-part - Debian based, and RHEL based. If I title a section with "DEBIAN" or "RHEL", only follow those instructions if you're on that distro. In one case (Step 0.5), you need to know your architecture if you're on an RHEL base. Running 'uname -m' will give you that.

    FOR REFERENCE:
    Debian: Ubuntu, Debian
    RHEL: RedHat, CentOS, Fedora
    Anything Else: Stop using it for a server

    So without further ado, let's get this ball rolling!


    Step 1: Grease utensils...
    Starting off, you're going to need your basic utensils and stuff. Run the following commands.

    Debian:
    Code:
    apt-get update; apt-get install build-essential gcc g++ cpp automake git-core autoconf make patch libmysql++-dev libtool libssl-dev grep binutils subversion zlibc libc6 nano wine unrar
    RHEL x86 (32bit):
    Code:
    rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt; wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm; rpm -Uvh rpmforge-release-*.rpm; yum update -y; yum groupinstall "Development Tools" -y; yum install glibc glibc-common glibc-utils mysql-devel zlib zlib-devel openssl-devel gcc-c++ curl curl-devel gcc cpp automake autoconf make patch libtool grep binutils subversion nano mysql-server git unrar -y
    RHEL x64 (64bit):
    Code:
    rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt; wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm; rpm -Uvh rpmforge-release-*.rpm; yum update -y; yum groupinstall "Development Tools" -y; yum install glibc glibc-common glibc-utils mysql-devel zlib zlib-devel openssl-devel gcc-c++ curl curl-devel gcc cpp automake autoconf make patch libtool grep binutils subversion nano mysql-server git unrar -y

    Step 2: Preheat code to 225°C...
    Code:
    cd; git clone git://github.com/mangos/zero.git; cd zero/src/bindings; git clone git://github.com/scriptdev/scriptdevzero.git
    Now time for a little anecdote, the night before last I spent a lot of time discussing with a developer of the ScriptDevZero branch. We spent around forty minutes bugfixing so that I could write this tutorial for you. ANYWAY, I digress!

    Code:
    cd; cd zero; git am $(ls src/bindings/scriptdevzero/patches/Mangos-zero-ScriptDevZero.patch | grep -v gz)
    If you get an error about a corrupt patch on line 59-60 or so, just do this:
    Code:
    nano src/bindings/scriptdevzero/patches/Mangos-zero-ScriptDevZero.patch
    then scroll to the bottom and delete the last blank line. Save it (<CTRL>+<X>, <Y>, <ENTER>), and re-run the above commands.


    Step 3: Compile the source into a delicious combined condiment...
    Code:
    autoreconf --install --force
    WHOA HALT, HAMMERZEIT! I GET AN ERROR, SLEIGHYAH!
    Yeah, I'm guessing you're on RHEL release. This is because someone thought they'd be funny and up the Autoreconf minimum requirements. Just do this:
    Code:
    nano dep/ACE_wrappers/configure.ac
    Find the line that say "AC_PREREQ(2.61)", and change that '2.61' to '2.59'. Save it (<CTRL>+<X>, <Y>, <ENTER>) and re-run the above commands.

    CONTINUING ON...

    Code:
    mkdir objdir; cd objdir;
    Now this step requires your input. I'm sure you've just been mindlessly copy-pasting up until now, but you'll have to make a decision here.
    I put to you the question, where do you want your server executables folder? Figure that out, then replace "<SERVER FOLDER LOCATION>" with the location with no trailing slash('/')!
    Code:
    ../configure --prefix=<SERVER FOLDER LOCATION> --sysconfdir=<SERVER FOLDER LOCATION>/etc --enable-cli --enable-ra --datadir=<SERVER FOLDER LOCATION>; make; make install
    This will take a while. Go and make a coffee, perhaps have a bagel.

    I'm not going to go into how you extract dbc/maps/vmaps, it's always the same!


    Step 4: Add a dash of MySQL...
    Enter the SQL prompt by typing this:
    Code:
    mysql
    Now you're in the MySQL prompt. Time for some hot SQL action!
    Code:
    CREATE DATABASE mangos; CREATE DATABASE realmd; CREATE DATABASE characters; CREATE DATABASE scriptdevzero; CREATE USER 'mangos'@'localhost'; SET PASSWORD FOR 'mangos'@'localhost' = PASSWORD('mangos'); GRANT ALL PRIVILEGES ON characters.* TO 'mangos'@'localhost'; GRANT ALL PRIVILEGES ON mangos.* TO 'mangos'@'localhost'; GRANT ALL PRIVILEGES ON realmd.* TO 'mangos'@'localhost'; GRANT ALL PRIVILEGES ON scriptdevzero.* TO 'mangos'@'localhost'; exit
    What's this done? It's created four databases, created the user 'mangos' with the password 'mangos' that can only be accessed by the server, and has given full privileges to each database to the user 'mangos'. Neat huh?

    Now you need to traverse to the SQL folder of your sources, and apply those patches:
    Code:
    cd; cd zero/sql; mysql mangos < mangos,sql; mysql realmd < realmd.sql; mysql characters < characters.sql
    And the ones from ScriptDevZero...
    Code:
    cd ../src/bindings/scriptdevzero/sql; mysql scriptdevzero < scriptdevzero_create_structure_mysql.sql; mysql scriptdevzero < scriptdevzero_script_full.sql; mysql mangos < mangos_scriptname_full.sql; mysql mangos < mangos_extra_scripts.sql;

    Step 5: Finish with a spattering of config and serve!
    Configuration files are pretty easy. They'll be located in <SERVER FOLDER LOCATION>/etc. I'm sure you can fill those in on your own.

    I launch each daemon (located in <SERVER FOLDER LOCATION>/bin) a little differently. You could use the 'screen' application, but I prefer to use nohup:
    Code:
    nohup ./mangos-realmd &> realmd.log &
    Code:
    nohup ./mangos-worldd &> worldd.log &
    Make sure the space(' ') is on the end of the command, and these will need to be executed separately. In essence, these launch in the background and output all information to their respective logfiles. If you hit enter and it says the process has exited/terminated/finished, check the logfile and see what's up.

    That's about all. Any errors I find I will fix. If you find any, please PM me them, don't reply to the thread regarding them as you'll just end up confusing people with less technical knowledge.

    Thank you and a goodnight!
    Last edited by Sleighyah; 01-01-2011 at 03:31 AM.

    Configuring, Compiling and Launching MaNGOS Zero (1.12.1) on Linux

Similar Threads

  1. [Mangos] How to compile Project Silverpine MaNGOS Zero under Noobuntu 8.04+
    By turtleswin in forum WoW EMU Guides & Tutorials
    Replies: 0
    Last Post: 02-07-2013, 06:40 AM
  2. [Misc] [REQUEST] How to compile MaNGOS Zero/Trinity Zero
    By turtleswin in forum WoW EMU Questions & Requests
    Replies: 3
    Last Post: 10-25-2012, 11:31 AM
  3. [Tutorial] Mangos Zero Compiling
    By DoxramosPS in forum WoW EMU Guides & Tutorials
    Replies: 16
    Last Post: 02-24-2012, 07:51 AM
  4. Replies: 9
    Last Post: 07-19-2009, 01:27 PM
  5. List of Repacks, Compiles and Databases for ManGOS, Ascent, Antrix.
    By faxmunky in forum World of Warcraft Emulator Servers
    Replies: 2
    Last Post: 11-04-2007, 04:02 AM
All times are GMT -5. The time now is 09:05 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search