Installation Debian 9 (Linux 243 (General))
! ! ! ! ! ! T H I S - I S - W O R K - I N - P R O G R E S S ! ! ! ! ! !
Introduction
This is a basic guide on how to install SkyFire One and SFODB from scratch. **Please note this is a work in progress and only contains enough information to get most people a viable server in Linux.
Prerequisites
The compilation of SkyFire One and the setup of SFODB will require certain packages to be installed. In Linux Debian 9 use the following command:
Debian based distributions use these commands:
apt-get update -y && apt-get upgrade -y apt-get install build-essential autoconf libtool make cmake git-core patch wget links zip unzip unrar openssl libssl-dev default-libmysqlclient-dev libmysql++-dev libreadline-dev zlib1g-dev libbz2-dev
Installing OpenSSL - You should check if "1.0.1t" is the latest version
The entire procedure here is for people that do believe they need the latest revision - normally the version that comes with your distribution is sufficient enough.
64-bit Debian-based distributions
wget http://ftp.debian.org/debian/pool/main/o/openssl/libssl-dev_1.0.1t-1+deb8u8_amd64.deb wget http://ftp.debian.org/debian/pool/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u8_amd64.deb wget http://ftp.debian.org/debian/pool/main/o/openssl/openssl_1.0.1t-1+deb8u8_amd64.deb sudo dpkg -i libssl-dev_1.0.1t-1+deb8u8_amd64.deb sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u8_amd64.deb sudo dpkg -i openssl_1.0.1t-1+deb8u8_amd64.deb
32-bit Debian-based distributions
wget http://ftp.debian.org/debian/pool/main/o/openssl/libssl-dev_1.0.1t-1+deb8u8_i386.deb wget http://ftp.debian.org/debian/pool/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u8_i386.deb wget http://ftp.debian.org/debian/pool/main/o/openssl/openssl_1.0.1t-1+deb8u8_i386.deb sudo dpkg -i libssl-dev_1.0.1t-1+deb8u8_i386.deb sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u8_i386.deb sudo dpkg -i openssl_1.0.1t-1+deb8u8_i386.deb
Other distributions
For cases where you want to run an even newer release of OpenSSL than mentioned here, or your distribution not supplying a version that isn't of recent date, please check your distributions repositories or documentation. You can also retrieve it as sourcecode at http://openssl.org/source (feel free to use newer packages if you really feel like it). To build it from sourcecode, here's a primer :
wget http://openssl.org/source/openssl-1.0.1t.tar.gz tar -xvf openssl-1.0.1t.tar.gz cd openssl-1.0.1t
Alternative 1 : Local installation
./Configure -g linux-x86_64 --prefix=/home/`echo $USER`/.sys shared make make install
Alternative 2 : Systemwide installation
./Configure -g linux-x86_64 shared make make install
Please note that any old revision of the OpenSSL package installed by the distribution may/will interfere with the new version. See your distribution documentation for information on how to remove it to be able to use the new one.
Installing ACE - You should check if "6.3.3" or newer is the latest version installed.
64-bit Debian-based distributions
wget http://ftp.br.debian.org/debian/pool/main/a/ace/ace-gperf_6.3.3+dfsg-1.2_amd64.deb wget http://ftp.br.debian.org/debian/pool/main/a/ace/libace-6.3.3_6.3.3+dfsg-1.2_amd64.deb wget http://ftp.br.debian.org/debian/pool/main/a/ace/libace-dev_6.3.3+dfsg-1.2_amd64.deb wget http://ftp.br.debian.org/debian/pool/main/a/ace/libace-ssl-6.3.3_6.3.3+dfsg-1.2_amd64.deb wget http://ftp.br.debian.org/debian/pool/main/a/ace/libace-ssl-dev_6.3.3+dfsg-1.2_amd64.deb dpkg -i ace-gperf_6.3.3+dfsg-1.2_amd64.deb dpkg -i libace-6.3.3_6.3.3+dfsg-1.2_amd64.deb dpkg -i libace-dev_6.3.3+dfsg-1.2_amd64.deb dpkg -i libace-ssl-6.3.3_6.3.3+dfsg-1.2_amd64.deb dpkg -i libace-ssl-dev_6.3.3+dfsg-1.2_amd64.deb
32-bit Debian-based distributions
wget http://ftp.br.debian.org/debian/pool/main/a/ace/ace-gperf_6.2.8+dfsg-1_i386.deb wget http://ftp.br.debian.org/debian/pool/main/a/ace/libace-6.3.3_6.3.3+dfsg-1.2_i386.deb wget http://ftp.br.debian.org/debian/pool/main/a/ace/libace-dev_6.3.3+dfsg-1.2_i386.deb wget http://ftp.br.debian.org/debian/pool/main/a/ace/libace-ssl-6.3.3_6.3.3+dfsg-1.2_i386.deb wget http://ftp.br.debian.org/debian/pool/main/a/ace/libace-ssl-dev_6.3.3+dfsg-1.2_i386.deb dpkg -i ace-gperf_6.2.8+dfsg-1_i386.deb dpkg -i libace-6.3.3_6.3.3+dfsg-1.2_i386.deb dpkg -i libace-dev_6.3.3+dfsg-1.2_i386.deb dpkg -i libace-ssl-6.3.3_6.3.3+dfsg-1.2_i386.deb dpkg -i libace-ssl-dev_6.3.3+dfsg-1.2_i386.deb
Installing MySQL
Start by downloading and dpkg the package.
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb dpkg -i mysql-apt-config_0.8.12-1_all.deb
After following the configuration screen you want to apt-get update and install the libraries.
apt-get update apt-get install mysql-server mysql-client libmysqlclient-dev libmysql++-dev
Installing GCC 9 Start by adding ppa:ubuntu-toolchain-r/test to your repository list
add-apt-repository ppa:ubuntu-toolchain-r/test -y apt-get update
Now we can install gcc-9 and g++-9.
apt-get install gcc-9 g++-9
Symbolic links cc and c++ are installed by default. We will install symbol links for gcc and g++, then link cc and c++ to gcc and g++ respectively.
update-alternatives --remove-all gcc update-alternatives --remove-all g++ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 10 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 10 update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 10 update-alternatives --set cc /usr/bin/gcc update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 10 update-alternatives --set c++ /usr/bin/g++
The last step is configuring the default commands for gcc, g++.
update-alternatives --config gcc update-alternatives --config g++
Compiling and Installing the SkyFire One 2.4.3
Grab the latest version of SkyFire One 2.4.3 using git:
git clone https://github.com/ProjectSkyfire/SkyFire_one.git
This should create a directory called SkyFireEMU that will contain all the files necessary to compile the server and it's tools. Change to the directory, configure, and build.
cd SkyFire_one mkdir build cd build cmake ../ -DSCRIPTS=1 -DTOOLS=1 make -j(#cores+1) make install
Parameter explanations
-DACE_LIBRARY=<path to ACE library> (full path to your libACE.so file INCLUDING the filename - do not use if you have ACE installed systemwide) -DACE_INCLUDE_DIR=<path to ACE includes/headers> (path to the libACE include directory - do not use if you have ACE installed systemwide) -DOPENSSL_LIBRARIES=<path to OpenSSL library> (path to your OpenSSL library - do not use if you have OpenSSL installed systemwide) -DOPENSSL_INCLUDE_DIR=<path to OpenSSL includes> (path to your OpenSSL includes directory - do not use if you have OpenSSL installed systemwide) -DSERVERS Build worldserver and authserver -DSCRIPTS Build core with scripts included -DTOOLS Build map/vmap extraction/assembler tools -DUSE_SCRIPTPCH Use precompiled headers when compiling scripts -DUSE_COREPCH Use precompiled headers when compiling servers -DUSE_SFMT Use SFMT as random numbergenerator -DWITH_WARNINGS Show all warnings during compile -DWITH_COREDEBUG Include additional debug-code in core -DWITH_SQL Copy SQL files during installation -DPREFIX Set installation directory -DCONF_DIR Set configuration directory -DLIBSDIR Set library directory -DCMAKE_C_FLAGS Set C_FLAGS for compile (advanced users only) -DCMAKE_CXX_FLAGS Set CXX_FLAGS for compile (advanced users only)
Installing SkyFireDataBase (SFDB)
Now we will set up the database framework for which SkyFire will be installed into:
It is assumed that you cloned SkyFireEMU into your home directory ~/
Replace the parts in <> to the correct administrative username, and associated password. Usually the administrative user is root, but you may have altered it.
In the terminal window:
mysql -u <mysql_root> -p < ~/SkyFireEMU/sql/create/create_mysql.sql mysql -u <mysql_root> -p auth < ~/SkyFireEMU/sql/base/auth/auth.sql mysql -u <mysql_root> -p characters < ~/SkyFireEMU/sql/base/character/character.sql
Grab the latest version of SkyFireDB on our forum. http://www.projectskyfire.org/index.php?/files/
The DB download contains an installer for Linux and Windows. Also a single Sql file.
!!!You will also need to manually run any sql's found in the cores sql folder .../sql/updates/world and .../sql/updates/char!!!
(If you are doing this for more than local use you will also need to change a database entry using this mysql command.)
update auth.realmlist set adress = "YOUR IP HERE" where id = 1;
Configuration
Now move and edit the configuration files to run the server.
mv ~/skyfire/etc/worldserver.conf.dist ~/skyfire/etc/worldserver.conf mv ~/skyfire/etc/authserver.conf.dist ~/skyfire/etc/authserver.conf
Edit both of these files to the correct Mysql user name, password, and your DataDir.
nano ~/skyfire/etc/(correctserver).conf
Extractor and VMAPs
If you need a Windows compiled copy of the DBC Extractor and the tools for the VMAP
Extraction and assembly you can get a copy of them using your GIT client and download
them from: https://github.com/ProjectSkyfire/SkyFire-Community-Tools
Before doing any of these commands, follow the guide at
http://appdb.winehq.org/objectManager.php?sClass=version&iId=20549
to obtain a working installation of the latest WoW 4.0.X client, then proceed:
The last and final step of setting up SkyFireEMU is to obtain a proper set of maps for use in the server. Change to the WoW directory and run some commands:
cd "Wow Directory" ~/skyfire/bin/extractor ~/skyfire/bin/vmap3extractor mv dbc ~/skyfire/bin/dbc mv maps ~/skyfire/bin/maps mkdir vmaps ~/skyfire/bin/vmap3assembler mv vmaps ~/skyfire/bin/
References
http://www.trinitycore.org/w/How-to:Linux
http://wiki.cactusemu.com/index.php?title=Installation_%28Linux%29
http://wiki.winehq.org/winetricks
http://appdb.winehq.org/objectManager.php?sClass=version&iId=20549