Comment installer GHC 7.8.1 et lui atsortingbuer une commande différente?

Je voudrais installer GHC 7.8.1, mais je voudrais lui atsortingbuer différentes commandes, afin de ne pas entrer en conflit avec 7.6.3. Par exemple:

  • runghc avec runghc7.8.1
  • ghci avec ghci7.8.1
  • etc…

Ou similaire. (ghci serait le plus important, pour les trous typescripts.) En gros, je veux pouvoir utiliser les GHC 7.8 et 7.6, donc s’il y a un moyen plus direct de le faire, dites-le moi (problème AB.)

Note: Ubuntu 13.10

Parce que vous êtes sur un système de type Unix (Ubuntu), vous pouvez faire ce qui suit:

  1. Choisissez un dossier que vous aimez pour installer ghc (par exemple, dans un sous-dossier de votre répertoire personnel comme $HOME/ghc7.8.1 ou dans un sous-dossier de /opt comme /opt/ghc7.8.1 – je préférerais le dernier si vous êtes le seul l’utilisateur de votre ordinateur et le premier si ce n’est pas le cas). Voir cet article de wikipedia pour des explications sur la structure de répertoires unix.
  2. Téléchargez le code source dans ce dossier et suivez les instructions d’installation :

  3. Après l’installation, cherchez le dossier contenant les binarys créés (il s’appellera bin si vous n’avez pas utilisé un autre nom pour bindir ). Imaginons que ce dossier est /opt/ghc7.8.1/bin .

Vous avez maintenant deux possibilités:

Solution pour créer des liens symboliques : Créez des liens symboliques dans un dossier qui se trouve dans votre $PATH pointant vers les fichiers binarys créés (par exemple /usr/local/bin ou $HOME/bin – j’utiliserais le premier, si vous êtes le seul utilisateur sur votre ordinateur et le second si, si vous ne l’êtes pas). Par conséquent, vous devez utiliser l’outil de ligne de commande ln . Par exemple:

 sudo ln -s -T /opt/ghc7.8.1/bin/runghc /usr/local/bin/runghc7.8.1 

Après cette commande, il y a un fichier /usr/local/bin/runghc7.8.1 pointant vers le binary /opt/ghc7.8.1/bin/runghc . Exécuter /usr/local/bin/runghc7.8.1 tapant runghc7.8.1 va maintenant exécuter le binary runghc créé dans /opt (Note: sudo n’est pas nécessaire si vous créez votre lien symbolique dans $HOME/bin – il est juste nécessaire parce que root peut créer des fichiers sous /usr )

Solution avec alias bash : écrivez vos $HOME/.bash_aliases (@Others: vous pouvez aussi choisir $HOME/.bashrc ou $HOME/.profile fonction de votre système / préférence) la ligne suivante:

 alias runghc7.8.1='/opt/ghc7.8.1/bin/runghc' 

runghc7.8.1 maintenant runghc7.8.1 dans votre terminal est un raccourci (alias) pour taper /opt/ghc7.8.1/bin/runghc et exécuter ce binary.

Notez qu’avec cette solution, taper runghc7.8.1 ne fonctionnera que lorsque vous l’aurez tapé dans votre terminal. Il y a des cas où cela ne fonctionne pas (par exemple, appeler runghc7.8.1 dans un script).