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:
É 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!!