ghc
sem sucesso, aqui segue o passo-a-passo para sair da miséria!Estes procedimentos foram testados no Slackware 11.0.
Primeiro vamos baixar o maldito RPM. Se quiser procurar por outros pacotes, veja aqui.
Baixado o monstro, vamos convertê-lo em algo mais decente com
rpm2tgz
:bash$ rpm2tgz ghc66-6.6-1.i386.rpm
Agora é possível manipular este pacote. Vamos descompactá-lo:
bash$ mkdir raiz
bash$ tar xzvf ghc66-6.6-1.i386.tgz -C raiz/
Pronto! Já podemos criar uma descrição do pacote:
bash$ cd raiz/
bash$ mkdir install/
bash$ vim install/slack-desc
Eu uso o Vim, mas use o editor que lhe convier. Escreva o seguinte conteúdo:
ghc: The Glasgow Haskell Compiler v. 6.6
ghc:
ghc: GHC is a state-of-the-art, open source, compiler and interactive
ghc: environment for the functional language Haskell.
ghc:
ghc: This package was generated by rpm2tgz
ghc:
ghc: http://haskell.org/ghc/
ghc:
Salve e já temos nossa apresentação! Agora vamos criar um instalador que publique as bibliotecas no sistema e crie alguns links simbólicos amigos do peito:
bash$ vim install/doinst.sh
O conteúdo do arquivo:
#!/bin/sh
sed -i '/\/ghc/ d' /etc/ld.so.conf
echo '/usr/lib/ghc-6.6' >> /etc/ld.so.conf
( cd /usr/bin/ ; rm -rf ghc )
( cd /usr/bin/ ; ln -sf ghc-6.6 ghc )
( cd /usr/bin/ ; rm -rf ghci )
( cd /usr/bin/ ; ln -sf ghci-6.6 ghci )
ldconfig
Não é necessário, mas gosto de ter este arquivo executável:
bash$ chmod +x install/doinst.sh
O pacote RPM tem umas maluquices, como chamar o diretório de documentação de
ghc66-6.6/
(versão 6.6 da versão 6.6? Redundâncias de Fedora Core…). Vamos acertar isso:bash$ mv usr/share/doc/ghc{66,}-6.6
Para terminar vamos criar e instalar o pacote!
Para evitar possíveis dores de cabeça, vamos fazer isso como superusuário:
bash$ su -l
bash# chown -R root:root .
bash# makepkg -c y -l y ../ghc-6.6-i386-1.tgz
bash# cd ../
bash# installpkg ghc-6.6-i386-1.tgz
E pronto! Já é possível executar
ghci
e testar os exemplos do Torcato.Ah! Não esqueça de guardar bem o pacote (
ghc-6.6-i386-1.tgz
) e limpar a sujeira (ghc66-6.6-1.i386.rpm
, ghc66-6.6-1.i386.tgz
e raiz/
) que deixamos para trás![]'s
Rodrigo Cacilhas
PS: Veja este artigo também nas Reflexões de Monte Gasppa e Giulia C..