2013-02-07 14 views
6

Zainstalowałem OPAM i uruchomiłem inicjalizację i zaktualizowałem również mój .bashrc. Następnie zainstalowałem pakiet ocamlfind, który zakończył się pomyślnie. Ale gdy próbujęPakiet OPAM nie działa

#use "topfind";; 

uzyskać następujące

Cannot find file topfind 

biegnę SML 4.00.1 zbudowany ze źródła w openSUSE 12.2.

Odpowiedz

4

Jeśli $OCAML_TOPLEVEL_PATH nie jest zdefiniowane, trzeba je definiuje:

export OCAML_TOPLEVEL_PATH=/home/%user%/.opam/%version%/lib/toplevel 

Nie zapomnij zmienić %user% i kompilator %version%

sprawdzić ten issue na bugtracker opam.

+0

Hi, nie ma wersji katalogu w katalogu ".opam" . Istnieją tylko 'aliasy' 'archiwa' 'kompilatory'' config' 'descr' i inne podobne. – Jatajuuf

+0

Dodałem małą modyfikację, ścieżką było '/ home /% user%/.opam/system/lib/toplevel' i działało. Dzięki. – Jatajuuf

8

Po pierwsze, trzeba wyeksportować odpowiednie zmienne środowiskowe, wykonując:

eval `opam config env` 

Aby być bardziej skuteczne, należy umieścić tą linią w ~/.profile (lub ~/.bashrc).

Następnie, jeśli używasz kompilatora systemu, można dodać te linie do swojego ~/.ocamlinit:

let() = 
    try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH") 
    with Not_found ->() 

pracujemy nad poprawą tego procesu przed wydaniem 1.0.

+0

To też zadziałało. Dzięki za OPAM, nigdy wcześniej nie mogłem uruchomić GODI, a instalowanie bibliotek dawało ból, teraz jest to bardzo proste! – Jatajuuf

1

Co jeśli zaczniesz Toplevel jak

rlwrap ocaml -I "$OCAML_TOPLEVEL_PATH"

Możesz także spróbować alternatywnego Toplevel: utop (istnieje w OPAM)

+0

Witam, nie mam zainstalowanego programu rlwrap i skonfigurowałem Emacsa z domyślnym interpreterem ocaml, więc nie chcę przełączać się na "utop" w tuaregu. Dzięki i tak. – Jatajuuf

+0

'rlwrap' nie jest potrzebny. 'ocaml -I" $ OCAML_TOPLEVEL_PATH "' powinno naprawić problem imho. – Stas

+0

Po ustawieniu zmiennej '$ OCAML_TOPLEVEL_PATH' mogłem uruchomić sam' ocaml'. – Jatajuuf

Powiązane problemy