Ambiente de Desenvolvimento para Common Lisp: Emacs + SBCL + CMUCL + Quicklisp + utilitários. Parte II: Instalação do Emacs

Conforme explicado na Parte I desta série de artigos, a primeira coisa a fazer para a preparação do nosso ambiente de desenvolvimento Common Lisp é a instalação e a configuração do GNU Emacs, considerado por muitos como o melhor editor extensível de texto disponível hoje em dia. O Emacs será a base de nosso ambiente de desenvolvimento e, portanto, será instalado em primeiro lugar.

Eu demonstrarei como compilar, instalar e configurar a versão mais nova do Emacs (27.2) em um sistema Linux (Ubuntu 20.04). Alguns pressupostos que estou assumindo são:

  • Você não é um usuário iniciante (caso contrário não estaria buscando um ambiente de desenvolvimento para Common Lisp, não é?);
  • Você está usando uma distribuição Linux recente;
  • Você sabe como instalar pacotes de sua distribuição Linux (com apt-get, yum, dnf ou outro gerenciador de pacotes); e
  • Você tem noções de como compilar códigos fonte ou, pelo menos, consegue identificar quando ocorre algum problema na compilação.

1. Por que compilar a versão mais nova?

Se você utiliza uma distribuição Linux razoavelmente recente, é provável que o Emacs já esteja instalado por padrão. Se o Emacs não estiver instalado é possível utilizar o gerenciador de pacotes de sua distribuição para isso.

No Ubuntu (e em outras distribuições baseadas em Debian) você pode fazer:

sudo apt install emacs

Em distribuições baseadas no Red Hat que utilizam o yum você pode fazer:

sudo yum install emacs

Em distribuições baseadas no Red Hat que utilizam o dnf você pode fazer:

sudo dnf install emacs

A instalação do Emacs através do gerenciador de pacotes de sua distribuição Linux é rápida e prática mas tem uma desvantagem: as versões que costumam ser instaladas não são as mais atuais e, portanto, compilar a versão mais nova a partir do código fonte é uma boa opção para nosso ambiente de desenvolvimento, e é isso que faremos nas próximas seções.

Por favor note o seguinte: este não é um tutorial genérico, aplicável a todas as situações possíveis e imagináveis nas quais diferentes versões do Emacs são instaladas em diferentes sistemas operacionais e com todas as opções comentadas e explicadas. Para isso já existe a documentação do Emacs. Meu interesse aqui é demonstrar e documentar como instalar o Emacs em um Linux recente (Ubuntu 20.04) para que, da próxima vez, eu não tenha que procurar na documentação ou na internet o encantamento correto do comando configure.

2. Compilar e instalar

Crie um diretório temporário em seu computador e faça o download do código fonte da versão mais nova do Emacs em https://ftp.gnu.org/gnu/emacs/ dentro desse diretório. Atualmente a versão mais nova é a 27.2. Os comandos abaixo criarão o diretório temporário emacstemp e, dentro desse diretório, farão o download do código fonte:

mkdir emacstemp

cd emacstemp

wget https://ftp.gnu.org/gnu/emacs/emacs-27.2.tar.gz

OPCIONAL: caso você tenha experiência com o GnuPG (GNU Privacy Guard), pode fazer o download do arquivo de assinatura do código fonte, do keyring do projeto GNU, e verificar a assinatura digital do arquivo do código fonte:

wget https://ftp.gnu.org/gnu/emacs/emacs-27.2.tar.gz.sig

wget https://ftp.gnu.org/gnu/gnu-keyring.gpg

gpg --verify --keyring ./gnu-keyring.gpg emacs-27.2.tar.gz.sig

Agora devemos descompactar o código fonte e entrar no subdiretório que será criado:

tar -zxvf emacs-27.2.tar.gz

cd emacs-27.2

