Getting Started with OCaml on Red Hat and Fedora

Since Fedora 8, Fedora has excellent support for OCaml in the basic distribution. There is an active group of maintainers, we keep up to date with the latest OCaml, and there is a wide range of packages available.

Get started

To install the OCaml compiler just do:

yum install ocaml

To install an OCaml library called 'foo', and any dependencies it needs, you would do:

yum install ocaml-foo-devel

A good set of basic development libraries can be installed by doing:

yum install ocaml-camlp4-devel ocaml-ocamldoc ocaml-findlib-devel \
    ocaml-extlib-devel ocaml-calendar-devel

To list all OCaml packages use:

yum search ocaml

To find out about a particular package use (for example):

yum info ocaml-pxp

Package status

Status of packages in Fedora, EPEL and RHEL, last updated on 2009-03-18.

Name EPEL 4 EPEL 5 Fedora 8 Fedora 9 Fedora 10 Devel Pending
ocaml
Objective Caml compiler and programming environment
3.09.2 3.09.3 3.10.0 3.10.1 3.10.2 3.11.0  
ocaml-ancient
OCaml library for large memory structures and sharing
            0.8.0
ocaml-augeas
OCaml bindings for Augeas configuration API
    0.4 0.4 0.4 0.4  
ocaml-autoconf
Autoconf macros for OCaml
            0.1
ocaml-bin-prot
Read and write OCaml values in a type-safe binary protocol
            1.0.5
ocaml-bisect
OCaml code coverage tool
      1.0 1.0 1.0  
ocaml-bitstring
OCaml library for matching and constructing bitstrings
    1.9.7 1.9.7 2.0.0 2.0.0  
ocaml-cairo
OCaml library for accessing cairo graphics
    1.2.0.cvs20080301 1.2.0.cvs20080301 1.2.0.cvs20080301 1.2.0.cvs20080301  
ocaml-calendar
Objective Caml library for managing dates and times
  1.10 1.10 2.0.4 2.0.4 2.0.4  
ocaml-camlidl
Stub code generator and COM binding for Objective Caml
    1.05 1.05 1.05 1.05  
ocaml-camlimages
OCaml image processing library
2.2.0 2.2.0 2.2.0 2.2.0 3.0.1 3.0.1  
ocaml-camlp5
Classical version of camlp4 OCaml preprocessor
    5.08 5.08 5.09 5.10  
ocaml-camomile
Unicode library for OCaml
  0.7.1 0.7.1 0.7.1 0.7.1 0.7.1  
ocaml-cil
CIL - Infrastructure for C Program Analysis and Transformation
    1.3.6 1.3.6 1.3.6 1.3.6  
ocaml-cmigrep
Search OCaml compiled interface (cmi) files
      1.5 1.5 1.5  
ocaml-cryptokit
OCaml library of cryptographic and hash functions
    1.3 1.3 1.3 1.3  
ocaml-csv
OCaml library for reading and writing CSV files
  1.1.6 1.1.6 1.1.6 1.1.7 1.1.7  
ocaml-curl
OCaml Curl library (ocurl)
    0.2.1 0.2.1 0.5.0 0.5.0  
ocaml-curses
OCaml bindings for ncurses
  0.1 0.1 0.1 0.1 1.0.3  
ocaml-dbus
OCaml library for using D-Bus
    0.03 0.06 0.07 0.07  
ocaml-deriving
Extension to OCaml for deriving functions from types
    0.1.1a 0.1.1a 0.1.1a 0.1.1a  
ocaml-expat
OCaml wrapper for the Expat XML parsing library
    0.9.1 0.9.1 0.9.1 0.9.1  
ocaml-extlib
OCaml ExtLib additions to the standard library
  1.5 1.5 1.5.1 1.5.1 1.5.1  
ocaml-facile
OCaml library for constraint programming
    1.1 1.1 1.1 1.1  
