PT-BR/Compilando o MTASA no Linux
Contents
Instalando e rodando o servidor do MTASA no Linux
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