Jump to content
TrinityCore
Thulium

How to install using pre-compiled packages

Recommended Posts

Hi folks,

Having issues compiling? Don't want to wait for an hour to compile a new server? Want a steady stream of updates? Well then, you came to the right place!

With the following instructions, one can install their own TrinityCore server using pre-compiled packages. The current state of the 2 branches is:

- 3.3.5a: fully functional and installable using the instructions in this topic
- master: Still WIP, the packages are compiled and in the repository, but still need to be tested and validated against the installation instructions.
 

== Background ==

There are 3 packages, server, database and tools:The database package will also install MariaDB from the default Debian Repository

  • Server package: pre-compiled version using the instructions provided on the TrinityCore wiki. Date and commit-hash are included in version tag. By default this package will also install database, but it is possible to run the database on a remote server. And it will not overwrite any configuration files in place without asking.
  • Database package: Contains TDB335.62 with all the database updates provided by the commit. Also contains a slightly modified auth_database (which has to be setup with the provided script), so you can control the server while it's started without console (in order to run it as a service, details below).
  • Tools package: contains the extractors, so you can run them on your desktop with the client instead of uploading a copy to the server. I also included a script that will queue all the commands you need to generate a data package for your TC server. This package isn't supposed to run on the same system as the server (because it would require you to upload a complete WoW client to your server).

The packages come with a default configuration to support service control by SystemD. A few details:

  • /opt/trinitycore - server files and data files
  • /var/log/trinitycore - server logs
  • /var/run/trinitycore - PID files

See https://github.com/TrinityCore/TrinityCore/issues/18069 for more info on how and why

== Update frequency ==

These packages will be recompiled everyday at midnight, compiling/uploading takes about an hour per tree, so expect fresh packages:

- 3.3.5a: around 01:30 AM CEST
- master: around 3:30 AM CEST

The script will automatically download the latest TDB version if it is updated in the source files. If there are any changes with the configuration files (new options added etc.) I will add them as soon as I can.

== Installation Instructions ==

This instruction will help you setup a TrinityCore server on a Debian Jessie server with it's own local MySQL server. If you require a seperate MySQL server, please adjust where needed. All packages provided are only tested on Debian Jessie stable (with updates).

It is in your best interest to read the entire instruction first before installing!

  1. Install a server with Debian Jessie and log in on it
    1. You don't need anything except the basic install!
  2. Add the following line to /etc/apt/sources.list
     deb http://repo.element-networks.nl/ custom main
    1. Add the repository key for package verification
       wget http://repo.element-networks.nl/public.gpg -O - | apt-key add -
  3. Update your package lists
    apt-get update
  4. Install the server
    3.3.5a: apt-get install trinitycore-server3.3.5
    master: apt-get install trinitycore-server-master
  5. NOTE: This command will install the TrinityCore server and all it's dependencies (including a MariaDB server)
    If you want to run a seperate database server, run this command with '--no-install-recommends' to skip the installation of the database package.
  6. FIRST TIME ONLY: Run the following script to setup the databases
    setup_database.sh
    1. If you run the database on a different server, run the script on that server. Also, change worldserver.conf and authserver.conf accordingly!
  7. Extract the MAPS, MMAPS and VMAPS using the extractors.
    Pro-tip, if you have a (fast) Linux (gaming) desktop, do the following:
    1. Install the trinitycore-tools3.3.5 package on your desktop with the WoW client.
      apt-get install trinitycore-tools3.3.5
    2. Go to your WoW client folder and run the script
      cd /to/my/wowclient
      generate_data_package.sh
    3. After extracting all the maps, mmaps, vmaps and dbc's it will ask you the following question:
      # Your data package is in /to/my/wowclient/trinitycore-data.tgz
      # Would you like this script to apply it on your server? y/N
    4. If you select yes, it will ask you where to upload the data package

      See https://trinitycore.atlassian.net/wiki/display/tc/Linux+Server+Setup for all the details surrounding the extracting process.
  8. Start the server!
    systemctl start trinitycore-authserver.service
    systemctl start trinitycore-worldserver.service
  9. You can control the server using the following command:
    telnet localhost 3443

    Username: admin
    Password: ChangeMeNOW!
  10. Change the password for the admin account:
    .account set password admin NEWPASSWORD NEWPASSWORD
  11. Create a new user
    .account create USERNAME PASSWORD

    Press Enter again to log out
  12. Set your client's realmlist to your newly installed server
    GameClientDir/Data/enUS/realmlist.wtf
     
     Note: enUS could also be enGB if you have a European version of the client
  13. Start your game, log in and enjoy!

== Updating ==

Updating the server to a newer version is very easy, I do it using the following script:

#!/bin/bash
# Upgrade the TrinityCore server to the latest build

# Stop running server
systemctl stop trinitycore-worldserver.service

