TrinityCore na Linuxu: Porovnání verzí
(Přesunutí překladu openSSL na první místo a použití přeložených knihoven při kompilaci ACE) |
(oprava odkazu) |
||
(Není zobrazeno 10 mezilehlých verzí od 2 dalších uživatelů.) | |||
Řádek 4: | Řádek 4: | ||
<pre>mkdir /opt/trinitycore | <pre>mkdir /opt/trinitycore | ||
cd /opt/trinitycore</pre> | cd /opt/trinitycore</pre> | ||
+ | |||
Vykonávání příkazů pod systémovým účtem: | Vykonávání příkazů pod systémovým účtem: | ||
− | '''Pro Debian/Ubuntu:''' Vkládejte před příkazy povel sudo. | + | |
− | '''Pro Fedoru/Centos:''' Na začátku se v terminálu se přihlašte jako root pomocí příkazu su. | + | '''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ěť.'' | ||
Řádek 20: | Řádek 28: | ||
'''Pro Fedoru/Centos:''' | '''Pro Fedoru/Centos:''' | ||
<pre>yum install cpp gcc gcc-c++ make cmake subversion mercurial openssl openssl-devel patch mysql-devel \ | <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</pre> | + | mysql-server mysql mysql-libs readline readline-devel compat-readline5-devel compat-readline5 zlib-devel bzip2-devel</pre> |
+ | |||
+ | ''Poznámka: Repozitář Fedory obsahuje i balík pojmenovaný ace. Ten má však jiné využití (Appliance Configuration Engine)'' | ||
==Sestavení libSSL== | ==Sestavení libSSL== | ||
Řádek 78: | Řádek 88: | ||
<pre>mkdir build | <pre>mkdir build | ||
cd build | cd build | ||
− | ../configure --prefix=/opt/trinitycore/.sys/ --with-openssl=/opt/trinitycore/.sys/ | + | ../configure --prefix=/opt/trinitycore/.sys/ --with-openssl=/opt/trinitycore/.sys/ --disable-ace-examples |
make | make | ||
make install</pre> | make install</pre> | ||
Řádek 146: | Řá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 181: | Řádek 200: | ||
'''Pro Debian/Ubuntu:''' <pre>sudo apt-get install wine</pre> | '''Pro Debian/Ubuntu:''' <pre>sudo apt-get install wine</pre> | ||
− | + | '''Pro Fedoru/Centos:''' <pre>yum install wine</pre> | |
Řádek 239: | Řádek 258: | ||
<pre>.help</pre> | <pre>.help</pre> | ||
− | |||
− | |||
− | |||
− | |||
=Související= | =Související= | ||
− | * [ | + | * [[Restarter]] - automatické cyklické spouštění emulátoru při jeho selhání |
=Externí odkazy= | =Externí odkazy= | ||
− | * [http://www.trinitycore.info/index.php/ | + | * [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=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
sudo apt-get install winePro 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í