OPAM - A package manager for OCaml
OPAM is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
OPAM was created and is maintained by OCamlPro.
Compiling this repo
- Make sure you have OCaml and GNU make installed. If you don't have a recent enough version of OCaml (>= 3.12.1) at hand, see the next paragraph.
make lib-extas advertised by
./configureif you don't have the dependencies installed and only need the opam binary (not the libs). This will locally take care of all OCaml dependencies for you.
- Otherwise, make sure to have ocamlfind, ocamlgraph, cmdliner, jsonm, cudf,
dose 3.2.2+opam and re >= 1.2.0 installed. Or run
opam install opam-lib --deps-onlyif you already have a working instance. Re-run
make libinstallif needed (this is incompatible with
make lib-ext, as the opam library would conflict with installed versions of the dependencies)
Compiling without OCaml
make cold is provided as a facility to compile OCaml, then bootstrap OPAM.
You don't need need to run
./configure in that case, but
you may specify
CONFIGURE_ARGS if needed, e.g.:
make cold CONFIGURE_ARGS="--prefix ~/local"
NOTE: You'll still need GNU make.
Have a bug or a feature request ? Please open an issue on our
bug-tracker. Please search for existing
issues before posting, and include the output of
opam config report and any
details that may help track down the issue.
The main documentation entry point to OPAM is the user manual,
opam --help. To get help for a specific command, use
opam <command> --help.
Guides and Tutorials
API, Code Documentation and Developer Manual
A more thorough technical document describing OPAM and specifying the package
description format is available in the
make doc will otherwise make the API documentation available under
Keep track of development and community news.
Have a question that's not a feature request or bug report? Ask on the mailing list.
Chat with fellow OPAMers on IRC. On the
irc.freenode.netserver, in the
We welcome contributions ! Please use Github's pull-request mechanism against
the master branch of the OPAM repository. If
that's not an option for you, you can use
git format-patch and email TODO.
The release cycle respects Semantic Versioning.
- ocaml/opam-repository is the official repository for OPAM packages and compilers. A number of non-official repositories are also available on the interwebs, for instance on Github.
- opam2web generates a collection of browsable HTML files for a given repository. It is used to generate http://opam.ocaml.org.
- opam-rt is the regression framework for OPAM.
- opam-publish is a tool to facilitate the creation, update and publication of OPAM packages.
Copyright and license
The version comparison function in
src/core/opamVersionCompare.ml is part of
the Dose library and Copyright 2011 Ralf Treinen.
All other code is:
Copyright 2012-2015 OCamlPro Copyright 2012 INRIA
All rights reserved. OPAM is distributed under the terms of the GNU Lesser General Public License version 3.0.
OPAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.