Jump to content

[GUIDE] Ubuntu/Debian/CentOS/RHEL Install Guide


Recommended Posts

  • Replies 289
  • Created
  • Last Reply

Top Posters In This Topic

Hi 5 ,

I dont know what are my problem, my friend have a server version 3.1.3 (its arcemu server but the dbc files is the same for mangos i think) running OK and his upload yours dbc files running on your server but its does not work for me and i have the same error i reported. Here is the error.

Initialize data stores...

[***************************************** ] 82%

Some required *.dbc files (14 from 79) not found or not compatible:

./dbc/AreaTable.dbc (exist, but have 0 fields instead 36) Wrong client version DBC file?

./dbc/Achievement.dbc (exist, but have 0 fields instead 62) Wrong client version DBC file?

./dbc/CreatureDisplayInfo.dbc (exist, but have 0 fields instead 16) Wrong client version DBC file?

./dbc/GameObjectDisplayInfo.dbc (exist, but have 0 fields instead 19) Wrong client version DBC file?

./dbc/Holidays.dbc (exist, but have 54 fields instead 55) Wrong client version DBC file?

./dbc/Item.dbc (exist, but have 0 fields instead 8) Wrong client version DBC file?

./dbc/ItemExtendedCost.dbc (exist, but have 0 fields instead 15) Wrong client version DBC file?

./dbc/MailTemplate.dbc (exist, but have 0 fields instead 35) Wrong client version DBC file?

./dbc/SoundEntries.dbc (exist, but have 0 fields instead 30) Wrong client version DBC file?

./dbc/Spell.dbc (exist, but have 0 fields instead 232) Wrong client version DBC file?

./dbc/TaxiPathNode.dbc (exist, but have 0 fields instead 11) Wrong client version DBC file?

./dbc/Vehicle.dbc (exist, but have 0 fields instead 40) Wrong client version DBC file?

./dbc/VehicleSeat.dbc (exist, but have 0 fields instead 58) Wrong client version DBC file?

./dbc/WorldMapOverlay.dbc (exist, but have 0 fields instead 17) Wrong client version DBC file?

I tested 3 dbc files diferent but any work for me.

I use the repair tool with my client wow but its dont see any error on my client.

I reset my client and take the updates from wow 1.x to 3.1.3 and extract the dbc files and its have the same error.

I dont know what i do now...

Can one help me with this?

Link to comment
Share on other sites

Sorry for the double post but I am always getting the error:

checking for OPENSSL... no

configure: error: Missing openssl

Even when all that packages are installed along with the openssl_0.9.8k upgrade. I did what balrok said here: http://getmangos.eu/community/showthread.php?p=92551#post92551 but I already had that installed and I can't get past this error even with reinstalls.

Link to comment
Share on other sites

  • 39 years later...

[h]Important! Parts of this guide are obsolete due to new build system!

please check out the Wiki guide[/h]

Before we start

This is written with the following assumptions:

1) You are build a revision within 50 of 8797.

2) Your using Ubuntu Server 8.04/8.10/9.10 - Debian 5 - CentOS 5 / RHEL

3) You have the required map and data files.

4) You have at least minimal knowledge of the Linux command line.

5) You have direct or ssh access to the machine.

6) You have some good music to listen to.

7) You have 2 hours to waste.

Step 1a - Install the software - Ubuntu/Debian

This will install the packages required by MaNGOS on Debian/Ubuntu based system.

Your going to get a MySQL root password prompt if you havn't setup MySQL before, pick a secure password, make sure you remember this.

~# apt-get update
~# apt-get install build-essential gcc g++ cpp automake git-core autoconf make patch libmysql++-dev libtool libcurl4-openssl-dev libssl-dev grep binutils subversion zlibc libc6 nano mysql-server unrar-free

Step 1b - Install the software - CentOS/RHEL

This will install the packages required by MaNGOS on RHEL/CentOS based system.

Install RPMForge

~# rpm --import [url]http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt[/url]

Select the proper architecture code below. If you are unsure, "uname -m" in the command line will tell you.

32bit - i386/i686

~# wget [url]http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm[/url]
~# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

64bit - x86_64

~# wget [url]http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm[/url]
~# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

Install dependencies

~# 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 - Get the source

