TrinityCore na Linuxu: Porovnání verzí

Z WoWResource Wiki
Přejít na: navigace, hledání
(knihovna)
(oprava odkazu)
 
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.)
Řádek 13: Řádek 13:
 
'''Pro Fedoru/Centos:'''  
 
'''Pro Fedoru/Centos:'''  
 
Na začátku se v terminálu se přihlašte jako root pomocí příkazu su.
 
Na začátku se v terminálu se přihlašte jako root pomocí příkazu su.
 +
 +
 +
''Rada: Pokud máte vícejádrový procesor, použijte při vykonávání příkazu '''make''' pro rychlejší dokončení parameter -j se zadaným počtem souběžných úloh. Pro dvoujádro zadávejte ''make -j 2'' a pro více jader analogicky vyšší číslo. Výkon procesoru bude tak lépe využit a překlad se dokončí rychleji. více souběžných úloh překládání však bude znamenat vyšší nároky na operační paměť.''
  
  
Řádek 153: Řádek 156:
  
 
A Trinity máme zkompilovanou. Nyní je ve vašem domovském adresáři ve složce build Trinity!
 
A Trinity máme zkompilovanou. Nyní je ve vašem domovském adresáři ve složce build Trinity!
 +
 +
===Řešení problémů===
 +
 +
* Pokud používáte Fedoru 13 a vypíše vám make při sestavování chybu
 +
<pre>/usr/bin/ld: ../shared/libshared.a(BigNumber.cpp.o): undefined reference to symbol 'BN_new'
 +
/usr/bin/ld: note: 'BN_new' is defined in DSO /lib/libcrypto.so.10 so try adding it to the linker command line
 +
/lib/libcrypto.so.10: could not read symbols: Invalid operation</pre>
 +
 +
