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 is created and maintained by OCamlPro.
To get started, checkout the Quick Install guide.
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, OPAM will be maintained under the Semantic Versioning guidelines as much as possible.
Releases will be numbered with the following format:
And constructed with the following guidelines:
- Breaking backward compatibility bumps the major (and resets the minor and patch)
- New additions without breaking backward compatibility bumps the minor (and resets the patch)
- Bug fixes and misc changes bumps the patch
For more information on SemVer, please visit http://semver.org/.
It is expected than upgrade work transparently between minor releases:
an OPAM binary with version
x.y.z should be able to use the OCaml
packages and compilers created with OPAM version
Then, there are currently two main ways to compile this repo:
- With automatic downloading of the prerequisites, and all-in-one compilation.
- Using the dependencies already installed. This is necessary if you want to
install opam-lib to build other projects (opamfu, opam-rt...).
- make sure you have ocamlgraph, cmdliner, dose 3.1.2, cudf, re >= 1.2.0 and
ocamlfind installed. Or run
opam install opam-lib --deps-onlyif you already have a working instance.
make prepare. This is needed just once.
make install, and
make libinstallif you need the libraries.
- make sure you have ocamlgraph, cmdliner, dose 3.1.2, cudf, re >= 1.2.0 and ocamlfind installed. Or run
- The latter is also possible without resorting to ocp-build, although it will
Note that this is in a transitory state right now, expect it to change for something simpler.
Have a bug or a feature request ? Please open a new issue. Before opening any issue, please search for existing issues.
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 in IRC. On the
irc.freenode.netserver, in the
Please submit all pull requests against the
The main documentation entry point to OPAM is the user manual,
opam --help. To get help for a specific command, use
opam <command> --help.
The API documentation is available
and under the
doc/html/ directory; the developer manual is in
- 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.
- opamlot is the automated QA environment for OPAM.
Copyright 2012-2014 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.