We get the current mangos version and SD2 version.

~# git clone git://github.com/mangos/mangos.git
~# cd mangos
~# git clone git://github.com/scriptdev2/scriptdev2.git src/bindings/ScriptDev2

Step 3 - Patch MaNGOS w/ SD2

Where going to apply the SD2 patch

~# git am src/bindings/ScriptDev2/patches/MaNGOS-*

Step 4 - Compile MaNGOS

Now where going to compile, this takes anywhere from 30 minutes up to a few hours.

This is going to get everything ready, you can copy/paste this, I just placed all the commands on a single like, so there is a minimal chance to mess something up.

~# autoreconf --install --force;mkdir objdir;cd objdir;

This will configure MaNGOS. You can change "/opt/mangos" to the directory where you want to install MaNGOS.

~# ../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos

The last step is to start the compiler, this part takes the longest.

~# make
~# make install

All-In-One

This is an All-In-One for steps 1-4, if this fails then actually do steps 1-4 so you can find the error

cd ~;apt-get update;apt-get install build-essential gcc g++ cpp automake git-core autoconf make patch libmysql++-dev libtool libcurl4-openssl-dev libssl-dev grep binutils subversion zlibc libc6 nano mysql-server unrar-free;wget [url]http://ftp.de.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8k-5_i386.deb[/url] [url]http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_0.9.8k-5_i386.deb;dpkg[/url] --install libssl0.9.8_0.9.8k-5_i386.deb;dpkg --install openssl_0.9.8k-5_i386.deb;git clone git://github.com/mangos/mangos.git;cd mangos;git clone git://github.com/scriptdev2/scriptdev2.git src/bindings/ScriptDev2;git am src/bindings/ScriptDev2/patches/MaNGOS-*;autoreconf --install --force;mkdir objdir;cd objdir;../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos;make;make install;

Step 5 - Setup MaNGOS

We need to enter the MaNGOS install directory. If you changed the install directory, this will be different, change to w/e directory you picked.

~# cd /opt/mangos/

First we copy the config files the compiler made, we don't rename them because you might mess one up, this way, you have a backup.

~# cp etc/mangosd.conf.dist etc/mangosd.conf
~# cp etc/realmd.conf.dist etc/realmd.conf

Now we edit them. This will start the Nano editor, this is VERY simple to use, "^" = "ctrl" in windows, so "^X" would be "ctrl+x".

You move around with your numpad (you know, the smaller words, under the numbers, you get to use those now).

~# nano etc/mangosd.conf
~# nano etc/realmd.conf

I''m going to assume you know how to change the files respectively.

Step 6 - Setup the Database

There is a magic little command we use during the setup process, this makes things so much simpler.

~# mysql -p'YOUR PASSWORD HERE'

We will use this in place of a Windows/Mac MySQL application.

Create the MaNGOS database

~# mysql -p'YOUR PASSWORD HERE' < mangos/sql/create_mysql.sql
~# mysql -p'YOUR PASSWORD HERE' < ScriptDev2/sql/ScriptDev2_create_database.sql
~# mysql -p'YOUR PASSWORD HERE' ScriptDev2 < ScriptDev2/sql/ScriptDev2_create_structure_mysql.sql

Populate the database

~# mysql -p'YOUR PASSWORD HERE' mangos < mangos/sql/mangos.sql
~# mysql -p'YOUR PASSWORD HERE' characters < mangos/sql/characters.sql
~# mysql -p'YOUR PASSWORD HERE' realmd < mangos/sql/realmd.sql
~# mysql -p'YOUR PASSWORD HERE' ScriptDev2 < ScriptDev2/sql/ScriptDev2_script_full.sql

World Database

Download Database

This is strictly copy/paste for current, this will break in the future, i will try to keep this updated

~# wget [url]https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/trunk/Full_DB/UDB_0.11.6_Core_8734_SD2_1480.rar[/url] [url]https://sd2-acid.svn.sourceforge.net/svnroot/sd2-acid/trunk/wotlk/3.0.1/3.0.1_acid.sql[/url] --no-check-certificate;unrar e UDB*;

Install Database

