TrinityCore na Linuxu: Porovnání verzí

Z WoWResource Wiki
Přejít na: navigace, hledání
(Zkopírování stránky z fora)
 
(oprava odkazu)
 
(Není zobrazeno 21 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
=Kompilace TrinityCore 2 na Linuxu=
+
=Kompilace TrinityCore na Linuxu=
  
V sekci Trinity Core jsem ještě nenašel žádný návod na kompilaci, tak ho sem teď dám:
+
V tomto návodu je pro jednoduchost použit pracovní adresář /opt/trinitycore.
 +
<pre>mkdir /opt/trinitycore
 +
cd /opt/trinitycore</pre>
  
UPOZORNĚNÍ: Tento návod se NEzabývá instalací MySQL databáze. Od toho je všude spousta návodů i v češtině.
 
  
EDIT: Pro správnou a bezproblémovou instalaci je nutno mít nainstalované tyto programy:
+
Vykonávání příkazů pod systémovým účtem:
  
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 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.
  
  
Takže nejdříve si ve svém domovském adresáři vytvoříme složku ACE-build. Tato knihovna je nutná pro správný chod serveru.
+
''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ěť.''
Otevřeme terminál a přesuneme se s ním do právě vytvořené složky ACE-build (cd ./ACE-build)
 
  
STARÉ:
 
  
Tento program musíme nejdříve stáhnout (zdrojové kódy). To provedeme příkazem:
+
==Instalace balíčků==
  
wget http://download.dre.vanderbilt.edu/previous_versions/ACE-5.7.0.tar.gz
+
Pro správnou a bezproblémovou instalaci je nutno mít nainstalované tyto programy:
  
 +
'''Pro Debian/Ubuntu:'''
 +
<pre>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</pre>
  
 +
'''Pro Fedoru/Centos:'''
 +
<pre>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</pre>
  
Stáhli jsme zabalený archiv. Ten příkazem
+
''Poznámka: Repozitář Fedory obsahuje i balík pojmenovaný ace. Ten má však jiné využití (Appliance Configuration Engine)''
  
tar xvzf ACE-5.7.0.tar.gz
+
==Sestavení libSSL==
  
 +
Toto je velmi důležitý krok, protože bez této knihovny se vám Trinity sice zkompiluje ale nepůjde.
  
rozbalíme.
+
<pre>cd /opt/trinitycore
 
+
mkdir -p .sys/sources  
NOVÉ:
+
cd .sys/sources</pre>
 
 
Už je nová verze ACE - 5.7.4 - DOPORUČUJI aby jste si stáhli nejnovější verzi!!! Kompatibilita nejnovějších Trinity revizí nemusí být se staršími ACE.
 
 
 
wget http://download.dre.vanderbilt.edu/previous_versions/ACE-5.7.4.tar.gz
 
 
 
 
 
 
 
A teď rozbalit:
 
 
 
tar xvzf ACE-5.7.4.tar.gz
 
 
 
 
 
 
 
Nakonec z divného názvu rozbalené složky - ACE_wrappers uděláme název normální - ACE - příkazem:
 
 
 
mv ACE_wrappers ACE
 
 
 
 
 
 
 
Příkazem
 
 
 
cd ./ACE
 
 
 
se přesuneme do ACE složky.
 
 
 
Nyní přichází na řadu kompilace. Tu provedeme těmito příkazy:
 
 
 
mkdir build
 
cd build
 
../configure --prefix=/home/VASESLOZKA/.sys/
 
 
 
 
 
 
 
POZOR: Do příkazu konfigurace vyplňte jméno vašeho domovského adresáře!!
 
 
 
A nyní už opravdu samotná kompilace:
 
 
 
make
 
sudo make install
 
 
 
 
 
 
 
Tímto se ACE zkompiluje a nainstaluje a je připraven pro použití.
 
 
 
 
 
KOMPILACE libSSL:
 
 
 
Toto je velmi důležitý krok, protože bez této knihovny se vám Trinity sice zkompiluje ale NEpůjde!!
 
 
 
mkdir -p /home/VASESLOZKA/.sys/sources && cd /home/VASESLOZKA/.sys/sources
 
 
 
  
  
Řádek 86: Řádek 44:
 
Nyní je stáhneme, rozbalíme a přesuneme se do jejich složky:
 
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
+
<pre>wget http://www.openssl.org/source/openssl-0.9.8k.tar.gz
 
tar -xvf openssl-0.9.8k.tar.gz
 
tar -xvf openssl-0.9.8k.tar.gz
cd openssl-0.9.8k
+
cd openssl-0.9.8k</pre>
 
 
  
  
 
A opět známá konfigurace:
 
A opět známá konfigurace:
  
./config --prefix=/home/VASESLOZKA/.sys shared
+
<pre>./config --prefix=/opt/trinitycore/.sys shared</pre>
 
 
  
  
 
A nyní už jen knihovnu zkompilovat a nainstalovat:
 
A nyní už jen knihovnu zkompilovat a nainstalovat:
  
make
+
<pre>make
sudo make install
+
make install</pre>
  
 +
Tímto je knihovna připravena k použití.
  
 +
==Sestavení ACE==
  
Tímto je knihovna připravena k použití.
+
Domovské stránky projektu '''ACE(The ADAPTIVE Communication Environment)''' [http://www.cs.wustl.edu/~schmidt/ACE.html]
  
 +
Nejnovější verze můžete získat odsud: [http://download.dre.vanderbilt.edu/]
  
KOMPILACE TrinityCore 2:
+
''Doporučení: Stahujte nejnovější dostupnou verzi. Kompatibilita nejnovějších Trinity revizí nemusí být se staršími ACE.''
  
A nyní už samotná kompilace Trinity:
 
  
Vytvoříme si v domovském adresáři složku Trinity2-build. Do této složky se ihned přesuneme.
+
Konkrétní příklad stažení:
A příkazem stáhneme nejnovější revizi TrinityCore 2:
 
  
hg clone http://dev.trinitycore.org/trinitycore2
+
<pre>cd /opt/trinitycore
 +
wget http://download.dre.vanderbilt.edu/previous_versions/ACE-5.7.6.tar.gz</pre>
  
 +
Rozbalíme obsah archívu
  
 +
<pre>tar xvzf ACE-5.7.6.tar.gz</pre>
  
POZNÁMKA: V případě, že chcete stáhnou přímo nějakou revizi, použijte místo tohoto příkazu příkaz:
+
Přejmenujeme adresář na jednoduší jméno a přesuneme se dovnitř
  
hg clone --rev <revision number> http://dev.trinitycore.org/trinitycore2
+
<pre>mv ACE_wrappers ACE
 +
cd ACE</pre>
  
 +
Sestavení programu provedem
  
 +
<pre>mkdir build
 +
cd build
 +
../configure --prefix=/opt/trinitycore/.sys/ --with-openssl=/opt/trinitycore/.sys/ --disable-ace-examples
 +
make
 +
make install</pre>
  
Příčemž místo <revision number> zadejte číslo revize - třeba 6067, to už je na vás.
+
Tímto se ACE zkompiluje a nainstaluje a je připraven pro použití.
  
---
+
==Kompilace TrinityCore==
  
Aplikace patche:
+
Přejdeme do hlavního adresáře
 +
<pre>cd /opt/trinitycore</pre>
  
Někde na internetu můžete najít patch do trinity. Ten aplikujete takto:
 
Přesunete se do složky, kam jste právě stáhli trinity, příkazem
 
  
cd ./trinitycore2
+
Pomocí nástroje pro práci s verzovacím systémem Mercurial stáhneme kopii repozitáře zdrojových kódů:
  
 +
<pre>hg clone https://trinitycore.googlecode.com/hg trinitycore</pre>
  
 +
Také je možno zadat přímo číslo konkrétní revize:
  
Aplikace patche:
+
<pre>hg clone --rev 1234 https://trinitycore.googlecode.com/hg trinitycore</pre>
  
Vlastní patch:
+
Kódy lze stáhnout také přímo z webu [http://code.google.com/p/trinitycore/downloads/list]
  
patch -p0 < soubor.patch
+
===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í
  
 +
<pre>cd trinitycore</pre>
  
Patch z gitu:
+
Aplikace patche:
  
git apply soubor.patch
+
Vlastní aktualizace:
  
 +
<pre>patch -p0 < soubor.patch</pre>
  
 +
GIP patch:
  
Případné nejasnosti pište do komentářů.
+
<pre>git apply soubor.patch</pre>
  
(Děkuji uživateli Visky za doplnění aplikace patche.)
+
===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):
 
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 ./trinitycore2
+
<pre>cd /opt/trinitycore/trinitycore</pre>
 
 
 
 
  
 
A můžeme začít vesele kompilovat:
 
A můžeme začít vesele kompilovat:
  
cmake -DPREFIX=/home/VASESLOZKA/build -DACE_LIBRARY=/home/VASESLOZKA/.sys/lib/libACE.so -DACE_INCLUDE_DIR=/home/VASESLOZKA/.sys/include/
+
<pre>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</pre>
 
 
 
 
Opět upozorňuji na zadaní vašeho domovského adresáře místo VASESLOZKA.
 
  
make
+
'''Vysvětlení některých parametrů:'''
sudo make install
+
* -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é)
  
 +
<pre>make
 +
sudo make install</pre>
  
 +
Pokud máte vícejádrový procesor, tak můžete použít také
 +
<pre>make -j <počet jader></pre>
  
 
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!
  
KONFIGURACE SERVERU:
+
===Řešení problémů===
 
 
Ve složce build/etc máte 2 konfigurační soubory:
 
 
 
trinitycore.conf.dist
 
trinityrealm.conf.dist
 
 
 
 
 
Tyto soubory nejprve příkazem sudo chmod 777 * udělejte zapisovatelnými, poté je přejmenujte - smažte .dist a poté je otevřete.
 
U obou je hned zezačátku několik řádků nastavení databáze. Ty musíte správně vyplnit:
 
  
LoginDatabaseInfo    = "127.0.0.1;3306;jmenouzivateledatabaze;heslouzivateledatabaze;realmd"
+
* Pokud používáte Fedoru 13 a vypíše vám make při sestavování chybu
WorldDatabaseInfo    = "127.0.0.1;3306;jmenouzivateledatabaze;heslouzivateledatabaze;world"
+
<pre>/usr/bin/ld: ../shared/libshared.a(BigNumber.cpp.o): undefined reference to symbol 'BN_new'
CharacterDatabaseInfo = "127.0.0.1;3306;jmenouzivateledatabaze;heslouzivateledatabaze;characters"
+
/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]
  
Tyto hodnoty pravdivě vyplňte.
+
==Konfigurace serveru==
  
V souboru trinityrealm.conf je tento řádek:
+
Ve složce build/etc máte šablony konfiguračních souborů:
  
LoginDatabaseInfo = "127.0.0.1;3306;jmenouzivateledatabaze;heslouzivateledatabaze;realmd"
+
* 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
 +
<pre>cp trinitycore.conf.dist trinitycore.conf
 +
cp trinityrealm.conf.dist trinityrealm.conf</pre>
  
 +
Upravte obsah nově vzniklých souborů a nastavte přístupové údaje pro připojení k databázi.
  
Tyto údaje vyplňte pravdivě.
+
<pre>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"</pre>
  
Nyní následuje jedna z neojtravnějších pasáží :D
+
V souboru trinityrealm.conf pak
  
 +
<pre>LoginDatabaseInfo = "127.0.0.1;3306;jméno;heslo;realmd"</pre>
  
Extrahování dbc a maps ze hry World of Warcraft:
+
==Extrahování DBC souborů a map z klienta==
  
Když teď zkusíme zapnout Trinity (jen tak mimochodem, binární soubory jsou ve složce build/bin), samozřejmě nebude fungovat. Chybí nám totiž vyextrahované soubory z WoW!
+
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.
 
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.
  
POZNÁMKA: Mě nikdy ad nefungoval, a nechtěl jsem nic znovu kompilovat, takže jsem použil program ad.exe. Pokud vám ad také nefunguje, použijte ad.exe místo ad v následujících krocích:
+
Zkopírujeme ad do složky s WoW a spustíme jej zde
 
 
Zkopírujeme ad do složky s WoW. Až tam budeme, spustíme program příkazem
 
  
./ad
+
<pre>./ad</pre>
  
  
V případě že používáte ad.exe, spusťte jej pomocí programu wine (
+
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
  
sudo apt-get install wine
+
'''Pro Debian/Ubuntu:''' <pre>sudo apt-get install wine</pre>
 +
'''Pro Fedoru/Centos:''' <pre>yum install wine</pre>
  
) příkazem
 
 
wine ad.exe
 
  
 +
Pak lze program spustit přímo
 +
<pre>./ad.exe</pre>
 +
nebo
 +
<pre>wine ad.exe</pre>
  
 
Až program ad skončí (řád desítek minut), budete mít ve složce s WoW 2 nové složky: maps a dbc.
 
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. Nyní už KONEČNĚ náš vytoužený server funguje? Kdepak :whistling:
+
Obě tyto složky zkopírujeme do složky bin - build/bin.  
Ještě není nahraná databáze!
 
 
 
  
NAHRÁVÁNÍ DATABÁZE TDB
+
==Nahrání databáze TDB==
  
Trinity Core využívá vlastní databázi, podobnou (velmi) databázi udb.
+
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.
 
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:
 
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
 
Do databáze realmd vložíme SQL soubor z Trinity složky build/share/trinity/sql/realmd.sql
Pokud vám to nepůjde, opět celé složce změňte práva na 777 - viz. výše.
+
<pre>mysql --user root --password realmd < build/share/trinity/sql/realmd.sql</pre>
 
Do databáze characters vložíme soubor ze stejné složky jako realmd, ale SQL se jménem (překvapivě) characters.
 
Do databáze characters vložíme soubor ze stejné složky jako realmd, ale SQL se jménem (překvapivě) characters.
 +
<pre>mysql --user root --password characters < build/share/trinity/sql/characters.sql</pre>
 
To samé provedeme s databází world.
 
To samé provedeme s databází world.
 +
<pre>mysql --user root --password world < build/share/trinity/sql/world.sql</pre>
 +
 +
Ještě nám chybí data do databáze world (to co jsme nahráli je jen struktura).
  
Ale ještě stále nejsme u konce!
 
Ještě nám chybí data do databáze world (to co jsme nahráli byla jen struktura).
 
 
Teď si poctivě stáhneme celou databázi world:
 
Teď si poctivě stáhneme celou databázi world:
  
http://svn.assembla.com/svn/trinitydatabase/trunk/full_db/
+
<pre>http://svn.assembla.com/svn/trinitydatabase/trunk/full_db/</pre>
  
  
 +
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.
  
Stahujeme vždy databázi s nejvyšším číslem! V době psaní tohoto článku 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).
  
Až celý velký soubor stáhneme, rozbalíme ho. Poté celý soubor vložíme do databáze world (je možné že to bude 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í.
  
Nyní už máme databázi konečně připravenou k použití. Noo, ne tak docela. Ještě chybí update a scripty.
+
V této složce je ještě jedna složka - FULL. V ní jsou opravdu FULL skripty do world databáze.
Ve složce se SQL soubory (build/share/trinity/sql - opět připomínám) je i složka updates. Z ní musíme nahrát všechny update od revize databáze (v tomto případě 5254) do té nejnovější - aby byla databáze aktuální!
+
Všechny je postupně vložíme do databáze world.
 
 
V této složce je ještě jedna složka - FULL. V ní jsou opravdu FULL scripty do world databáze.
 
Tak je všechny postupně vložíme do world databáze.
 
  
  
 
Tak jestli jste se dostali až sem, máte zkompilovanou Trinity, a můžete jí pustit souborem build/bin/trinity-core a trinity-realm.
 
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ěnte localhost na vaši veřejnou IP adresu. Nyní je váš server připraven k použití a je přístupný.
+
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 [http://www.mojeip.cz]. Nyní je váš server připraven k použití a je přístupný.
 
 
  
Jak používat příkazy:
+
==Použití příkazů==
  
Vcelku jednoduše. 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.
+
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áže příkaz
+
Dostupné příkazy v konzoli vám ukážvypíšee příkaz
  
help
+
<pre>help</pre>
  
. Příkazy jsou téměř stejné jak na MaNGOSu.
+
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).
 
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
 
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
+
<pre>.help</pre>
  
 +
=Související=
  
 +
* [[Restarter]] - automatické cyklické spouštění emulátoru při jeho selhání
  
KONEC :nw2_guitar:
+
=Externí odkazy=
 
 
Kdyžtak mi to trochu zkritizujte je to můj první návod ;)
 
 
 
 
 
