2013-05-27 11 views
6

Niedawno zainstalowałem OPAM zgodnie z instrukcjami, aby spróbować i ładnie wygląda i chciałbym z niego skorzystać. Jednak nie wykryje wcześniej zainstalowanych pakietów OCAML, które zainstalowałem ręcznie, zanim zdecyduję się na wypróbowanie OPAM.Czy Ocaml OPAM wykryje wcześniej zainstalowane pakiety Ocaml?

Pierwszą rzeczą, którą OPAM chce zrobić dla dowolnej instalacji pakietu, jest zainstalowanie systemu ocamlfind. Zapytanie o informacje o pakietach, które zainstalowałem ręcznie, nie odzwierciedla faktu, że są już zainstalowane. Obejmuje to ocamlfind.

Obawiam się zrobić cokolwiek, ponieważ nie mam pojęcia, jaki wpływ może mieć zainstalowanie innego pakietu. OPAM nadpisze lub ponownie zainstaluje ocamlfind co najmniej. Czy to przeszkadzałoby mojemu istniejącemu ocamlfindowi i jego wiedzy o wszystkich pakietach, które już ręcznie zainstalowałem i mojej umiejętności korzystania z nich? Nie chcę ponownie instalować wszystkiego od nowa. Szukałem i szukałem, ale nie mogę znaleźć dokumentacji ani postów na forach dotyczących tego konkretnego tematu i nie wiem dokładnie, jak działa ocamlfind pod maską.

Przynajmniej byłoby dobrze, gdyby OPAM mógł albo wykryć, albo zostać poinformowany, które pakiety już istnieją i gdzie się znajdują, aby uniknąć niepotrzebnej rekompilacji. Może to już robi, ale nie udało mi się odkryć, czy tak jest.

Odpowiedz

6

OPAM zapewnia jeden (lub więcej) urządzenia SML niezależne od domyślny, to kompilator lub biblioteki zwykle w /usr/bin, /usr/lib/ocaml lub /usr/local/blahblah. Dlatego Twój system OCaml zainstalowany ręcznie i oparty na OPAM może współistnieć. Cała instalacja OPAM jest wykonywana pod $HOME/.opam/switch/ (domyślnie przełącznik = system), w tym binarny plik wykonywalny. W twoim przypadku OCamlFind nie został nadpisany przez OPAM. OPAM zainstalował kolejny OCamlFind w innym katalogu.

Który system jest używany może być "przełączany" przez zmienne środowiskowe. "opam config env" pokazuje zmienne, które musisz zadeklarować, aby użyć bieżącego "przełącznika". Jeśli chcesz użyć domyślnej instalacji, upewnij się, że te zmienne nie odnoszą się do rzeczy OPAM.

Aby żyć z ręcznie skompilowanymi bibliotekami i pakietami OPAM, przekompiluj je i ponownie zainstaluj w środowisku z przełącznikami OPAM. Zauważ, że OPAM może zastąpić twoje pakiety tutaj. Na przykład, jeśli ręcznie zainstalujesz ocamlfind w katalogu "system" OPAM, wtedy jeśli wpiszesz "opam install ocamlfind", to OPAM nadpisze twoją instalację OCamlFind. (Och, BTW, myślę, że trudno jest nam ostrzec nas, gdy nadpisuje istniejącą instalację tutaj, ponieważ pakiet OPAM nie ma informacji o pakietach OCamlFind, które instaluje).

Korzystanie z bibliotek zainstalowanych w domyślnym miejscu i pakietach OPAM w tym samym czasie to ... AFAIK, nie jest łatwe. Przynajmniej OPAM nie jest przeznaczony do takiego użytku, jak sądzę. Aby uniknąć pomyłek w ścieżkach biblioteki, przenieś je do jednego z przełączników OPAM.

Jeśli w przyszłości pojawią się życzenia dotyczące funkcji OPAM, opublikuj je pod adresem https://github.com/OCamlPro/opam.