OCaml: не могу запустить utop после установки

Я пытаюсь выучить OCaml через книгу о реальном мире OCaml. У них есть руководство, с помощью которого я должен установить пакет Core и утоп. Однако, хотя я, кажется, успешно устанавливаю оба из них с помощью Opam, ни один из них не работает, когда я пытаюсь их использовать.

Я знаю, что они установлены, потому что, когда я пытаюсь установить их снова, я получаю это сообщение:

$ opam install utop core
[NOTE] Package utop is already installed (current version is 1.10).
[NOTE] Package core is already installed (current version is 109.55.02).

Однако, когда я пытаюсь ввести "utop", чтобы запустить utop, это не работает.

$ utop
bash: utop: command not found

То же самое, когда я пытаюсь открыть ядро:

$ open Core.Std
Couldn't get a file descriptor referring to the console

Что тут происходит? Я новичок в программировании, поэтому в установке может быть что-то, чего я просто не понимаю.

4 ответа

Относительно utopкажется, что у вас нет в вашем $PATH, Ты сделал:

$ eval `opam config env`

Если вы хотите, чтобы в ваших новых оболочках правильно настраивалась операционная система, вы должны добавить в .bashrc:

. ~/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true

Что касается невозможности открыть Core.Stdвы, конечно, не сможете открыть его в своей оболочке, эта команда должна быть введена в utop,

Методы установки OCaml Utop в Ubuntu на большинстве онлайн-ресурсов кажутся обманчивыми пользователями. Дело в том, что при установке opam с sudo apt-get В команде нет необходимости устанавливать OCaml снова, используя ту же команду, потому что OCaml поставлялся с установкой opam. так что единственное, что вам нужно сделать, это правильно инициализировать состояние opam, которое определяет корень OPAM в вашей домашней папке.

Поэтому, если вы ранее установили OCaml, сначала удалите их, чтобы избежать конфликтов.

sudo apt-get purge --auto-remove ocaml-source
sudo apt-get purge opam

затем установите опам.

sudo add-apt-repository ppa:avsm/ppa
sudo apt-get update
sudo apt-get install opam

инициализировать состояние опам

opam init

если это показывает предупреждение об отсутствии зависимости, попробуйте эти команды,

opam install depext
opam depext conf-m4.1

затем проверьте установку ocaml,

eval 'opam config env'
ocaml

затем установите UTop,

opam install utop
eval `opam config env`
utop

Для получения подробной информации и обработки ошибок, пожалуйста, обратитесь к этому сообщению в блоге.

Моя Ubuntu-14 / Mint тоже была "разорена"

После прочтения раздела Ubuntu здесь; https://opam.ocaml.org/doc/Install.html

И удалив.opam/ dir, прежде чем снова делать;

  1. опам иници
  2. опам установить утоп

починил это!

Итак, я попробовал eval 'opam config env', и вот что происходит:

$ eval 'opam congif env'
CAML_LD_LIBRARY_PATH="/home/jharvard/.opam/4.01.0/lib/stublibs"; export CAML_LD_LIBRARY_PATH; 
PERL5LIB="/home/jharvard/.opam/4.01.0/lib/perl5"; export PERL5LIB;
OCAML_TOPLEVEL_PATH="/home/jharvard/.opam/4.01.0/lib/toplevel"; export OCAML_TOPLEVEL_PATH;
MANPATH="/home/jharvard/.opam/4.01.0/man:"; export MANPATH; PATH="/home/jharvard/.opam/4.01.0/bin:/etc/log50.d:/etc/log50.d:/usr/lib/qt-3.3/bin:/etc/log50.d:/usr/libexec/lightdm:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/jharvard/.local/bin:/home/jharvard/bin"; export PATH;

И тогда все равно говорится, что команда "utop" не найдена. Приведенные выше пути для меня бессмысленны. Сможет ли кто-нибудь взглянуть на то, что он вернул, чтобы увидеть, если это указывает на проблему?

Другие вопросы по тегам