Prepare-se: compilador Delphi para Linux

Conforme anunciado pela Embarcadero em seu Roadmap (agosto de 2016), a próxima versão de Delphi (10.2, codinome Godzilla), trará o suporte à compilação para Linux. Você já está se preparando? Veja aqui como já pode fazer isso:

1. Instale um Linux Server

Instale uma versão de Linux Server em um computador ou máquina virtual. Aqui estou trabalhando com VMWare rodando em Windows. Criei uma nova VM (2 cores, 1 GB de RAM e 20 GB de HD) e instalei o Ubuntu Server 16.04.1 LTS* (uma das distribuições que está nos planos para ser oficialmente suportada). A instalação foi muito tranquila e um vídeo (em inglês) de um processo similar pode ser visto aqui.

* LTS significa Long Term Support, isto é, uma versão com “suporte oficial prolongado”

É importante mencionar que até o momento a Embarcadero planeja suportar oficialmente a distribuição Red Hat / Fedora family também. As tantas outras demais distribuições devem funcionar sem problemas, mas o suporte oficial provavelmente (pois ainda está indefinido) fique nestas duas distros (Ubuntu e Red Hat).

2. Atualize seu Linux Server

Após concluir sua instalação do Ubuntu você notará que vários pacotes precisam ser instalados. Aqui vai uma lista de comandos úteis para isso:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Alguns outros comandos para a instalação de ferramentas úteis e/ou necessárias para o desenvolvimento:

sudo apt-get install joe wget p7zip-full curl
sudo apt-get install openssh-server
sudo apt-get install build-essential
sudo apt-get install zlib1g-dev
sudo apt-get install libcurl4-gnutls-dev

E aqui dois comandos para uma “limpeza rápida” da bagunça feita com os comandos acima:

sudo apt-get autoremove
sudo apt-get autoclean

3. Conheça os principais comandos do “cmd do Linux”

Se você passou a maior parte da vida em contato com o mundo Windows somente, esta é uma ótima hora para expandir os horizontes 🙂 …aqui vai uma relação rápida dos principais comandos:

  • ls – listar arquivos (equivalente ao dir, no Windows)
  • cd – acessar um diretório
  • rm – apagar arquivos
  • cp – copiar arquivos
  • mv – deletar arquivos
  • mkdir/rmdir – criar/apagar diretórios
  • shutdown – desligar ou reiniciar o sistema (vide parametros)
  • last – últimos logins efetuados no servidor
  • kill – matar processos
  • top – lista os processos em execução
  • vi – editor de textos padrão. Para sair, digite:
    • “:q!” sair sem salvar; e
    • “:wq!” sair salvando
  • tecla TAB – ao digitar nomes, para auto-completar

Essa é uma lista pessoal dos comandos que eu mais utilizo, mas neste post do VOL (Viva o Linux) tem uma relação bem completa dos comandos básicos. E um guia oficial dos comandos do Ubuntu você encontra aqui.

4. Revise e refatore seu código

Certifique-se de isolar todo o código específico do Windows. Você pode tentar encontrar funções alternativas na RTL ou simplesmente utilizar diretivas de compilação:

{$IFDEF MSWINDOWS} ... {ENDIF}

Revise todos os códigos que especificam caminhos de arquivos, pois no Linux usa-se “/” (barra normal) e não “\” (barra invertida) como no Windows. A dica é usar a constante PathDelim da unit System.SysUtils, já que ela é definida em tempo de compilação (conforme a plataforma selecionada). Dê uma olhada também na unit System.IOUtils, que possui uma série de funções úteis para manipulação de arquivos e pastas.

E por último, implementar testes unitários certamente vai lhe ajudar nesta etapa, evitando muitas surpresas e dificuldades na hora de botar seu servidor pra rodar no Linux. Você pode usar o DUnit ou o DUnitX para isso.

Mas por que me preparar?

Bem, não é de hoje que o Linux é o Sistema Operacional mais usado pelos servidores mundo a fora! É amplamente conhecido por ser mais estável, mais rápido e mais seguro. Alguns podem dizer que “há controversas”, mas isto é um fato!

Outro apelo muito relevante é o custo de licenciamento, o que pode ser facilmente comprovado ao orçar uma máquina em um provedor cloud, como a Amazon EC2. Sendo assim, por que não colocar suas aplicações pra rodar neste mundo também? 😉

Dúvidas frequentes:

P: Vou poder instalar o Linux no Delphi?
R: Não. O Delphi continuará sendo uma ferramente para Windows somente. O que você compila com o Delphi é que poderá ser executado em Linux 64 bit.

P: Vou poder compilar minhas aplicações FireMonkey para o Linux?
R: Não. O objetivo é ter aplicações servidoras, ou seja, somente aplicações do tipo “service” ou console. Isso inclui, por exemplo, aplicações datasnap, webbroker, intraweb e webservices. Nenhum tipo de suporte a interação com o usuário de forma gráfica está planejada no momento, apesar da possibilidade estar sendo considerada para o futuro. 

P: Quais edições do Delphi suportarão a compilação para Linux?
R: Até o momento, somente as edições Enterprise e Architect suportarão a compilação para Linux. Se você está usando a edição Professional e tem interesse em compilar para Linux, é hora de fazer um upgrade!

P: Posso participar do Beta do Godzilla?
R: Qualquer cliente com plano de subscrição/manutenção ativo pode participar do Beta e, além disso, clientes com subscrição ativa receberão a versão sem custo quando for lançada 😉

P: E quando a versão será lançada?
R: Bem, prazo não é algo muito bem definido na nossa área, não é mesmo?! 😛 …de qualquer forma, segundo o Roadmap isso deve acontecer no início de 2017. 

E aí? Tá esperando o que? Corre preparar tudo aí e, se precisar de alguma ajuda, é só dar um grito! 😉

Um forte abraço!

Comments 11

Deixe sua opinião

%d blogueiros gostam disto: