MaNGOS pod Linuxem: Porovnání verzí

Z WoWResource Wiki
Přejít na: navigace, hledání
m
(Přepracování a zpřehlednění návodu vzhledem aktuálním informacím.)
Řádek 1: Řádek 1:
== Něco o linuxu ==
+
=Jakou použít verzi MaNGOSu, ScriptDev2, UDB=
  
GNU/Linux je svobodný operační systém, který je možné používat zdarma a legálně v rámci licence GNU/GPL. Je zpravidla distribuován jako kompletní operační systém včetně aplikací v tzv. distribucích. Mezi nejznámější distribuce patří Ubuntu, Suse, Mandriva, Debian, Fedora a Gentoo. Více informací najdete na [[http://linux.cz/]].
+
Aby server pracoval tak, jak to zamýšleli jeho vývojaři, je potřeba mít správné verze jednotlivých komponent. Pokud si verze nebudou odpovídat, nemusí pracovat emulátor správně.
  
Pro začínající uživatele lze doporučit distribuci Ubuntu.
+
Při volbě databáze je potřeba vycházet z informací k vybrané (pravděpodobně nejnovější) databázi. V případě databáze UDB jsou uváděny jak testované verze MaNGOSu tak i dalších komponent jako ScriptDev2.
  
== Instalace MaNGOSu a jeho kompilace ==
+
''Příklad:''
 +
UDB release 0.11.0: "The Kraken"
 +
Requires: Core 7069 for 3.0.3
 +
*_template scripts added for SD2 up to 838
  
=== Začněme s instalací programů důležitých pro zprovoznění serveru ===
+
Čísla verzí lze vyčíst také z názvu souboru tzv. full verze UDB jako např. UDB_0.11.0_Core_7069_SD2_838.sql
  
* Otevřete si terminál a zadejte následující příkazy:
+
Tedy k této databázi je potřeba stáhnout MaNGOS 7069, použít herního klienta verze 3.0.3 a ScriptDev2 revize 838.
 +
V tomto návodu budou pro názornost použita tato čísla verzí.
  
'''sudo -i (poté vaše heslo...)''' - ''přihlášení na roota''
+
=Kompilace MaNGOSu=
  
'''apt-get install (název programu)''' - ''apt-get funguje jako synaptic''
+
* Spusťte prostředí příkazového řádku (konsole, gnome-terminal, aj.)
  
 +
* Nainstalujte potřebné součásti systému
  
* Nyní programy, které je potřeba nainstalovat.
+
Pro Debian a Ubuntu:
 +
<pre>apt-get install gcc g++ automake autoconf make libmysql++-dev libtool libssl-dev subversion patch zlibc libc6 git git-core cogito screen MySQL-server MySQL-client unrar
 +
</pre>
  
 +
Pro Fedoru, Centos:
 +
<pre>yum install openssl cpp gcc gcc-c++ openssl-devel libgcrypt-devel zlib-devel make libtool subversion automake autoconf git mysql-devel mysql-server mysql mysql-libs screen unrar
 +
</pre>
  
'''GCC 3.3''' - ''Compilátor (verzi lze stáhnout i novější)''
+
* Zvolte a vytvořte cílovou složku, kde bude MaNGOS později instalován (zde použito /opt/mangos)
  
'''G++'''
+
<pre>mkdir /opt/mangos
 +
cd /opt/mangos</pre>
  
'''Make'''  - ''Je nástroj, který se stará o generování spustitelných programů nebo jiných souborů ze zdrojových kódů programu. Jak provést sestavení (kompilace a další úkony) se make dozví ze souboru nazývaného makefile. Ačkoliv je make nejpoužívanějším programem pro sestavování GNU projektů''
+
* Stáhněte požadovanou revizi zdrojových kódů MaNGOSu-
  
'''Libtool'''
+
<pre>git clone git://github.com/mangos/mangos.git source
 +
git checkout 7069
 +
cd source
 +
</pre>
  
'''Automake'''  - ''Je nástroj pro automatické generování Makefilů splňujících GNU Coding Standards. Používá k tomu sadu maker m4 - Autoconf. Automake je napsaný v Perlu.''
+
* Stáhněte zdrojové kódy ScriptDev2 a pomocí patch souboru jej začleňte do kódů MaNGOSu
  
'''Autoconf'''  - ''Autoconf je rozšiřitelný balík m4 maker, která vytvářejí shell skripty... unixovým systémům. Autoconf vytvoří konfigurační skript (./configure) na základě šablony... Autoconf k vygenerování souborů Makefile.in.''
+
<pre>mkdir src/bindings/ScriptDev2
 +
svn checkout -r 838 https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/ src/bindings/ScriptDev2
 +
git apply src/bindings/ScriptDev2/patches/MaNGOS-2008-12-22-ScriptDev2.patch</pre>
  
'''glibc a glibc-dev''' - ''Knihovny''
+
* Dále můžete před samotným překladem zdrojových kódů aplikovat další cizí nebo vlastní patche pomocí příkazů:
  
'''mysql klient, mysql server 4.1'''  - ''Slouží jako databázoví server''
+
<pre>patch -p0 < soubor.patch
 +
git apply soubor.patch
 +
</pre>
  
'''libmysql++-dev'''
+
* Nyní proveďte samotný překlad emulátoru do binární podoby
  
'''OpenSSL, libssl-dev'''
+
<pre>
 +
autoreconf -ifv
 +
mkdir objdir
 +
cd objdir 
 +
../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos
 +
make -j2
 +
make install</pre>
  
'''subversion (svn)'''  - ''Slouží na stahování zdrojových kódů ze [[SVN|Subversion]] repozitářů.''
+
* Proveďte přenastavení konfiguračních souborů mangos.conf, realmd.conf a scriptdev2.conf ve složce /opt/mangos/etc.
 +
Pokud vám chybí soubor scriptdev2.conf, zkopírujte si jej z /opt/mangos/source/src/bindings/ScriptDev2/scriptdev2.conf.dist.in.
  
'''zlibc'''  - ''Kompresní knihovny''
+
[[Konfigurační_soubor_(MaNGOS)]]
  
 +
=Nastavení databáze=
  
Pokud se vám povedlo vše úspěšně nainstalovat, můžeme přejít k dalšímu bodu.
+
* Zkontrolujte zda je spuštěn MySQL server a proveďte inicializaci databáze MySQL.
  
 +
<pre>mysql < /opt/mangos/source/sql/create_mysql.sql
 +
mysql mangos < /opt/mangos/source/sql/mangos.sql
 +
mysql characters < /opt/mangos/source/sql/characters.sql
 +
mysql realmd < /opt/mangos/source/sql/realmd.sql
 +
mysql < /opt/mangos/source/src/bindings/ScriptDev2/sql/create_database.sql
 +
mysql scriptdev2 < /opt/mangos/source/src/bindings/ScriptDev2/sql/scriptdev2_structure.sql
 +
</pre>
  
=== Kompilace ===
+
V databázi realmd tabulce realmlist je vytvořen výchozí realm nasměrovaný na adresu lokálního počítače.
 +
Dále jsou v této databázi v tabulce account vytvořeny čtyči výchozí hráčské účty. Tyto účty je z bezpečnostního hlediska potřeba smazat nebo u nich změnit heslo.
  
* Nyní v terminálu použijte následující příkazy:
+
* Stáhněte vybranou databázi UDB.
  
'''mkdir mangos''' - ''Tento příkaz vytvoří složku mangos ... ''
+
<pre>
 +
cd /opt/mangos/udb
 +
wget "https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/trunk/Full_DB/UDB_0.11.0_Core_7069_SD2_838_(3.0.3).rar"
 +
</pre>
  
 +
* Rozbalte archív
  
* Teď už jen stáhnou zdrojové kódy [[MaNGOS|MaNGOSu]] ze [[SVN]] serveru použitím příkazu:
+
<pre>
 +
unrar UDB_0.11.0_Core_7069_SD2_838_(3.0.3).rar
 +
</pre>
  
'''svn checknout https://mangos.svn.sourceforge.net/svnroot/mangos/trunk mangos'''  - ''nyní ze [[SVN]] serveru se vám stáhne zdroják [[MaNGOS|MaNGOSu]] do složky mangos, kterou jste si dříve vytvořily.''
+
* Naimportujte data pro databázi mangos
  
''Nyní záleží na vás, jestli budete na svém serveru chtít použít [[ScriptDev2]] nebo základní scripty [[MaNGOS|MaNGOSu], kterou jsou jeho součástí.''
+
<pre>mysql mangos < UDB_0.11.0_Core_7069_SD2_838_(3.0.3).sql
 +
</pre>
  
 +
* Naplňte daty databázi scriptdev2 a aktualizujte vazby na tabulky v databázi mangos.
  
* Pokračujeme kompilaci s ScriptDev2
+
<pre>mysql scriptdev2 < /opt/mangos/source/src/bindings/ScriptDev2/sql/script_texts.sql
 +
mysql mangos < /opt/mangos/source/src/bindings/ScriptDev2/sql/mangos_full_scripts.sql
 +
</pre>
  
'''cd mangos'''  - ''Tento příkaz vás přesměruje do šložky mangos do které jste si stáhli zdroják - mangosu
+
=Datové soubory=
''
 
'''mkdir src/bindings/ScriptDev2'''  - ''Tento příkaz vytvoří složku ScriptDev2 ve složce ../bindings''
 
  
'''svn checkout http://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2 src/bindings/ScriptDev2'''  - ''Tento příkaz vám do šložky "src/bindings/ScriptDev2" stáhne ze [[SVN]] serveru SD2 ...''
+
* Hry ke svému běhu potřebuje také datové soubory se samotné hry. Je potřeba spustit příkaz ad.exe, který si zkompiluje nebo odněkud stáhnete, ve složce hry. Verze hry, programu ad.exe a emulátoru musí souhlasit. Po úspěšném vyextrahování souborů se vytvoří složky dbc a maps, které je potřeba přesunou do složky /opt/mangos/mangos.
  
'''patch -p0 < src/bindings/ScriptDev2/patches/MaNGOS-r5049-Scriptdev2.patch''' - ''Tento příkaz patchne mangos ...''
+
* Dále můžete pomocí vmap_extractoru vytvořit vmap soubory pro funkci emulátoru Line-of-Sight, která např. znemožňuje útok příšet přes zeď.
  
'''autoreconf --install --force'''  - ''Tento příkaz nastaví kompilaci SD2''
+
=Další informace=
  
'''autoconf'''
+
* [[MaNGOS]]
  
'''automake src/bindings/ScriptDev2/Makefile'''
+
* [http://www.wowresource.eu/index.php?showtopic=11147 Přesný návod na spuštění MaNGOSu na Linuxu s použitím GITu]
 
 
''Pokud je vše dokončeno, můžete pokračovat dále (už se blížíme k závěru).''
 
 
 
 
 
''Do terminálu zadávejte následující příkazy:''
 
 
 
'''./configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --with-python --enable-cli --enable-ra --datadir=/opt/mangos'''
 
 
 
'''make'''
 
 
 
'''make install'''
 
 
 
'''cd src/bindings/scriptdev2'''
 
 
 
'''make'''
 
 
 
'''make install'''
 
 
 
''Nyní máte [[MaNGOS]] zkompilován a nainstalován.''
 
 
 
 
 
=== Příprava a nastavení MySQL ===
 
 
 
* Přihlaste se do terminálu jako root ('''sudo -i /vaše heslo/''')
 
 
 
zadejte příkaz
 
 
 
'''Mysql''' - ''pokud je vše v pořádku poznáte že kurzor bliká mysql>_''
 
 
 
 
 
* Pro vytvoření MySQL uživatele (pro mangos) a nastavení jeho práv použijte následující příkazy:
 
 
 
''''''create user 'mangos' identified by 'heslo';'''
 
 
 
'''''grant all privileges on *.* to 'mangos' identified by 'heslo';''''''''
 
 
 
 
 
* Nyní vytvoření DB (mangos a realmd případně scriptdev 2)
 
 
 
'''create database mangos;'''
 
 
 
'''create database realmd;'''
 
 
 
'''create database scriptdev2;'''
 
 
 
 
 
* Do vytvořené DB Mangos nahrajeme př: UDB https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/Full_DB/ + update
 
 
 
* Do vytvořené DB Realmd nahrajeme sql, který se vždy nachází u mangosu ve složce SQL!
 
 
 
* Do vytvořené DB ScriptDev2 nahrajeme sql, který se nacházý u SD2
 
 
 
* Databáze importujeme pomocí následujících příkazu:
 
 
 
'''use realmd;'''
 
 
 
'''source /CESTA K MANGOSU/mangos/sql/realmd.sql'''
 
 
 
'''use mangos;'''
 
 
 
'''source /cesta k full mangos DB'''
 
 
 
'''use scriptdev2;'''
 
 
 
'''source /cesta k sql souborum SD2'''
 
 
 
 
 
* Upravení v DB realmistu dosáhneme za pomocí příkazu
 
 
 
'''use realmd;'''
 
 
 
'''update realmlist set address='VASE_VEREJNA_IP',name='jmeno_realmu';'''
 
 
 
 
 
* Nyní ukončíme MySQL klienta
 
 
 
'''''exit'''''
 
 
 
 
 
To je vše potřebné pro chod serveru.
 
 
 
Soubory map, vmap a [[DBC]] najdete případně ve fóru [http://wowresource.eu/]
 
 
 
 
 
== Související odkazy ==
 
  
 
* [http://www.wowresource.eu/index.php?showtopic=4589&hl=linux MaNGOS pod Linuxem] - Návod jak kompletně rozjet MaNGOS pod linuxem.
 
* [http://www.wowresource.eu/index.php?showtopic=4589&hl=linux MaNGOS pod Linuxem] - Návod jak kompletně rozjet MaNGOS pod linuxem.
  
* [http://www.wowresource.eu/index.php?showtopic=3380&hl=linux MaNGOS under LINUX] - Návod (přavzato z http://www.mangosproject.org)] - anglicky
 
  
 
[[Kategorie:MaNGOS Problémy]]
 
[[Kategorie:MaNGOS Problémy]]

Verze z 22. 1. 2009, 18:35

Jakou použít verzi MaNGOSu, ScriptDev2, UDB

Aby server pracoval tak, jak to zamýšleli jeho vývojaři, je potřeba mít správné verze jednotlivých komponent. Pokud si verze nebudou odpovídat, nemusí pracovat emulátor správně.

Při volbě databáze je potřeba vycházet z informací k vybrané (pravděpodobně nejnovější) databázi. V případě databáze UDB jsou uváděny jak testované verze MaNGOSu tak i dalších komponent jako ScriptDev2.

Příklad: UDB release 0.11.0: "The Kraken" Requires: Core 7069 for 3.0.3

  • _template scripts added for SD2 up to 838

Čísla verzí lze vyčíst také z názvu souboru tzv. full verze UDB jako např. UDB_0.11.0_Core_7069_SD2_838.sql

Tedy k této databázi je potřeba stáhnout MaNGOS 7069, použít herního klienta verze 3.0.3 a ScriptDev2 revize 838. V tomto návodu budou pro názornost použita tato čísla verzí.

Kompilace MaNGOSu

  • Spusťte prostředí příkazového řádku (konsole, gnome-terminal, aj.)
  • Nainstalujte potřebné součásti systému

Pro Debian a Ubuntu:

apt-get install gcc g++ automake autoconf make libmysql++-dev libtool libssl-dev subversion patch zlibc libc6 git git-core cogito screen MySQL-server MySQL-client unrar

Pro Fedoru, Centos:

yum install openssl cpp gcc gcc-c++ openssl-devel libgcrypt-devel zlib-devel make libtool subversion automake autoconf git mysql-devel mysql-server mysql mysql-libs screen unrar
  • Zvolte a vytvořte cílovou složku, kde bude MaNGOS později instalován (zde použito /opt/mangos)
mkdir /opt/mangos
cd /opt/mangos
  • Stáhněte požadovanou revizi zdrojových kódů MaNGOSu-
git clone git://github.com/mangos/mangos.git source
git checkout 7069
cd source
  • Stáhněte zdrojové kódy ScriptDev2 a pomocí patch souboru jej začleňte do kódů MaNGOSu
mkdir src/bindings/ScriptDev2
svn checkout -r 838 https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/ src/bindings/ScriptDev2
git apply src/bindings/ScriptDev2/patches/MaNGOS-2008-12-22-ScriptDev2.patch
  • Dále můžete před samotným překladem zdrojových kódů aplikovat další cizí nebo vlastní patche pomocí příkazů:
patch -p0 < soubor.patch
git apply soubor.patch
  • Nyní proveďte samotný překlad emulátoru do binární podoby
autoreconf -ifv
mkdir objdir
cd objdir  
../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos
make -j2
make install
  • Proveďte přenastavení konfiguračních souborů mangos.conf, realmd.conf a scriptdev2.conf ve složce /opt/mangos/etc.

Pokud vám chybí soubor scriptdev2.conf, zkopírujte si jej z /opt/mangos/source/src/bindings/ScriptDev2/scriptdev2.conf.dist.in.

Konfigurační_soubor_(MaNGOS)

Nastavení databáze

  • Zkontrolujte zda je spuštěn MySQL server a proveďte inicializaci databáze MySQL.
mysql < /opt/mangos/source/sql/create_mysql.sql
mysql mangos < /opt/mangos/source/sql/mangos.sql
mysql characters < /opt/mangos/source/sql/characters.sql
mysql realmd < /opt/mangos/source/sql/realmd.sql
mysql < /opt/mangos/source/src/bindings/ScriptDev2/sql/create_database.sql
mysql scriptdev2 < /opt/mangos/source/src/bindings/ScriptDev2/sql/scriptdev2_structure.sql

V databázi realmd tabulce realmlist je vytvořen výchozí realm nasměrovaný na adresu lokálního počítače. Dále jsou v této databázi v tabulce account vytvořeny čtyči výchozí hráčské účty. Tyto účty je z bezpečnostního hlediska potřeba smazat nebo u nich změnit heslo.

  • Stáhněte vybranou databázi UDB.
cd /opt/mangos/udb
wget "https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/trunk/Full_DB/UDB_0.11.0_Core_7069_SD2_838_(3.0.3).rar"
  • Rozbalte archív
unrar UDB_0.11.0_Core_7069_SD2_838_(3.0.3).rar
  • Naimportujte data pro databázi mangos
mysql mangos < UDB_0.11.0_Core_7069_SD2_838_(3.0.3).sql
  • Naplňte daty databázi scriptdev2 a aktualizujte vazby na tabulky v databázi mangos.
mysql scriptdev2 < /opt/mangos/source/src/bindings/ScriptDev2/sql/script_texts.sql
mysql mangos < /opt/mangos/source/src/bindings/ScriptDev2/sql/mangos_full_scripts.sql

Datové soubory

  • Hry ke svému běhu potřebuje také datové soubory se samotné hry. Je potřeba spustit příkaz ad.exe, který si zkompiluje nebo odněkud stáhnete, ve složce hry. Verze hry, programu ad.exe a emulátoru musí souhlasit. Po úspěšném vyextrahování souborů se vytvoří složky dbc a maps, které je potřeba přesunou do složky /opt/mangos/mangos.
  • Dále můžete pomocí vmap_extractoru vytvořit vmap soubory pro funkci emulátoru Line-of-Sight, která např. znemožňuje útok příšet přes zeď.

Další informace