~# mysql -p'YOUR PASSWORD HERE' mangos < UDB_0.11.6_Core_8734_SD2_1480.sql
~# mysql -p'YOUR PASSWORD HERE' mangos < 3.0.1_acid.sql
~# mysql -p'YOUR PASSWORD HERE' mangos < /mangos/src/bindings/ScriptDev2/sql/mangos_scriptname_full.sql

Now apply MySQL updates. There is a list right after this post, you can follow it to update.

Step 7 - Realmlist

Where going to update the realm name and IP so it can be accessed from other computers.

~# mysql -p'YOUR PASSWORD HERE'
mysql> use realmd;
mysql> UPDATE realmlist SET name = 'Your Realm Name' WHERE id = 1;
mysql> UPDATE realmlist SET address = 'Your IP' WHERE id = 1;
mysql> exit

Step 8 - Datafiles

Download the datatools, I got these from the contrib folder in the MaNGOS source.

If you can use a Windows Environment, then you can find pre-compiled binaries in extractor_binary

If you cannot use them, you must compile ad, vmap_extractor, vmap_assembler and optionally mmap form the sub-directories for yourself

Place these files in your w*w folder and run "ExtractResources.sh"

Your going to upload, "maps", "dbc", and "vmaps", place these in the "bin" folder You can do this with Filezilla, it supports SFTP, you can upload the files without the need to install an FTP server.

Step 9 - Starting the Server

There are a few ways you can start your server, I'm going to show you my preferred method. Where going to use a linux cmd line app that simulates different screen or windows.

Here is a video tutorial to show you how it works:

http://impactwow.com/mangos/screen/ - Will re-upload soon.

In your first screen, change to your MaNGOS bin. This could be different if you changed it in step 4.

~# cd /opt/mangos/bin
~# ./mangos-realmd

Now switch to your second screen, and change to the same directory.

~# cd /opt/mangos/bin
~# ./mangos-worldd

You can now switch between the two.

You should now have a working Mangos - UDB - SD2 - Acid - Server setup and running, if you have a public/static IP then the server should be public as well.

Thanks go to artanis for the SD2 patch snippet. Thanks to the awesome mod who made this a sticky.

Link to comment
Share on other sites

Mangos SQL Updates

Since there are SO many sql changes made, I will try my best to explain how to apply the mysql updates.

You will need the current revision of the SD2 World DB you installed, from there, you will run ALL updates from that revision and up.

The updates are in the /mangos/sql/updates folder.

If you update the core, you will need to check for any SQL changes and apply those with each new core.

Link to comment
Share on other sites

Regarding the ScriptDev2 patch numbers, this code will just apply the patch in the directory.