O próximo passo é configurar as opções de compilação com o comando configure exemplificado abaixo. Por favor, note o seguinte:

  • Eu gosto de instalar o Emacs dentro do diretório /opt e o comando configure abaixo está preparado para isso. Se esse não for o seu caso, ajuste conforme sua necessidade;
  • Além do diretório específico outras configurações específicas que eu gosto de utilizar estão informadas. Para saber mais sobre as opções disponíveis consulte a documentação do Emacs ou execute “./configure --help“;
  • O comando deve ser digitado em uma única linha; e
  • Não entre em pânico se ocorrer algum ERRO durante a configuração da compilação! É bem possível que o comando abaixo resulte em algum erro devido à falta de pacotes de dependências que precisarão ser instalados em seu sistema. Para corrigir isso você precisa identificar o erro, instalar as dependências apontadas e rodar a configuração novamente. O Google é seu melhor amigo na busca da solução para problemas desse tipo.
./configure --prefix=/opt/emacs-27.2 --enable-checking --enable-autodepend --enable-gcc-warnings=warn-only --enable-check-lisp-object-type --with-mailutils --with-kerberos5 --with-hesiod --with-sound=yes --with-x-toolkit=gtk3 --with-imagemagick --with-xwidgets --with-x --with-gpm

OK, o que acontece quando você digita o feitiço acima? Se tiver sorte, depois de um tempo no qual mensagens do comando configure serão lançadas na tela, não irá receber nenhuma mensagem de erro e o comando terminará com sucesso.

Se ocorrer algum erro o comando será interrompido e a mensagem de erro será exibida. Nesse caso você deve identificar o que está causando o erro (na maioria absoluta das vezes o problema é a falta de algum pacote necessário para a compilação) e solucionar a questão (na maioria das vezes basta instalas os pacotes que foram listados como faltantes). Depois de solucionar o problema, rode o comando configure novamente.

Depois que o comando configure rodou e foi finalizado com sucesso, é hora de compilar o Emacs. Para isso basta digitar o comando make (a compilação demora alguns minutos):

make

Se a compilação falhar com alguma mensagem de erro você precisará investigar a mensagem e resolver o problema por conta própria (novamente apele para seu amigo Google). Para “zerar” a compilação e começar de novo, caso algum erro tenha ocorrido, execute (depois desses comandos e após resolver o problema você deverá rodar o configure novamente):

make clean

make distclean

Se a compilação terminar sem nenhum erro, teste o executável do Emas com o comando:

src/emacs -Q

Se tudo ocorreu corretamente o Emacs irá iniciar e funcionar, e a interface padrão será exibida:

Agora basta instalar definitivamente o Emacs com o comando “make install”. ATENÇÃO: dependendo do diretório de instalação que você informou na configuração, a instalação deverá ser realizada como usuário root!

sudo make install

O Emacs será instalado no diretório desejado (/opt/emacs-27.2). Você pode criar um link simbólico para o diretório, do seguinte modo:

sudo ln -s /opt/emacs-27.2 /opt/emacs

Com isso você pode iniciar o Emacs com o comando:

/opt/emacs/bin/emacs

Para comodidade, crie um atalho no desktop usando as ferramentas de sua distribuição Linux ou criando o arquivo ~/Desktop/emacs.desktop com o seguinte conteúdo:

#!/usr/bin/env xdg-open
  
[Desktop Entry]
Version=1.0
Name=Emacs (GUI)
GenericName=Text Editor
Comment=GNU Emacs is an extensible, customizable text editor - and more
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/opt/emacs/bin/emacs %F
Icon=emacs
Type=Application
Terminal=false
Categories=
StartupWMClass=Emacs
Keywords=Text;Editor;
Name[en_US]=Emacs 27.2 (GUI)
NoDisplay=false
Hidden=false

Parabéns, o Emacs foi compilado e instalado! O próximo passo é configurar os arquivos de inicialização do Emacs e isntalar vários packages importantes para nosso ambiente de desenvolvimento Lisp. Nos vemos no próximo artigo desta série!


Este artigo foi publicado originalmente em 2021-10-07, no meu site pessoal: www.abrantes.pro.br.

Deixe um comentário

O seu endereço de e-mail não será publicado.