PT-BR/Compilando o MTASA no Linux

From Multi Theft Auto: Wiki
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.

Instalando e rodando o servidor do MTASA no Linux

[[{{{image}}}|link=|]] Dica: 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.6.0

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.6.0/ 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.6.0-rc-latest -O multitheftauto_linux-1.6.0-latest.tar.gz
tar -xzf multitheftauto_linux-1.6.0-latest.tar.gz --transform 's:[^/]*:latest_nightly:'
mv latest_nightly/net.so MTA10_Server/output/
rm -rf latest_nightly multitheftauto_linux-1.6.0-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 Discord