ocaml-fileutils
OCaml library for common file and filename operations
    0.3.0 0.3.0 0.3.0 0.3.0  
ocaml-findlib
Objective CAML package manager and build helper
1.2.1 1.1.2pl1 1.1.2pl1 1.2.1 1.2.2 1.2.3  
ocaml-gettext
OCaml library for i18n
    0.2.0 0.2.0 0.3.2 0.3.2  
ocaml-gsl
Interface to GSL (GNU scientific library) for OCaml
0.6.0 0.6.0 0.6.0 0.6.0 0.6.0 0.6.0  
ocaml-janest-core
Many and various enhancements to the OCaml standard library
            0.5.0
ocaml-json-static
OCaml JSON validator and converter (syntax extension)
    0.9.6 0.9.6 0.9.6 0.9.6  
ocaml-json-wheel
OCaml library for parsing JSON
    1.0.4 1.0.4 1.0.4 1.0.4  
ocaml-lablgl
LablGL is an OpenGL interface for Objective Caml
  1.02 1.02 1.03 1.03 1.03  
ocaml-lablgtk
Objective Caml interface to gtk+
  2.10.0 2.6.0 2.10.1 2.10.1 2.12.0  
ocaml-lacaml
BLAS/LAPACK-interface for OCaml
    4.3.0 4.3.0 4.3.3 4.7.6  
ocaml-libvirt
OCaml binding for libvirt
  0.4.1.1 0.4.1.1 0.4.1.1 0.6.1.0 0.6.1.0  
ocaml-lwt
OCaml lightweight thread library
      1.1.0 1.1.0 1.1.0  
ocaml-mikmatch
OCaml extension for pattern matching with regexps
      1.0.0 1.0.0 1.0.0  
ocaml-mysql
OCaml library for accessing MySQL databases
    1.0.4 1.0.4 1.0.4 1.0.4  
ocaml-newt
OCaml library for using newt text mode window system
    0.9 0.9 0.9 0.9  
ocaml-ocamlgraph
OCaml library for arc and node graphs
    0.99c 1.0 1.0 1.0  
ocaml-ocamljava
Libraries and programs for interfacing OCaml and Java/JVM
            1.0_beta
ocaml-ocamlnet
Network protocols for OCaml
    2.2.9 2.2.9 2.2.9 2.2.9  
ocaml-odbc
OCaml library for ODBC database access
            2.15
ocaml-omake
OCaml build system with automated dependency analysis
0.9.8.5 0.9.8.5 0.9.8.5 0.9.8.5 0.9.8.5 0.9.8.5  
ocaml-openin
OCaml syntax to locally open modules
    20070524 20070524 20070524 20070524  
ocaml-ounit
Unit test framework for OCaml
    1.0.2 1.0.2 1.0.3 1.0.3  
ocaml-p3l
OCaml compiler for parallel programs
        2.03 2.03  
ocaml-pa-do
OCaml syntax extension for delimited overloading
        0.8.4 0.8.4  
ocaml-pa-monad
OCaml syntax extension for monads
    1.2.0 1.2.0 1.2.0 6.0  
ocaml-pcre
Perl compatibility regular expressions (PCRE) for OCaml
    5.12.2 5.13.0 5.15.0 5.15.0  
ocaml-perl4caml
OCaml library for calling Perl libraries and code
    0.9.5 0.9.5 0.9.5 0.9.5  
ocaml-pgocaml
OCaml library for type-safe access to PostgreSQL databases
    1.1 1.1 1.1 1.1  
ocaml-postgresql
OCaml library for accessing PostgreSQL databases
    1.7.0 1.8.2 1.8.2 1.10.3  
ocaml-preludeml
OCaml utility functions
        0.1 0.1  
ocaml-pxp
Validating XML parser
    1.2.0test1 1.2.0test1 1.2.0test2 1.2.0test2  
ocaml-reins
Library of OCaml persistent data structures
      0.1a 0.1a 0.1a  
