PT-BR/Compilando o MTASA no Linux

From Multi Theft Auto: Wiki

Instalando e rodando o servidor do MTASA no Linux

[[{{{image}}}|link=]] Vale Lembrar: Este artigo é destinado a desenvolvedores os quais editaram o código fonte do servidor. Se você estiver procurando por um servidor pré-compilado, que é a maioria dos casos; viste o sítio linux.mtasa.com e leia o artigo deste link (Em Inglês)

Compilando em um Linux 64 bit

Há passos adicionais a serem feitos em sistemas de arquitetura 64-bits:

Instale as livrarias de 32 bit

Para o Debian 64 bit, pode-se fazer assim:

apt-get install ia32-libs

Soluções de Problemas

  • Caso o problema "libreadline.so.5: cannot open shared object file: No such file or directory." for apresentado, pode ser resolvido no Debian Squeeze 64 bit com:
apt-get install lib32readline5
  • Caso o problema "libncursesw.so.5 cannot open shared object file: No such file or directory" for apresentado, pode ser resolvido no Debian Squeeze 64 bit com:
apt-get install lib32ncursesw5
  • Se você possuir o Cent OS e estiver aparecendo algo como "/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by xmll.so)", isso pode ser resolvido ao baixar o arquivo comprimido [aqui] e descompacta-lo com o seguinte comando:
rpm2cpio libstdc++-4.3.0-8.i386.rpm | cpio -i --make-directories
  • Há mais soluções relacionados aos sistemas Linux 64 bit disponíveis em nossos fóruns

Preparando seu sistema

Para configurar o servidor dedicado do Multi Theft Auto, é preciso munir seu sistema com as ferramentas e livrarias corretas. Dependendo da sua distribuição Linux, a maneira como isso será feito será diferente.

O módulo de rede (net.dll ou net.so) é distribuído como uma livraria binária pré-compilada. Esta pode ser encontrada para GNU/Linux dentro da última nightly. Use o net.so da versão 1.4 se estiver compilando a partir do trunk ou net.so de 1.3.x se estiver compilando da branch 1.3.x. Certifique-se de ler o MTA10_Server/version.h porque contém sugestões de como fazer isso em diferentes versões do programa.

Debian Linux

Isso também inclui as distribuições derivadas como o Ubuntu.

Você precisará de ferramentas de compilação, headers e livrarias, que são distribuídos através dos seguintes pacotes do Debian (ex: Debian Lenny):

  • build-essential: contém as ferramentas necessárias, headers e livrarias para se fazer programas
  • automake: contém as ferramentas para o chamado automake
  • libtool: contém o software "libtool" necessário para se fazer livrarias
  • libcurl3-dev: contém a versão 3 da livraria cURL (sem suporte a SSL)
  • libpcre3-dev: contém a versão 3 da livraria PCRE
  • libsqlite3-dev: contém a versão 3 da livraria SQLite
  • libreadline5-dev: contém a versão 5 da livraria readline
  • subversion: contém o cliente SVN usado para se atualizar com nosso repositório
  • libncurses5-dev: contém o software para gerenciar escritas na janela do console
  • libncursesw5-dev: adiciona suporte para mais tipos de caracteres
  • libsparsehash-dev: contém suporte ao Google's hash-map (para não ser necessário compilar o sparehash!)
  • libmysqlclient-dev: contém a livraria MySQL

Para instalar os pacotes mencionados anteriormente através do apt, credencie-se como root e digite: apt-get install <lista acima>; como demonstra o exemplo:

apt-get install build-essential automake libtool libcurl4-openssl-dev libpcre3-dev
apt-get install libsqlite3-dev libreadline5-dev subversion libncurses5-dev
apt-get install libncursesw5-dev libsparsehash-dev libmysqlclient-dev

Gentoo Linux

Você precisará só de algumas ferramentas de compilação, headers e livrarias. Isso porque o sistema portage incluido no Gentoo já consegue compilar qualquer pacote por padrão, dispensando a instalação dos mesmos. O restante a ser instalado está mencionado abaixo:

  • sqlite: contém a livraria SQLite
  • subversion: contém o cliente SVN usado para se atualizar com nosso repositório
  • curl: contém a livraria cURL. Para compilar com suporte a SSL, use o parâmetro "net-misc/curl ssl USE"

Para compilar e instalar esses pacotes através do emerge, use o comando: emerge -v <lista acima>. O parâmetro "-v" lhe disponibiliza informações adicionais e pode ser omitido, caso lhe for conveniente. Se desejar usar algum parâmetro USE, inicie o comando digitando: USE="seus-parâmetros-aqui". Podes utilizar também a opção "-pv" para verificar se esses estão corretos. Para mais informações sobre a utilização do emerge, dê uma olhada no Livro de bolso Gentoo ou seu manual.

Exemplos:

emerge -v subversion sqlite
USE=“net-misc/curl ssl” emerge -v curl

Fedora

Será necessário instalar os seguintes pacotes para conseguir compilar o servidor do MTA no Fedora:

  • glibc-devel:
  • curl-devel: contém a livraria cURL
  • pcre-devel: contém a livraria PCRE
  • sqlite3-devel: contém a livraria SQLite
  • readline-devel: contém a livraria "readline"
  • lua-devel: contém as livrarias do Lua
  • subversion: contém o cliente SVN usado para atualizar o código fonte

Para instala-los pelo yum, credencie-se como root, e use o comando: yum install <lista acima>; como o exemplo abaixo:

yum install glibc-devel curl-devel pcre-devel sqlite3-devel readline-devel lua-devel subversion


Compilando em 64-bit

O servidor do MTA:SA não pode ser compilado no modo 64-bit. Em contra partida, é possível fazer isso no modo 32-bit ao usar o parâmetro de compatibilidade oferecido: -m32 . É recomendado também garantir se estão instalados os compiladores cruzados. Para se fazer isso no Debian, use:

apt-get install gcc-multilib g++-multilib


obs: Um Compilador cruzado (cross compiler) é aquele capaz de produzir um código executável para diferentes plataformas

Guia geral para versão 1.5.7

Fazendo o Download do código fonte

Primeiro é preciso fazer o download do código fonte com o comando:

svn checkout http://mtasa-blue.googlecode.com/svn/branches/1.5.7/ mtasa-blue
cd mtasa-blue

Compilando e Rodando o servidor

Para fazer isto, entre com os comandos abaixo:

autoreconf -fiv
export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
./configure LDFLAGS="-m32" CPPFLAGS="-m32" CFLAGS="-m32" CXXFLAGS="-m32" $@
make
make -C MTA10_Server install
make -C Shared/XML install

Agora, adquira o net.so:

wget http://nightly.mtasa.com/?multitheftauto_linux-1.5.7-rc-latest -O multitheftauto_linux-1.5.7-latest.tar.gz
tar -xzf multitheftauto_linux-1.5.7-latest.tar.gz --transform 's:[^/]*:latest_nightly:'
mv latest_nightly/net.so MTA10_Server/output/
rm -rf latest_nightly multitheftauto_linux-1.5.7-latest.tar.gz

Ponha os arquivos no lugar:

cp MTA10_Server/mods/deathmatch/acl.xml MTA10_Server/output/mods/deathmatch/acl.xml
cp MTA10_Server/mods/deathmatch/mtaserver.conf MTA10_Server/output/mods/deathmatch/mtaserver.conf

Baixe os recursos:

svn export http://mtasa-resources.googlecode.com/svn/trunk/ MTA10_Server/output/mods/deathmatch/resources

Pronto, o servidor pode ser iniciado na pasta: MTA10_Server/output

Soluções de Problemas

Qualquer erro durante a compilação do jason-c pode ser resolvido usando o comando "autoreconf -fi" na pasta dele.

Para outros tipos de problemas quando for compilar, sinta-se a vontade de dar uma passada em nosso Bug tracker ou canal IRC