Ambiente de Desenvolvimento para Scheme. Parte I: Instalação da MIT/GNU Scheme

A MIT/GNU Scheme é uma implementação do Scheme, um dialeto Lisp minimalista criado no MIT no final da década de 70. A popularização da Scheme ocorreu, em grande parte, por ser a linguagem escolhida pelo MIT para a lendária disciplina MIT 6.001: Structure and Interpretation of Computer Programs que, a partir de 1980, revolucionou o ensino da ciência da computação ao redor do mundo. Mais informações sobre Scheme podem ser obtidas no schemers.org, um repositório de recursos para a linguagem.

O objetivo deste artigo é demonstrar como instalar a versão mais recente (11.2) da MIT/GNU Scheme em um computador Linux.

1. Observações iniciais

Até a versão 9.2 a MIT/Scheme estava disponível em versões pré-compiladas para a instalação em sistemas Linux, Unix, Windows e Mac. A partir da versão 10.1 a versão pré-compilada para Mac foi descontinuada e, a partir da versão 11.1, a versão pré-compilada para Windows também foi descontinuada.

A versão mais recente, a 11.2, está disponível em versões pré-compiladas para diversos sistemas Unix (incluindo Linux). Ela também pode ser instalada no Mac mas a documentação oficial não fala a respeito (se você usa Mac é melhor tentar a instalação através do Homebrew, algo como brew install mit-scheme). Oficialmente a MIT/GNU Scheme 11.2 tem distribuições para:

Nota: mesmo nessas versões “pré-compiladas” há necessidade de ferramentas de compilação C, como gcc e diversos outros utilitários. A instalação da MIT/GNU Scheme não é particularmente fácil ou para usuários iniciantes. As informações nas seções a seguir são mais apropriadas para usuários Linux experientes. Peça ajuda a algum usuário experiente se você tiver dificuldade.

2. Instalação da distribuição base

Para a instalação em um sistema Linux, faça o download do arquivo “Unix binary x86-64”, e descompacte o arquivo baixado:

wget https://ftp.gnu.org/gnu/mit-scheme/stable.pkg/11.2/mit-scheme-11.2-x86-64.tar.gz

tar -zxvf mit-scheme-11.2-x86-64.tar.gz

Entre no diretório src e configure a compilação. Eu gosto de instalar a distribuição em /opt:

cd mit-scheme-11.2/src

./configure --prefix=/opt/mit-scheme-11.2-x86-64

Se tudo correr bem com a configuração você verá, ao final do processo, algo como o seguinte:

Se você não obteve o resultado final acima ou, pior ainda, a configuração retornou diversas mensagens de erro, o mais provável é que o seu sistema Linux não tenha um ou vários dos packages que são pré-requisitos necessários para a compilação final da MIT/GNU Scheme. Sinto muito mas, nesse momento, o melhor que você tem a fazer é CHORAR LÁGRIMAS DE SANGUE e procurar na internet quais os pacotes precisam ser instalados. O processo não é difícil, basta você buscar no Google pela mensagem de erro. Depois de identificar quais os pacotes precisam ser instalados, utilize o gerenciador de pacotes de sua distribuição e faça a instalação. Depois rode o comando configure novamente.

Partindo do pressuposto que a configuração foi concluída com sucesso, basta fazer a compilação e a instalação com:

make

sudo make install

ln -s /opt/mit-scheme-11.2 /opt/scheme

Os comandos acima fazer a compilação (make), a instalação (make install), e criam um link simbólico mais simples para o diretório de instalação (ln -s).

O próximo passo é compilar e instalar a documentação da Scheme. Para isso você precisa exportar três variáveis de ambiente. Faça o seguinte:

export MIT_SCHEME_EXE=/opt/mit-scheme-11.2-x86-64/bin/mit-scheme

export MITSCHEME_LIBRARY_PATH=/opt/mit-scheme-11.2-x86-64/lib/mit-scheme-x86-64-11.2

export DISPLAY=":0"

Agora vá para o diretório da documentação, configure, compile e instale:

cd ../doc

./configure --prefix=/opt/mit-scheme-11.2-x86-64

make

sudo make install-info install-html install-pdf

Novamente, caso a execução dos comandos acima tenha resultado em algum erro, VOLTE A CHORAR LÁGRIMAS DE SANGE e procure na internet quais os pacotes são pré-requisitos e precisam ser instalados em seu Linux antes de compilar e instalar a documentação.

Se tudo correu bem até aqui, você tem a MIT/GNU Scheme 11.2, junto com toda a documentação, instalada no diretório /opt/mit-scheme-11.2-x86-64.

3. Instalação dos plugins adicionais