# Upgrade packages, change the packagename if you wish to run the 'master' branch
apt-get update
apt-get upgrade trinitycore-server3.3.5 trinitycore-database3.3.5 -y -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold'

# Start server
systemctl start trinitycore-worldserver.service

== Feedback ==

Any feedback is appreciated! I have been running my test-server with this setup for a few days now and it is still alive and kicking. However, my userbase is quite small (5) and I would like to know if the current way of updating is doable.

Thoughts, feelings, emotions?

  • Upvote 6

Share this post


Link to post
Share on other sites

Just a note, I've changed the DB package to be based on TDB_full_335.62_2016_10_17 now. (I updated this earlier, but that was too soon :-) )

P.S. is there any check I can do (before compiling) to see which version of the TDB is required? Then I might be able to make this more seamless!

Edited by Thulium
typo
  • Upvote 1

Share this post


Link to post
Share on other sites

Hi guys,

I've included packages for the 'master' branch in the repository for you to play with! :-) but, do note that these are NOT done yet!

  • Configuration is NOT complete (currently I've packaged the config files for the 3.3.5 branch)
    • bnetserver config is NOT included
    • worldserver config is 3.3.5 (I'm not sure if it's compatible)
  • Database script might or might NOT work

I will build a 'master' branch server when I have the time, but in the mean time, feel free to use these packages, but please leave a reply in this topic if there is something I missed (or to save me some time setting this up ;-) )

  • Upvote 1

Share this post


Link to post
Share on other sites

Is there any chance you'll also include the source debian mixings into the repository?  Also, I am having some problems with apt-get update:

Reading package lists... Done
E: Failed to fetch http://repo.element-networks.nl/dists/custom/Release  No Hash entry in Release file /var/lib/apt/lists/partial/repo.element-networks.nl_dists_custom_Release which is considered strong enough for security purposes
E: Some index files failed to download. They have been ignored, or old ones used instead.
[email protected]:~/#

I'm using Ubuntu 16.04 LTS 64-bit.

Share this post


Link to post
Share on other sites

Hi Symax,

This is caused by sharpened security requirements of newer versions of APT, I've seen similar messages in Debian Unstable (which runs a version of APT close to Ubuntu's current). I've created a stronger key, but I need to do some more to make it work. I will continue with this tomorrow or Wednesday. In the mean time you could try running with

Just as a side-note, I'm not sure whether these packages will work on Ubuntu, unless the names and versions of all dependencies are similar of those in Debian Jessie. But if you can let me know, I will amend the post with that information!

Edit: oh, btw, I missed that question, what kind of sources would you like to know/have? I've only followed the original compilation instructions :-)

Cheers!

Share this post


Link to post
Share on other sites
1 hour ago, Thulium said:

Edit: oh, btw, I missed that question, what kind of sources would you like to know/have? I've only followed the original compilation instructions :-)

Cheers!

What I'd be happy with is the tarball of the debian/ subdirectory you used for making these packages.

But if you are willing to go a step further and make source_version.orig.tar.gz and then do "dpkg-source -b trinitycore-version/" to create the source packages, that'd be great.  I was able to manually fetch the .deb files from your repository.

Another thing to consider:  launchpad.net allows you to create recipes combining your work with the original git repository (I still haven't learned how to do this myself).  You could go this route and make it so that the sources are compiled by a remote machine for different architectures with little effort.  I think Debian has a similar repository you can do this with as well.

Edited by Symax

Share this post


Link to post
Share on other sites

I took a look, but I take it you would like to have the original uncompiled git source in those packages? My current setup doesn't really allow for this. It does the following:

- Maintain a local copy of the repo (the 'meta' script that builds trinitycore runs 'git pull' before compiling)
- Build the software according to the build recipe I defined
- Package the software according to the package recipe
- Push the resulting package to the repo

This allows me to save a lot of disk space (I only have 1 copy of the source per branch), and it *should* be possible to redo any older builds by checking out that version in git.

I'm using a script a colleague made, I will link it in the post once he posted in on Github (it's on his todo-list). So that part of this setup I cannot share, as it is not my work.

However, I'm cool with sharing the recipes I made for the build script (see attachment). But I do ask that if you make improvements/changes to let me know. So I can incorporate them in the scripts I use.

I also just updated the build script to look for the correct version of the TDB when the source files mention it ;-)

trinitycore-recipes.tgz

Share this post


Link to post
Share on other sites
13 minutes ago, Thulium said:

I took a look, but I take it you would like to have the original uncompiled git source in those packages? My current setup doesn't really allow for this. It does the following:

- Maintain a local copy of the repo (the 'meta' script that builds trinitycore runs 'git pull' before compiling)
- Build the software according to the build recipe I defined
- Package the software according to the package recipe
- Push the resulting package to the repo

This allows me to save a lot of disk space (I only have 1 copy of the source per branch), and it *should* be possible to redo any older builds by checking out that version in git.