ocaml-res
OCaml library for resizing arrays and strings
    2.2.5 2.2.5 2.2.6 3.1.1  
ocaml-SDL
OCaml bindings for SDL
0.7.2 0.7.2 0.7.2 0.7.2 0.7.2 0.7.2  
ocaml-sexplib
OCaml library for converting OCaml values to S-expressions
    3.7.4 3.7.4 4.0.1 4.2.7  
ocaml-sqlite
OCaml library for accessing SQLite3 databases
    0.23.0 0.23.0 1.2.0 1.2.0  
ocaml-ssl
SSL bindings for OCaml
    0.4.2 0.4.2 0.4.2 0.4.3  
ocaml-type-conv
OCaml base library for type conversion
    1.5.0 1.5.0 1.6.1 1.6.7  
ocaml-ulex
OCaml lexer generator for Unicode
    1.0 1.0 1.1 1.1  
ocaml-xml-light
Minimal XML parser and printer for OCaml
  2.2.cvs20070817 2.2.cvs20070817 2.2.cvs20070817 2.2.cvs20070817 2.2.cvs20070817  
ocaml-xmlrpc-light
OCaml library for writing XML-RPC clients and servers
    0.6 0.6 0.6 0.6.1  
ocaml-zip
OCaml library for reading and writing zip, jar and gzip files
    1.03 1.03 1.03 1.04  
ocamldsort
Dependency sorter for OCaml source files
    0.14.4 0.14.4 0.14.4 0.14.4  
cduce
Modern XML-oriented functional language
    0.5.2.1 0.5.2.1 0.5.2.1 0.5.2.1  
coccinelle
Semantic patching for Linux (spatch)
        0.1.5 0.1.5  
coq
Coq proof management system
    8.1pl3 8.1pl4 8.1pl4 8.1pl4  
emacs-common-tuareg
Emacs and XEmacs mode for editing ocaml
    1.45.6 1.45.6 1.45.6 1.45.6  
felix
Felix programming language
            1.1.4_x1
freetennis
Tennis simulation game
0.4.8 0.4.8 0.4.8 0.4.8 0.4.8 0.4.8  
haxe
Web programming language targeting Flash, Javascript, PHP
            2.0
hevea
LaTeX to HTML translator
    1.09 1.10 1.10 1.10  
mldonkey
Client for several P2P networks
2.9.7 2.9.7   2.9.7 2.9.7 2.9.7  
ocsigen
Web programming framework
            1.1.0
plplot
Library of functions for making scientific plots
        5.9.0 5.9.2  
unison213
Multi-master File synchronization tool
2.13.16 2.13.16 2.13.16 2.13.16 2.13.16 2.13.16  
unison227
Multi-master File synchronization tool
2.27.57 2.27.57 2.27.57 2.27.57 2.27.57 2.27.57  
virt-ctrl
Graphical management app for virtual machines
        1.0.1 1.0.1  
virt-df
Utility like 'df' for virtual guests
    2.1.1 2.1.1 2.1.5 2.1.5  
virt-mem
Management tools for virtual machines
    0.2.9 0.2.9 0.3.1 0.3.1  
virt-top
Utility like top(1) for displaying virtualization stats
  1.0.1 1.0.1 1.0.1 1.0.3 1.0.3  
Totals1020636975759

Packaging policy and mailing lists

OCaml packaging policy in Fedora. All Fedora OCaml packages have to obey this policy, ensuring a minimum standard for all OCaml packages we ship.

OCaml Special Interest Group.

fedora-ocaml-list mailing list for people interested in OCaml on Fedora or Red Hat Enterprise Linux.

Requesting new packages

If there is a particular package you would like to see added to Fedora, please email Richard Jones.

Red Hat Enterprise Linux 5

Red Hat Enterprise Linux is what you need if you want 7 years of enterprise support for your deployed OCaml applications. Please contact Richard Jones for more information about Red Hat support.