A instalação da distribuição base da MIT/GNU Scheme 11.2 instala, por padrão, os seguintes plugins (os dois últimos somente se as bibliotecas X11 apropriadas estiverem instaladas em seu sistema):

  • Edwin
  • imail
  • x11
  • x11-screen

Existem ainda outros 4 plugins adicionais que podem ser instalados se você desejar (e estiver disposto a CHORAR AINDA MAIS LÁGRIMAS DE SANGUE):

  • blowfish
  • gdbm
  • mcrypt
  • pgsql

Estritamente falando a Scheme “básica” não precisa desses outros plugins adicionais mas eles podem ser necessários caso você queira experimentar, por exemplo, uma conexão com o PostgreSQL.

Obviamente cada um desses plugins tem seus próprios pré-requisitos e você precisará consultar o Google para saber exatamente qual pacote precisa ser instalado em seu sistema para que a configuração e a compilação sejam realizadas com sucesso. Prepare-se para MUITAS mensagens de erro antes de você conseguir configurar tudo direitinho para todos os plugins, OK?

A instalação de todos eles é feita da mesma maneira: configuração, compilação e instalação. Os comandos são os seguintes (certifique-se de que as variáveis de ambiente MIT_SCHEME_EXE e MITSCHEME_LIBRARY_PATH estão exportadas conforme as instruções acima; pode ser necessário a instalação prévia do pacote “libtool-bin”):

A) Para o blowfish:

cd mit-scheme-11.2/src/blowfish

./configure --prefix=/opt/mit-scheme-11.2-x86-64

make

make check

sudo make install

sudo libtool --finish /opt/mit-scheme-11.2-x86-64/lib/mit-scheme-x86-64-11.2/

B) Para o gdbm (pode ser necessária a instalação prévia do pacote “libgdbm-dev”):

cd mit-scheme-11.2/src/gdbm

./configure --prefix=/opt/mit-scheme-11.2-x86-64

make

make check

sudo make install

sudo libtool --finish /opt/mit-scheme-11.2-x86-64/lib/mit-scheme-x86-64-11.2/

C) Para o mcrypt (pode ser necessário a instalação prévia do pacote “libmcrypt-dev”):

cd mit-scheme-11.2/src/mcrypt

./configure --prefix=/opt/mit-scheme-11.2-x86-64

make

make check

sudo make install

sudo libtool --finish /opt/mit-scheme-11.2-x86-64/

D) Para o pgsql (pode ser necessário a instalação prévia de diversos pacotes do PostgreSQL):

cd mit-scheme-11.2/src/pgsql

./configure --prefix=/opt/mit-scheme-11.2-x86-64

make

make check

sudo make install

sudo libtool --finish /opt/mit-scheme-11.2-x86-64/

4. Finalizando a instalação

Se você chegou até aqui está com a MIT/GNU Scheme 11.2 instalada e pronta para uso. A última coisa necessária é ajustar a pariável PATH de seu sistema para poder encontrar o executável da SCHEME, e criar uma variável de ambiente para as libraries da SCHEME. Essas configurações são feitas no seu arquivo .bashrc, por exemplo:

export PATH="/opt/mit-scheme-11.2-x86-64/bin:$PATH"
export MITSCHEME_LIBRARY_PATH="/opt/mit-scheme-11.2-x86-64/lib/mit-scheme-x86-64-11.2"

Não é necessário criar a MIT_SCHEME_EXE no .bashrc. Agora basta testar:

2 comentários sobre “Ambiente de Desenvolvimento para Scheme. Parte I: Instalação da MIT/GNU Scheme

  1. É triste ter de fazer mil gambiarras para o Windows, por enquanto tenho de ficar com a versão 9.2.
    Infelizmente, se não me engano, há apenas duas pessoas mantendo os binários, e ambas não gostam dos sistemas da Microsoft, então usuários simples como eu acabam sofrendo por isso.

    • Sim, verdade, a falta de suporte para usuários Windows limitará de forma expressiva o uso da Scheme no futuro. Eu entendo a dificuldade dos mantenedores, trabalhando voluntariamente, para correção de bugs e melhorias e, por isso, compreendo que eles queiram focar esforços apenas em sistemas Unix-like (Linux, Mac, etc.). Eu não sei se a decisão de retirar o suporte para o Windows foi apenas uma questão de gosto. Houve uma gigantesca modificação dos fontes e do modo de compilação na mudança da versão 9 para a versão 10, e depois da 10 para a 11. Acredito que grande parte da decisão em retirar o suporte para o Windows foi causado por essa mudança de arquitetura, mas não sei dizer ao certo. De qualquer forma, obrigado por seu comentário!!

Deixe um comentário para Abrantes Araújo Silva Filho Cancelar resposta

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