I'm using a script a colleague made, I will link it in the post once he posted in on Github (it's on his todo-list). So that part of this setup I cannot share, as it is not my work.

However, I'm cool with sharing the recipes I made for the build script (see attachment). But I do ask that if you make improvements/changes to let me know. So I can incorporate them in the scripts I use.

I also just updated the build script to look for the correct version of the TDB when the source files mention it ;-)

trinitycore-recipes.tgz

Thanks.  I think this file is what I'm looking for.  Too bad I can't seem to reach it.  Maybe I'm trying to fetch it too soon?

Share this post


Link to post
Share on other sites

That was my bad, I changed the text to reflect the correct name, but the actual link was pointing at the internal hostname. I fixed the link, try again :-)

Share this post


Link to post
Share on other sites
1 minute ago, Thulium said:

That was my bad, I changed the text to reflect the correct name, but the actual link was pointing at the internal hostname. I fixed the link, try again :-)

That worked.  Thanks.  I look forward to your friend releasing that script, or someone possibly making a "proper" debian/ subfolder in the git project for easier debian packaging.

Share this post


Link to post
Share on other sites

Hi all!

I've created a script that will generate a data package for your server and added the instructions on how to use it in the post. I've just added it to my build environment, so it will be ready for use tomorrow!

Cheers!

  • Upvote 2

Share this post


Link to post
Share on other sites

This is REALLY great. I installed the whole server in minutes - not hours (had to compile everything by hand). Only thing maybe worth looking into: bots.
I would would love to populate my rather empty game world with some / more bots. 

Would that be doable somehow?

Share this post


Link to post
Share on other sites
On 12/01/2017 at 1:50 PM, moonwhaler said:

This is REALLY great. I installed the whole server in minutes - not hours (had to compile everything by hand). Only thing maybe worth looking into: bots.
I would would love to populate my rather empty game world with some / more bots. 

Would that be doable somehow?

Hi moonwhaler,

Thanks for the feedback! :-)

As for bots, I fear that there isn't a viable project at the moment that implements player bots. I have tried merging a few codebases a few years ago, if I got it working, it was very laggy and heavily taxing my server. And sadly, most of the projects that implement a form of bots in TrinityCore are dead, or almost dead. As the code is no longer compatible with the server.

What -could- be an option, but I don't know how well they are developed, take a spare PC, run some copies of WoW on it in low graphics mode and use an actual bot to co ntrol them. But I don't know if they are any bots that can do anything more then 'just farming'. You might also need to disable Warden if you use modified WoW clients.

Cheers!

Share this post


Link to post
Share on other sites

Hi,

Sorry if this has been asked somewhere in the forum. I did a quick search and it returned 0 hit so I thought I asked.

Can this be run/supported on Ubuntu 14? Is there a pre-packaged one for client 7.2.5?

Thanks.

 

Share this post


Link to post
Share on other sites

Hi blackcat,

The software itself will run on Ubuntu just fine, as long as you are providing it with enough resources. However, the packages are made for Debian 8 (will upgrade to 9 soon). You are free to try and install the packages on your Ubuntu server, however, some package names for the dependencies might not match. And then the package manager (dpkg) will be unable to install the software.

You could do one of 2 things:

- Run a debian based server
- Manually unpack the deb files and move the files to the correct folder (and script that)

Regarding the 7.2.5 server, I do make packages for the 'master' branch for trinitycore, but I don't run a master branch server and those packages might contain incomplete configuration. However, feel free to try them and let me know what to include :-)

Cheers
 

Share this post


Link to post
Share on other sites

Hello folks!

Today I finished upgrading my buildserver to Debian 9 'Stretch', and the packages will now be compiled to that version of Debian. Please note that older versions of Debian -will- break- as they no longer satisfy the requirements.

You should be able to upgrade your system from Debian 8 to 9 and the new version of the packages will automatically work :-)

Cheers!

  • Upvote 1

Share this post


Link to post
Share on other sites

Sorry for the late reaction, I've updated the database package to include the new TDB version. The name and the structure of the TDB archive on the Github page changed, so my script got confused, but I didn't use/check my server lately :-)

Cheers!

Share this post


Link to post
Share on other sites
On 3/7/2018 at 2:38 PM, Thulium said:

Sorry for the late reaction, I've updated the database package to include the new TDB version. The name and the structure of the TDB archive on the Github page changed, so my script got confused, but I didn't use/check my server lately :-)

Cheers!

Trying to use your pre-compiled package I can't find the setup_database.sh file. Is it missing?

Share this post


Link to post
Share on other sites

Hi @Wronglebowski,

Yes, it was. For some reason my build script didn't include it any longer. I have updated it to include it again. I'm currently running a build and will upload new packages when that's done.

Try to update your server in a few hours, as a new update is available and a full build takes about 2hrs.

Cheers!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×