zkuste postupovat dle návodu [http://www.wowresource.eu/index.php?showtopic=19738]
  
 
==Konfigurace serveru==
 
==Konfigurace serveru==
Řádek 253: Řádek 265:
 
=Externí odkazy=
 
=Externí odkazy=
  
* [http://www.trinitycore.info/index.php/Installing_TrinityCore_on_recent_*NIX-based_systems Installing TrinityCore on recent *NIX-based systems]
+
* [http://www.trinitycore.info/How-to:Linux Oficiální Trinity How-to:Linux]
 
* [http://www.wowresource.eu/index.php?showtopic=15793&st=0 Diskuse k tomuto návodu ve fóru]
 
* [http://www.wowresource.eu/index.php?showtopic=15793&st=0 Diskuse k tomuto návodu ve fóru]
 
* [http://www.wowresource.eu/index.php?showtopic=19738&st=0&p=177560&#entry177560 Řešení problému s kompilací na Fedoře 13]
 
* [http://www.wowresource.eu/index.php?showtopic=19738&st=0&p=177560&#entry177560 Řešení problému s kompilací na Fedoře 13]
  
 
[[Kategorie:TrinityCore]]
 
[[Kategorie:TrinityCore]]

Aktuální verze z 28. 7. 2011, 19:41

Kompilace TrinityCore na Linuxu

V tomto návodu je pro jednoduchost použit pracovní adresář /opt/trinitycore.

mkdir /opt/trinitycore
cd /opt/trinitycore


Vykonávání příkazů pod systémovým účtem:

Pro Debian/Ubuntu: Vkládejte před příkazy povel sudo nebo se přihlašte jako root pomocí sudo bash.

Pro Fedoru/Centos: Na začátku se v terminálu se přihlašte jako root pomocí příkazu su.


Rada: Pokud máte vícejádrový procesor, použijte při vykonávání příkazu make pro rychlejší dokončení parameter -j se zadaným počtem souběžných úloh. Pro dvoujádro zadávejte make -j 2 a pro více jader analogicky vyšší číslo. Výkon procesoru bude tak lépe využit a překlad se dokončí rychleji. více souběžných úloh překládání však bude znamenat vyšší nároky na operační paměť.


Instalace balíčků

Pro správnou a bezproblémovou instalaci je nutno mít nainstalované tyto programy:

Pro Debian/Ubuntu:

sudo apt-get install g++ gcc make cmake libmysql++-dev subversion mercurial openssl libssl-dev \
zlib1g-dev libtool libmysqlclient15-dev patch build-essential mysql-client libreadline5-dev

Pro Fedoru/Centos:

yum install cpp gcc gcc-c++ make cmake subversion mercurial openssl openssl-devel patch mysql-devel \
mysql-server mysql mysql-libs readline readline-devel compat-readline5-devel compat-readline5 zlib-devel bzip2-devel

Poznámka: Repozitář Fedory obsahuje i balík pojmenovaný ace. Ten má však jiné využití (Appliance Configuration Engine)

Sestavení libSSL

Toto je velmi důležitý krok, protože bez této knihovny se vám Trinity sice zkompiluje ale nepůjde.

cd /opt/trinitycore
mkdir -p .sys/sources 
cd .sys/sources


Tímto příkazem jsme připravili složku pro zdrojové soubory této knihovny. Nyní je stáhneme, rozbalíme a přesuneme se do jejich složky:

wget http://www.openssl.org/source/openssl-0.9.8k.tar.gz
tar -xvf openssl-0.9.8k.tar.gz
cd openssl-0.9.8k


A opět známá konfigurace:

./config --prefix=/opt/trinitycore/.sys shared


A nyní už jen knihovnu zkompilovat a nainstalovat:

make
make install

Tímto je knihovna připravena k použití.

Sestavení ACE

Domovské stránky projektu ACE(The ADAPTIVE Communication Environment) [1]

Nejnovější verze můžete získat odsud: [2]

Doporučení: Stahujte nejnovější dostupnou verzi. Kompatibilita nejnovějších Trinity revizí nemusí být se staršími ACE.


Konkrétní příklad stažení:

cd /opt/trinitycore
wget http://download.dre.vanderbilt.edu/previous_versions/ACE-5.7.6.tar.gz

Rozbalíme obsah archívu

tar xvzf ACE-5.7.6.tar.gz

Přejmenujeme adresář na jednoduší jméno a přesuneme se dovnitř

mv ACE_wrappers ACE
cd ACE

Sestavení programu provedem

mkdir build
cd build
../configure --prefix=/opt/trinitycore/.sys/ --with-openssl=/opt/trinitycore/.sys/ --disable-ace-examples
make
make install

Tímto se ACE zkompiluje a nainstaluje a je připraven pro použití.

Kompilace TrinityCore

Přejdeme do hlavního adresáře

cd /opt/trinitycore


Pomocí nástroje pro práci s verzovacím systémem Mercurial stáhneme kopii repozitáře zdrojových kódů:

hg clone https://trinitycore.googlecode.com/hg trinitycore

Také je možno zadat přímo číslo konkrétní revize:

hg clone --rev 1234 https://trinitycore.googlecode.com/hg trinitycore

Kódy lze stáhnout také přímo z webu [3]

Aplikace patche

Můžete volitelně aplikovat patche pro TrinityCore, které najdete někde na Internetu. Přesunete se do složky, kam jste právě stáhli trinity pomocí

cd trinitycore

Aplikace patche:

Vlastní aktualizace:

patch -p0 < soubor.patch

GIP patch:

git apply soubor.patch

Samotné sestavení

Trinity už máme staženou, nyní se přesuneme do její složky příkazem (pokud jsme to už neudělali spolu s aplikací patche):

cd /opt/trinitycore/trinitycore

A můžeme začít vesele kompilovat:

cmake -DPREFIX=/opt/trinitycore/build -DACE_LIBRARY=/opt/trinitycore/.sys/lib/libACE.so \
-DACE_INCLUDE_DIR=/opt/trinitycore/.sys/include/ -DSSLLIB=/opt/trinitycore/.sys/lib/libssl.so

Vysvětlení některých parametrů:

  • -DACE_LIBRARY=/opt/trinitycore/.sys/lib/libACE.so -- cesta k vaší knihovně libACE.so
  • -DSSLLIB=/opt/trinitycore/.sys/lib/libssl.so -- cesta k vaší knihovně libssl.so
  • -DACE_INCLUDE_DIR=/opt/trinitycore/.sys/include/ -- cesta k adresáři include libACE
  • -DDO_MYSQL=1 -- sestavit s podporou mysql
  • -DDO_SCRIPTS=1 -- sestavit s podporou skriptování
  • -DDO_RA=1 -- sestavit s podporou vzdáleného přístupu
  • -DDO_CLI=1 -- sestavit s podporou pro příkazový řádek
  • -DPREFIX=/opt/trinitycore/build/ -- cesta, kde bude uloženo sestavené jádro
  • -DCONF_DIR=/opt/trinitycore/build/etc -- cesta, kde budou uloženy vaše konfigurační soubory (volitelné)
make
sudo make install

Pokud máte vícejádrový procesor, tak můžete použít také

make -j <počet jader>

A Trinity máme zkompilovanou. Nyní je ve vašem domovském adresáři ve složce build Trinity!

Řešení problémů

  • Pokud používáte Fedoru 13 a vypíše vám make při sestavování chybu
/usr/bin/ld: ../shared/libshared.a(BigNumber.cpp.o): undefined reference to symbol 'BN_new'
/usr/bin/ld: note: 'BN_new' is defined in DSO /lib/libcrypto.so.10 so try adding it to the linker command line
/lib/libcrypto.so.10: could not read symbols: Invalid operation

zkuste postupovat dle návodu [4]

Konfigurace serveru

Ve složce build/etc máte šablony konfiguračních souborů:

  • trinitycore.conf.dist
  • trinityrealm.conf.dist

Vytvořete si kopie těchto souborů pomocí, které budou použity při spouštění emulátoru

cp trinitycore.conf.dist trinitycore.conf
cp trinityrealm.conf.dist trinityrealm.conf

Upravte obsah nově vzniklých souborů a nastavte přístupové údaje pro připojení k databázi.

LoginDatabaseInfo     = "127.0.0.1;3306;jméno;heslo;realmd"
WorldDatabaseInfo     = "127.0.0.1;3306;jméno;heslo;world"
CharacterDatabaseInfo = "127.0.0.1;3306;jméno;heslo;characters"

V souboru trinityrealm.conf pak

LoginDatabaseInfo = "127.0.0.1;3306;jméno;heslo;realmd"

Extrahování DBC souborů a map z klienta

Když teď zkusíte zapnout Trinity (binární soubory jsou ve složce build/bin), samozřejmě nebude fungovat. Chybí vám totiž vyextrahované soubory z WoW klienta. Ve složce se zdrojovými soubory Trinity je složka contrib a v ní složka extractor. Program v této složce, jmenuje se ad.exe, teď využijeme.

Zkopírujeme ad do složky s WoW a spustíme jej zde

./ad


V případě, že vám linuxový ad nefunguje, můžete použít Windows variantu ad.exe. K jejímu spuštění potřebujete nainstalovat emulátor Wine

Pro Debian/Ubuntu:
sudo apt-get install wine
Pro Fedoru/Centos:
yum install wine


Pak lze program spustit přímo

./ad.exe

nebo

wine ad.exe

Až program ad skončí (řád desítek minut), budete mít ve složce s WoW 2 nové složky: maps a dbc. Obě tyto složky zkopírujeme do složky bin - build/bin.

Nahrání databáze TDB

Trinity Core využívá vlastní databázi, velmi podobnou databázi UDB. Co uděláme nejdřív: Vytvoříme v naší MySQL databázi 3 databáze: realmd, world, characters. Nyní musíme tyto databáze naplnit daty:

Do databáze realmd vložíme SQL soubor z Trinity složky build/share/trinity/sql/realmd.sql

mysql --user root --password realmd < build/share/trinity/sql/realmd.sql

Do databáze characters vložíme soubor ze stejné složky jako realmd, ale SQL se jménem (překvapivě) characters.

mysql --user root --password characters < build/share/trinity/sql/characters.sql

To samé provedeme s databází world.

mysql --user root --password world < build/share/trinity/sql/world.sql

Ještě nám chybí data do databáze world (to co jsme nahráli je jen struktura).

Teď si poctivě stáhneme celou databázi world:

http://svn.assembla.com/svn/trinitydatabase/trunk/full_db/


Stahujeme vždy databázi s nejvyšším číslem. V době psaní tohoto návodu byla nejvyšší databáze 0.0.5 - pro revize Trinity 5254.

Až celý velký soubor stáhneme, rozbalíme ho. Poté celý soubor vložíme do databáze world (to může chvíli trvat).

Nyní už máme databázi konečně připravenou k použití. Ještě však chybí aktualizace a skripty. Ve složce se SQL soubory (build/share/trinity/sql) je i složka updates. Z ní musíme nahrát všechny aktualizace od revize databáze (v tomto případě 5254) do té nejnovější - aby byla databáze aktuální.

V této složce je ještě jedna složka - FULL. V ní jsou opravdu FULL skripty do world databáze. Všechny je postupně vložíme do databáze world.


Tak jestli jste se dostali až sem, máte zkompilovanou Trinity, a můžete jí pustit souborem build/bin/trinity-core a trinity-realm. Jestli chcete mít server přístupný veřejnosti, jděte ještě do databáze realmd, a v tabulce realmlist změňte hodnotu localhost na vaši veřejnou IP adresu, kterou zjistíte např. na adrese [5]. Nyní je váš server připraven k použití a je přístupný.

Použití příkazů

Jak zapnete program trinity-core, načte se celá databáze a server je zapnut. Příkazy pak píšete do konzole - čili do okna trinity-core - čili do toho, co vám vyskočilo, když jste zapli trinity-core. Dostupné příkazy v konzoli vám ukážvypíšee příkaz

help

Příkazy jsou téměř podobné jako u MaNGOSu.

Až si vytvoříte v konzoli účet, přidejte mu ještě GM oprávnění příkazem account set gmlevel 3 a account set addon 2 (pokud máte WotLK). Pak si změňte realmlist a můžete vesele hrát. Příkazy dostupné ve hře si buď najděte tady na fóru v sekci MaNGOS nebo ve hře příkazem

.help

Související

  • Restarter - automatické cyklické spouštění emulátoru při jeho selhání

Externí odkazy