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, прежде чем снова делать;
- опам иници
- опам установить утоп
починил это!
Итак, я попробовал 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" не найдена. Приведенные выше пути для меня бессмысленны. Сможет ли кто-нибудь взглянуть на то, что он вернул, чтобы увидеть, если это указывает на проблему?