RESTARTÉR - Update:
 
 
 
Dovolil jsem si vzít několik let starý bash kód, který zde někde napsal uživatel charlie, a trochu ho upravil:
 
 
 
#!/bin/sh
 
 
 
while true
 
do
 
  PID1=$(pidof trinity-core)
 
  if (( PID1 < 1 ))
 
  then
 
     
 
        screen -A -m -d -S trinity-core ./trinity-core -c ../etc/trinitycore.conf
 
 
 
        echo Trinity core daemon je offline. Probíhá opětovný start daemona.
 
  fi
 
 
 
  PID2=$(pidof trinity-realm)
 
  if (( PID2 < 1 ))
 
  then
 
       
 
      screen -A -m -d -S trinity-realm ./trinity-realm -c ../etc/trinityrealm.conf
 
 
 
      echo Trinity realm daemon je offline. Probíhá opětovný start daemona.
 
 
 
  fi
 
 
 
  sleep 10
 
 
 
 
 
 
 
done
 
 
 
 
 
 
 
Vytvořte si v té samé složce, jako máte server (trinity-core a trinity-realm), soubor
 
 
 
restarter.sh
 
 
 
 
 
Tento soubor si otevřete (třeba v programu gedit), a zkopírujte do něj výše uvedený kód.
 
