2013-05-27 25 views
6

Kısa bir süre önce OPAM'ı bir deneme yapmak için talimatlara göre kurdum ve güzel görünüyor ve kullanmak istiyorum. Ancak, OPAM denemeyi seçmeden önce, daha önce yüklediğim OCAML paketlerini el ile algılamıyor.Ocaml OPAM önceden kurulu Ocaml paketlerini tespit ediyor mu?

OPAM'in herhangi bir paket yüklemesi için yapmak istediği ilk şey, ocamlfind'i kurmaktır. Elle kurduğum paketler hakkında bilgi istemek, zaten yüklendiklerini yansıtmıyor. Bu ocamlfind içerir.

Başka bir paket yüklemek için ne gibi bir etkisi olabileceğine dair hiçbir fikrim olmadığı için bir şey yapmaktan korkuyorum. OPAM, en azından ocamlfind'in üzerine yazacak veya yeniden yükleyecektir. Bu benim mevcut ocamlfind'imi ve elimden geldiğim tüm paketler hakkındaki bilgimi ve bunları kullanabilme yeteneğimi hatırlatır mı? Herşeyi yeniden kurmak zorunda kalmak istemiyorum. Aradığım ve arandığım ancak bu kesin konu hakkında herhangi bir belge veya forum yazısı bulamadım ve ocamlfind'in kaputun altında nasıl çalıştığını tam olarak bilmiyorum. En azından

o OPAM tespit olabilir ya eğer iyi olurdu, ya da gereksiz recompilation önlemek için nerede bulunduğunu zaten var ve Paketler, hangi söylenmelidir. Belki de zaten bunu yapar ama yapıp yapmadığını keşfedemedim.

cevap

6

OPAM bir (veya daha fazla), varsayılan bir bağımsız OCaml sistemler, diğer bir deyişle bir derleyici veya kütüphaneleri normal olarak /usr/bin, /usr/lib/ocaml veya /usr/local/blahblah bulunan içerir. Bu nedenle, OCaml sisteminiz elle takılı ve OPAM tabanlı olarak mevcut olabilir. Tüm OPAM yüklemesi, ikili yürütülebilir dosya da dahil olmak üzere $HOME/.opam/switch/ (switch = sistem varsayılanı) altında yapılır. Yani, sizin durumunuz için, OPAM tarafından OCamlFind üzerine yazılmadı. OPAM başka bir dizinde başka bir OCamlFind kurdu.

Hangi sistem kullanılır? Ortam değişkenleri tarafından "değiştirilebilir". "opam config env", geçerli "anahtarı" kullanmak için bildirmeniz gereken değişkenleri gösterir. Varsayılan yüklemeyi kullanmak istiyorsanız, bu değişkenlerin OPAM şeylerine başvurmadığından emin olun.

Elinizdeki derlenmiş kitaplıklar ve OPAM paketleriyle yaşamak için OPAM anahtarlamalı ortamın altında bunları yeniden derleyin ve yeniden yükleyin. OPAM'in paketlerinizin üzerine yazabileceğini unutmayın. Örneğin, "sistem" OPAM dir'de el ile ocamlfind'i yüklerseniz, "opam install ocamlfind" yazarsanız, OPAM OCamlFind yüklemenizin üzerine yazar. (Oh, BTW, OPAM'in mevcut kurulumun üzerine yazıldığında bizi uyarması zordur, çünkü bir OPAM paketinin hangi OCamlFind paketlerini yüklediği hakkında bilgi yoktur).

Varsayılan yerde ve OPAM paketlerinde yüklü olan kitaplıkları aynı anda kullanmak ... AFAIK, kolay değil. En azından OPAM böyle bir kullanım için uygun değil, bence. Kütüphane yollarının karışıklığını önlemek için, bunları OPAM anahtarından birine yönlendirin.

Gelecekte OPAM ile ilgili bazı özellik istekleri alırsanız, bunları https://github.com/OCamlPro/opam adresine gönderin.