Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

OPAM is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 boot
Octocat-spinner-32 doc
Octocat-spinner-32 src
Octocat-spinner-32 src_ext
Octocat-spinner-32 tests
Octocat-spinner-32 .gitignore
Octocat-spinner-32 AUTHORS
Octocat-spinner-32 CHANGES
Octocat-spinner-32 Makefile
Octocat-spinner-32 README.md
Octocat-spinner-32 ocaml-libs.ocp
Octocat-spinner-32 opam.ocp
README.md

OPAM - A package manager for OCaml

OPAM is a package manager for OCaml, based on the CUDF library developped by the Mancoosi project, which is, among other things, used by Debian to manage their packages.

Prerequisites:

  • ocaml

Compiling OPAM

  • To compile opam, simply run:
make

This will fetch the necessary archives if they are not already downloaded and then build OPAM. If you just want to get the necessary dependencies without compiling the project, run make clone.

Using opam

All of the OPAM state is held in the ~\.opam directory in your home directory, including compiler installations. You should never need to switch to a root user to install packages. Package listings are obtained through remote sources.

opam init
eval `opam config -env`

The first command creates ~\.opam and set-up opam.ocamlpro.com as default repository. The second command update your local environment to use the packages installed by OPAM. For convenience, you can add this line in your ~/.profile.

opam list

As expected, this command lists all the available packages. We can now install some packages (for instance lwt):

opam install lwt

Documentation

Some technical documentations are available in doc:

  • the API is available in doc/html/
  • The design documents are available in doc/specs/
Something went wrong with that request. Please try again.