Pak soubor vklidu uložte a zavřete.
 
 
 
O co se jedná?
 
Je to restartér - program, který každých 10 sekund zkontroluje, jestli trinity server a trinity realm běží. Pokud ne, zapne je (zapnout se do programu screen).
 
Screen je taková zvláštní aplikace, která umožňuje běh různých takovýchto daemonů na pozadí. Zkrátka nám jde o to že server se sám nahodí do 10ti sekund :)
 
 
 
Jak program použít?
 
 
 
Jděte do složky s vaším trinity serverem (a restartérem), otevřete v ní terminál (příkazový řádek), a zadejte:
 
 
 
bash restarter.sh
 
 
 
 
 
 
 
Nyní vám v tomto okně běží restartér, který vás při pádu trinity upozorní (vypíše text), a sám server nahodí!
 
 
 
POZOR: V případě že máte konfigurační soubory umístěny jinak než je standartní po instalaci serveru, upravte cesty ve vašem restartéru, jinak vám nebude fungovat!
 
 
 
Tento příspěvek byl upraven uživatelem mimars: 17.listopad 2009, 14:25
 
Kompilace TrinityCore 2 na Linuxu + Restartér
 
 
 
Kompletní Jail systém pro Trinity Core 1 a 2 (ve vývoji)!
 
 
 
 
 
=Související=
 
  
 +
* [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]
  
 
[[Kategorie:TrinityCore]]
 
[[Kategorie:TrinityCore]]

Aktuální verze z 28. 7. 2011, 20: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