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

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *