Installing and Running MTASA Server on GNU Linux

From Multi Theft Auto: Wiki
Revision as of 01:57, 9 December 2015 by NOki (talk | contribs) (→‎Main binary)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Installation

Main binary

Download the latest stable Linux binaries from here:

rm multitheftauto_linux-1.6.0.tar.gz
wget http://linux.mtasa.com/dl/151/multitheftauto_linux-1.6.0.tar.gz

Unpack into a directory:

tar -xf multitheftauto_linux-1.6.0.tar.gz

Default config

Download the default config files:

rm baseconfig-1.6.0.tar.gz
wget http://linux.mtasa.com/dl/151/baseconfig-1.6.0.tar.gz

Unpack and move into the deathmatch directory:
(Note: Only do this for new installations as it will overwrite any existing config files.)

tar -xf baseconfig-1.6.0.tar.gz
mv baseconfig/* multitheftauto_linux-1.6.0/mods/deathmatch

Change to the MTA server install directory:

cd multitheftauto_linux-1.6.0

Test

You can now test if the server will start correctly:

./mta-server

or if using the 64 bit server:

./mta-server64

Default resources

If you need the default resources: Download the latest default resources zip from http://mirror.mtasa.com/mtasa/resources/ and unzip into mods/deathmatch/resources
Make sure you are in the MTA server install directory when following this example:

apt-get install unzip
mkdir mods/deathmatch/resources
cd mods/deathmatch/resources
rm mtasa-resources-latest.zip
wget http://mirror.mtasa.com/mtasa/resources/mtasa-resources-latest.zip
unzip mtasa-resources-latest.zip
rm mtasa-resources-latest.zip

Running with 32 or 64 bit Linux

Make sure your server libraries and stuff are up to date

On Debian/Ubuntu this is done with:

apt-get update
apt-get upgrade

Running with 32 bit Linux

32 bit Troubleshooting

  • If you get a problem with such as "libreadline.so.5: cannot open shared object file: No such file or directory.", it can be solved on 32 bit Debian/Ubuntu by doing this:
apt-get install libreadline5
  • If you get a problem with such as "libncursesw.so.5 cannot open shared object file: No such file or directory", it can be solved on 32 bit Debian/Ubuntu by doing this:
apt-get install libncursesw5
  • If you get a problem with such as "libmysqlclient.so.16: cannot open shared object file: No such file or directory", it can be solved on Debian/Ubuntu by doing this:
apt-get install libmysqlclient16

If that fails, download libmysqlclient.so.16 and put it in /usr/lib/

Running with 64 bit Linux

Debian 7 (wheezy) 64 bit

Before running MTASA Server, use this command line for installation of 32 bit libs :

apt-get install lib32ncursesw5 lib32readline5

Install 32 bit libs for your 64 bit distro

For 64 bit Debian 6, this is achieved with:
(Some 64 bit distros have 32 bit libs already installed for you. So this step might not be required)

apt-get install ia32-libs

64 bit Troubleshooting

64 bit Debian/Ubuntu

  • If you get a problem with such as "libstdc++.so.6: cannot open shared object file: No such file or directory.", it can be solved on 64 bit Debian/Ubuntu by doing this:
apt-get install lib32stdc++6
  • If you get a problem with such as "libz.so.1: cannot open shared object file: No such file or directory.", it can be solved on 64 bit Debian/Ubuntu by doing this:
apt-get install lib32z1
  • If you get a problem with such as "libreadline.so.5: cannot open shared object file: No such file or directory.", it can be solved on 64 bit Debian/Ubuntu by doing this:
apt-get install lib32readline5
  • If you get a problem with such as "libncursesw.so.5 cannot open shared object file: No such file or directory", it can be solved on 64 bit Debian/Ubuntu by doing this:
apt-get install lib32ncursesw5
  • If you get a problem with such as "libmysqlclient.so.16: cannot open shared object file: No such file or directory", it can be solved on Debian/Ubuntu by doing this:
apt-get install libmysqlclient16
    • NOTE: If you are running the experimental MTA x64 server, you will need this file instead:

64 bit CentOS 6

  • If you get a problem with such as "libreadline.so.5: cannot open shared object file: No such file or directory.", edit /etc/yum.conf and add this line:
multilib_policy=all

Then issue this command:

yum install compat-readline5

MySQL Troubleshooting

  • If you are using the inbuild MySQL functions such as dbConnect and dbQuery, you will need to have libmysqlclient.so.16 installed.
  • If you can't get libmysqlclient.so.16 installed by conventional means, then try downloading the file from here and copying it to your Linux server /usr/lib/ directory.

Cent OS Troubleshooting

  • If you are using Cent OS and you get something like /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by xmll.so) this can be resolved by doing downloading the archive [here] and unpacking it with the following command:
rpm2cpio libstdc++-4.3.0-8.i386.rpm | cpio -i --make-directories

[Optional] Installing and Configuring an External Web Server

Instructions on how to install and configure Nginx as an external web server for MTA is here: Installing and Configuring Nginx as an External Web Server

Server crashes

If your Linux server crashes, please obtain a backtrace and post a report on our Bug tracker

To obtain a backtrace:

Do you have a core dump file in the the MTA server directory?

It's usually called 'core', and usually over 100MB, and looks something like this:

Core.png

If you have a core dump file in the the MTA server directory:

  • Install gdb. To install gdb on Debian, use this command:
apt-get install gdb
  • And from the MTA install directory do this command
gdb mta-server -c core
  • When gdb launches, do this command to get a module list:
i sh
  • And then this command to get a backtrace:
bt
  • Save the output
  • (To exit gdb, use the quit command)

If you do not have a core dump file in the the MTA server directory:

  • Install gdb. To install gdb on Debian, use this command:
apt-get install gdb
  • And from the MTA server directory start the mta-server like this:
gdb mta-server -ex "set print thread-events off" --eval-command run
  • Now wait for a crash. (Ignore any weird screen output in the meantime)
  • When a crash occurs, do this command to get a module list:
i sh
  • And then this command to get a backtrace:
bt
  • Save the output
  • (To exit gdb, use the quit command)


Server freezes

If your Linux server freezes, please obtain a backtrace with thread information and post a report on our Bug tracker

To obtain a backtrace with thread information:

  • Install gdb. To install gdb on Debian, use this command:
apt-get install gdb
  • And from the MTA server directory start the mta-server like this:
gdb mta-server -ex "set print thread-events off" --eval-command run
  • Now wait for a freeze. (Ignore any weird screen output in the meantime)
  • When a freeze occurs, press ctrl-c to start gdb
  • Then do this command to get a module list:
i sh
  • And then this command to get a backtrace:
bt
  • And then this command to get thread information:
info threads
  • Save the output
  • (To exit gdb, use the quit command)