Ai-je mis à jour mon installation cabale?

Je viens d'installer Haskell à partir de c'est le site officiel. Après cela, suivant son tutoriel de démarrage rapide.

Je cours:

cabal update

Qui affiche ce message:

Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install

Je cours:

cabal install cabal-install

Et vérifiez si la mise à jour a réussi avec

cabal update

Le résultat, il m'indique le même message depuis le début:

Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install

Alors, ai-je mis à jour la cabale-installer ou non? Comment puis-je vérifier la version de ma cabale?

Important: j'utilise le 64 version bits pour Mac OS X.

30
demandé sur MasterMastic 2013-02-17 09:24:58

9 réponses

J'ai eu un problème similaire après l'installation de la plate-forme Haskell 2012.4.0.0 sur OSX. Quand j'ai couru cabal install cabal-install, Il s'est terminé par:

cabal: ../ghc-7.4.2/lib/cabal-install-1.16.0.2/bin/cabal: does not exist

J'ai donc deviné qu'il avait ses chemins mélangés quelque part. Cependant, l'exécutable a été construit avec succès (vérifiez ~/Library/Haskell/ghc-7.4.2/lib/cabal-install-1.16.0.2/bin/cabal) et je l'ai juste copié à partir de là vers ~/Library/Haskell/bin qui est sur mon chemin.

Par la suite, tout s'est bien passé:

$ which cabal
/Users/luke/Library/Haskell/bin/cabal
$ cabal update
Downloading the latest package list from hackage.haskell.org
$ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0.3 of the Cabal library
18
répondu Shaun the Sheep 2013-02-19 01:28:15

Dans mon cas (et probablement d'autres?) de la cabale est initialement installé dans /usr/local/bin par homebrew lors de l'installation de haskell-platform. Lors de la mise à niveau de cabal, la version est installée sur $HOME/.cabal/bin/cabal. Vous devriez placer vos bacs de cabale plus haut dans votre $PATH, comme ceci:

export PATH=$HOME/.cabal/bin:$PATH
26
répondu Charles 2014-04-15 18:28:35

Tout le monde semble éprouver un problème légèrement différent ici. Dans mon cas, cabal a été construit avec succès et installé sur ~/Library/Haskell/bin.

Comme indiqué dans ~/.cabal/config, l'ajout de ~/Library/Haskell/bin à PATH résolu le problème.

Voici la description dans ~/.cabal/config:

-- === Built executables will be installed in:
--     ~/Library/Haskell/bin
--
-- You may wish to place this on your PATH by adding the following
-- line to your ~/.bash_profile:
--     export PATH="$HOME/Library/Haskell/bin:$PATH"
12
répondu stackless 2013-11-01 23:02:06

Sur OS X 10.8, j'ai dû ajouter /Library/Haskell/bin à mon chemin (le mettre avant /usr/bin). Ajouter cela a corrigé le message d'erreur

10
répondu Jay Dorsey 2013-10-18 02:32:13

cabal --version Vous donne la version de cabal que vous courez. Si vous voulez voir la version de la cabale-installation, vous avez, exécutez cabal info cabal-install et regarder le versions installées ligne.

, Pour moi, sur OS X, versions installées est [unknown], après l'exécution de cabal install cabal-install, ce qui n'est pas grande.

3
répondu Chris Barrett 2013-02-17 05:34:57

J'ai eu ce problème aussi.

Après avoir exécuté which cabal, j'ai trouvé qu'il utilisait /usr/bin/cabal. La suppression de cela a résolu le problème.

3
répondu Matthew H 2013-03-19 22:14:07

Il semble que cabal installe par défaut des paquets localement pour l'utilisateur actuel et ne fera donc pas partie du chemin. Regardez le Cabal documentation spécifiquement étape 1.2.1 où vous pouvez modifier la configuration pour installer les choses globalement par défaut (non recommandé).

La façon dont j'ai installé cabal était cabal --global install cabal-install mais avait toujours des problèmes avec le chemin qui depuis l'installation par défaut de Haskell place le chemin dans cet ordre C:\Program Files\Haskell Platform\2013.2.0.0\lib\extralibs\bin;C:\Program Files\Haskell Platform\2013.2.0.0\bin; où le premier chemin a priorité sur la seconde. Avec le -- global flag cabal installé le binaire à C:\Program Files\Haskell\bin qui n'est pas dans mon chemin mais doit être ajouté avant le chemin C:\Program Files\Haskell Platform\2013.2.0.0\lib\extralibs\bin.

Extrait de la documentation

, Vous devez mettre la cabale.exe dans un répertoire qui se trouve sur votre % PATH%, par exemple C:\Program fichiers\Haskell \ bin.

1
répondu Har 2014-05-12 08:43:23

Dans mon cas, une combinaison de plusieurs réponses était nécessaire pour résoudre ce problème. Je vais essayer de fournir une solution plus complète dans une réponse pour quelqu'un d'autre dans ma situation.

  • Pour commencer, l'exécution de which cabal m'a montré que /usr/bin/cabal est en cours de chargement, qui est un lien symbolique vers /Library/Haskell/ghc-7.8.3-x86_64/bin/cabal. Je crois que de nouvelles versions de cabal étaient en cours d'installation, mais ce chemin était spécifique à une seule version, donc ils ont été ignorés. Ajouter /Library/Haskell/bin à l'avant de mon $PATH remédié à cela situation.
  • Deuxièmement, et plus important encore, les nouvelles versions de cabal-install étaient installées dans mon bac à sable cabal au lieu de l'emplacement du système. Je n'ai pas vu d'autres réponses suggérant cela, mais après un peu de monkeying, j'ai trouvé que le déplacement en dehors du répertoire de mon application permettait à cabal de s'installer sur le système.
  • enfin, l'ajout de l'indicateur --global à la commande a résolu le problème. Ma commande finale était cabal install --global cabal-install. Après cela, j'ai finalement pu mettre à jour correctement.

TL; DR: si vous utilisez des sandboxes cabal, déplacez-vous en dehors du répertoire de votre projet et exécutez cabal install --global cabal-install. Vérifiez également votre variable $PATH comme d'autres l'ont suggéré.

1
répondu MacKinley Smith 2015-04-25 18:16:00

Dans mon cas, la nouvelle version de cabal était en cours d'installation dans le .cabal-bac à sable du projet dans lequel j'étais.

Par exemple vérifier la version:

./.cabal-sandbox/bin/cabal --version

J'avais donc besoin de le mettre à jour en dehors de cela. C'était sur OSX.

0
répondu ericdwhite 2015-02-15 15:56:05