git am $(ls src/bindings/ScriptDev2/patches/* | grep -v gz)

Also, when I compile, I not getting mangos-worldd. Only mangos-realmd and genrevision appear in mangos/bin.

Link to comment
Share on other sites

There is an error with SD2, if you look at the make exits, you will see it does so with errors.

This isn't due to the tutorial, this is the same method I have used many times over.

EDIT: just ran the code, and it installed, looks like they fixed it.

Link to comment
Share on other sites

Hello, just a few suggestions:

  • * apt-get is obsolete in Debian, I don't know how that's in *buntu, I would use aptitude or such more advanced tool, but whatever, apt-get is the most error-prone solution here ..
    * Use one command per line, no semicolons! If an error occur, the command list continues executing and thus you're probably unable to find out where the error occured. If you absolutelly _must_ use several commands per line, because you feel it's somewhat cool, use `&&' instead of semicolon. This will most likely stop other commands from executing if an error occur (due to return value).
    * I'm really surprised you used git-am. Almost noone realizes that I made SD2 patch usable for git-am. You should however include a git-apply version (or at least mention) for people who don't want any custom commits, because they git-stash all their custom stuff befure update (to make it fast-forward) ..
    * just btw .. you can use wildcards even like "git-am src/bindings/ScriptDev2/patches/MaNGOS-*.patch" to get only the .patch file (no gzip) ... or use gzipped one together with zcat.
    * Delete everything in the autoreconf line except "autoreconf --install --force", everything else is already done by this one command.
    * I don't know why most guides use "--enable-ra" even if 95% of the people using this guide won't ever use RA.
    * Again, separate make from make install with an error check, your current solution is really, really bad as make can likely fail (which isn't true for mkdir for example).
    * Using mysql passwords on command line is rather dangerous, better solution would be to use "source" from mysql client or doing something like "cat file1 file2 file3 file4 | mysql mydatabase -p" and typing the pass once. But that is, of course, not so nice, because you won't know which file caused a possible error.

edit:

  • * win-SCP would be perhaps easier than filezilla, I don't know if filezilla runs without instalation .. and if remote server doesn't support sftp, but it does have scp, you are able to use that.
Link to comment
Share on other sites

I think you should remember this is a guide, if they have a problem, I seriously doubt they can fix it, even with our help.

# apt-get is obsolete in Debian, I don't know how that's in *buntu, I would use aptitude or such more advanced tool, but whatever, apt-get is the most error-prone solution here ..

Aptitude would need to be installed, I have never used a Ubuntu Server that has come with aptitude. Apt installs these just fine, its never messed up on me.

# Use one command per line, no semicolons! If an error occur, the command list continues executing and thus you're probably unable to find out where the error occured. If you absolutelly _must_ use several commands per line, because you feel it's somewhat cool, use `&&' instead of semicolon. This will most likely stop other commands from executing if an error occur (due to return value).

I don't feel the semicolon is "cool" in any way, I'm writing this expecting people who have no idea what there doing to try and follow it. This keeps people from copying/pasting over alot of commands and missing one. Most of the multi-command lines have a small chance of messing up anyways.

# I'm really surprised you used git-am. Almost noone realizes that I made SD2 patch usable for git-am. You should however include a git-apply version (or at least mention) for people who don't want any custom commits, because they git-stash all their custom stuff befure update (to make it fast-forward) ..

I seen the email headers at the beginning of the patch, that's how I knew. If someone is going to be adding there own patches, do you think there going to be following a guide?

# just btw .. you can use wildcards even like "git-am src/bindings/ScriptDev2/patches/MaNGOS-*.patch" to get only the .patch file (no gzip) ... or use gzipped one together with zcat.

You can't use wild cards in this example, I have tried. Try it yourself.

# I don't know why most guides use "--enable-ra" even if 95% of the people using this guide won't ever use RA.

If you leave RA off in the config file, does it really hurt anything ? We won't have 5% of people saying "OMG, i followed the guide, and my super cool make server awesome public script doesnt work!!! HALP!!!"... I would much rather just skip all that.

# Again, separate make from make install with an error check, your current solution is really, really bad as make can likely fail (which isn't true for mkdir for example).

What if I dumped the make and make install to a log file? Then the "new" people could maybe get some help.

# Using mysql passwords on command line is rather dangerous, better solution would be to use "source" from mysql client or doing something like "cat file1 file2 file3 file4 | mysql mydatabase -p" and typing the pass once. But that is, of course, not so nice, because you won't know which file caused a possible error.

If using the password on the CMD line is dangerous, maybe you should worry about who has access to your server root to look at the history where you used them. I do the MySQL commands separate because if there going to have a problem, its going to be here.

If they can't get Filezilla working, then they can ask for help, trying to keep this simple.

Link to comment
Share on other sites

~# mysql -p'YOUR PASSWORD HERE' mangos < UDB_0.11.5_Core_7681_SD2_1012.sql

~# mysql -p'YOUR PASSWORD HERE' mangos < 009_acid.sql

~# mysql -p'YOUR PASSWORD HERE' mangos < scriptdev2/sql/mangos_scriptname_full.sql

Do the "UDB_0.11.5_Core_7681_SD2_1012.sql" already include the "009_acid.sql" and "mangos_scriptname_full.sql"?

I think yes

EDIT:

~# cp etc/mangosd.conf.dist etc/mangosd.conf

~# cp etc/realmd.conf.dist etc/realmd.conf

I suggest to add also:

~# cp etc/scriptdev2.conf.dist etc/scriptdev2.conf

or it does not need?

Link to comment
Share on other sites

I'm not sure I understand the eighth and ninth steps, I don't understend where I should place the "dbc" and "maps" folders (on windows i place them in the same folder of mangosd.exe and realmd.exe)..

anywhere..

Thanks for all your work and patience, I would be grateful if you write an Updating Guide for Ubuntu, after you finish all works for the Setup Guide....

edit: just place the "maps" and "dbc" in the "bin" folder

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use