2013-12-23 10 views
9

Ich versuche OCaml durch das Real World OCaml Buch zu lernen. Sie haben eine Anleitung, mit der ich das Core-Paket und die Utop installieren soll. Obwohl ich beide erfolgreich mit Opam installiere, funktioniert keiner von beiden, wenn ich versuche, sie zu benutzen.OCaml: Kann nach der Installation nicht utop laufen

Ich weiß, dass sie installiert ist, weil, wenn ich versuche, sie wieder zu installieren, bekomme ich diese Meldung:

$ 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). 

aber wenn ich versuche, „utop“ eingeben utop zu starten, es doesn‘ t arbeiten.

$ utop 
bash: utop: command not found 

Gleiche, wenn ich versuche Kern zu öffnen:

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

Was ist hier los? Ich bin neu im Programmieren, also könnte etwas an der Installation liegen, das ich einfach nicht verstehe.

+0

Können Sie versuchen, im Terminal dies auszuführen: eval \ 'opam config env \' – Kakadu

+0

Ich habe das versucht, aber aus irgendeinem Grund hat es nicht funktioniert. Siehe meine Antwort unten. – akim330

+0

Erneutes Öffnen des Terminals funktionierte für mich, die Installation von Opam nimmt Änderungen an .bashrc vor, was erfordert, dass bash neu gestartet wird. – kristianp

Antwort

9

In Bezug auf utop scheint es, dass Sie nicht in Ihrem $PATH haben. Haben Sie tun:

$ eval `opam config env` 

Wenn Sie OPAM möchten in Ihrem neuen Schalen automatisch richtig eingerichtet werden Sie folgendes zu Ihrem .bashrc hinzufügen sollte:

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

Was nicht in der Lage Core.Std öffnen Sie wird es natürlich nicht möglich sein, es in Ihrer Shell zu öffnen, dieser Befehl muss in utop ausgegeben werden.

+0

Scheint immer noch nicht zu funktionieren. Siehe meine Antwort unten, um den Code zu sehen, der zurückgegeben wird, wenn ich eval 'opam config env' eingebe. Vielleicht wird das einen Einblick geben? Danke für die Antwort! – akim330

+1

Arbeitete für mich! Vielen Dank. – DCS

0

So habe ich eval 'OPAM config-env' versuchen, und das ist, was passiert:

$ 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; 

Und dann sagt er noch, dass die "utop" Befehl nicht gefunden wird. Die obigen Pfade sind Kauderwelsch für mich. Würde jemand in der Lage sein zu sehen, was es zurückgegeben hat, um zu sehen, ob das anzeigt, was das Problem sein könnte?

+4

Ihr Anführungszeichen ist falsch. Du brauchst einen wie im Buchstaben À. Es befindet sich auf meiner Tastatur in der Nähe von "1" -Taste – Kakadu

+0

Doh. Das ist es genau. Ich hatte keine Ahnung, dass dieser Charakter existierte. Ich danke dir sehr! – akim330

+0

Glücklich camling :) – Kakadu

3

Die Methoden zur Installation von OCaml Utop in Ubuntu in den meisten Online-Ressourcen scheinen wie irreführende Benutzer. Die Sache ist, wenn Opam mit sudo apt-get Befehl installiert wird, ist es nicht notwendig, OCaml wieder mit dem gleichen Befehl zu installieren, weil OCaml mit Opam-Installation kam. Sie müssen also nur den Zustand des opam, der den OPAM-Root in Ihrem Home-Ordner definiert, initialisieren.

Wenn Sie ein OCaml früher installiert haben, entfernen Sie es zuerst, um Konflikte zu vermeiden.

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

dann installieren Sie opam.

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

initialisieren den Zustand des OPAM

opam init 

wenn es eine Abhängigkeit fehlt Warnung zeigt versuchen, diese Befehle,

opam install depext 
opam depext conf-m4.1 

dann ocaml Installation überprüfen,

eval 'opam config env' 
ocaml 

Installieren Utop dann,

opam install utop 
eval `opam config env` 
utop 

für detaillierte Informationen und Fehler behandeln Sie bitte diese blog post beziehen.

Verwandte Themen