Кабала утверждает, что обновила себя, но на самом деле это не так.

Следуя инструкциям из этот пост о том, как обновить cabal-install, я, кажется, смог установить последнюю версию (или, по крайней мере, какую-то версию > 1.18, чего я и хотел.

$ cabal install Cabal cabal-install
Resolving dependencies...
Configuring cabal-install-1.22.6.0...
Building cabal-install-1.22.6.0...
Preprocessing executable 'cabal' for cabal-install-1.22.6.0...
<snip>
Linking dist/build/cabal/cabal ...
Installing executable(s) in /home/kavi/.cabal/bin
Installed cabal-install-1.22.6.0

Однако, когда я попробовал cabal sandbox, это не удалось, поэтому я проверил cabal --version.

$ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0 of the Cabal library 

Как видите, версия не та, которую Кабал утверждал установить.

Добавление ~/.cabal/bin к моему пути не помогло. (Да, я перезапустил свой терминал).

$ echo $PATH
<snip>:/home/kavi/.cabal/bin
$ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0 of the Cabal library 

Я попытался перезагрузить компьютер, но все же:

$ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0 of the Cabal library

Я использую Убунту 14.04.


person k_g    schedule 13.12.2015    source источник


Ответы (1)


Вы должны добавить /home/kavi/.cabal/bin в начало $PATH.

which cabal сообщает, какая исполняемая оболочка будет выбрана для выполнения на моей машине:

% echo $PATH
/Users/ogre/.local/bin:...

% which cabal
/Users/ogre/.local/bin/cabal
person phadej    schedule 13.12.2015
comment
Ах, значит, наличие его в конце ничего не дает? - person k_g; 13.12.2015
comment
Оболочка @k_g выбирает исполняемый файл из первого каталога, в котором он его находит. Порядок имеет значение, но в этом случае вы хотели бы иметь ~/.cabal/bin где-то перед общесистемными каталогами. - person phadej; 13.12.2015