Installation Debian 9 (Linux 243 (General))

From Project Skyfire
Jump to navigation Jump to search

! ! ! ! ! ! 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