Jump to content
TrinityCore

How to install using pre-compiled packages


Thulium
 Share

Recommended Posts

Hi Folks,

As mentioned in a later post, I no longer play WoW and decided to not port the trinitycore packages to Debian 11 'Bullseye' which was just released. I have discontinued builds and removed the packages from the repo.

Thank you all for using the packages in the past few years and all of the feedback I received!

Please check the 'Rolling your own' section on how to set this up for yourself! :-)

Cheers!

== Original message ==

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. Not compiled automatically.
 

== 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: not compiled automatically (per 2019-09-09)

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 Buster 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 Buster stable (with updates).

!!! WILL NO LONGER WORK ON DEBIAN VERSIONS BELOW 10 !!!

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

  1. Install a server with Debian Buster 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/ buster 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-en
    master: apt-get install trinitycore-server-master-en
  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-en
    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!

== Upgrade to Debian 10 Buster ==

When upgrading my system to Debian 10 (Buster) I ran into an issue where my MariaDB server was no longer starting properly. In order to fix it, do the following:

  1.  Make a snapshot of your current machine (and always make backups!)
  2. Before upgrading, run the following command, this will upgrade some MariaDB internals to the current version you have running. If you are already up to date, the script will say so. No need to run it with --force
    mysql_upgrade -u root -p
  3. Upgrade your system to Debian 10 via the usual way (lots and lots of guides already on the interwebz, find one)
  4. When you run your server on LXC, please enable Nesting and restart the LXC container again.
  5. After starting the server, check if MariaDB is running, and run the upgrade script (step 2) again to update MariaDB's internals again.

== 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-en trinitycore-database3.3.5-en -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?

== Rolling your own? ==

Want to compile it yourself, but make it easier? Don't trust me? Need custom patches? No problem! Below are the recipes I use for the build script I use to generate the binaries and the packages. They are still only suitable for Deb based distro's, but feel free to roll your own!

https://github.com/Thulium-Drake/trinitycore-recipes

Edited by Thulium
Discontinued builds
  • Upvote 8
Link to comment
Share on other sites

  • Nay featured and pinned this topic
  • 2 weeks later...

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
Link to comment
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
Link to comment
Share on other sites

  • 2 weeks later...

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.
root@taz:~/#

I'm using Ubuntu 16.04 LTS 64-bit.

Link to comment
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!

Link to comment
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
Link to comment
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

Link to comment
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?

Link to comment
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.

Link to comment
Share on other sites

  • 1 month later...
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!

Link to comment
Share on other sites

  • 5 months later...

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
 

Link to comment
Share on other sites

  • 1 month later...

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
Link to comment
Share on other sites

  • 6 months later...

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!

Link to comment
Share on other sites

  • 4 months later...
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?

Link to comment
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!

Link to comment
Share on other sites

  • 6 months later...

Hi all,

For those that are still using my packages, please note that the package name has changed! It's now suffixed with '-en', and I have put in place some scripting that will clean up old builds (as it was frequently clogging up my repo server). The name has changed due to me using the build script for other stuff as well and I want to avoid naming collisions with other software that resides in the repo.

I have updated the TS :-)

TL;DR: use trinitycore-server3.3.5-en, trinitycore-database3.3.5-en and trinitycore-tools3.3.5-en now.

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...