.. -*- rst -*- .. -*- coding: utf-8 -*- ========================= Un dépôt local pour ocaml ========================= :date: 2013-05-23 :tags: ocaml :summary: |summary| :logo: /images/ocaml/camel.jpg :slug: un-depot-local-pour-ocaml :lang: fr .. default-role:: literal .. figure:: {static}/images/ocaml/camel_medium.jpg :figwidth: 150 :figclass: floatleft :alt: Pavement Image : `@Doug88888`_ (creativecommons_) .. _@Doug88888: http://www.flickr.com/photos/doug88888/3458057235/ .. _creativecommons: http://creativecommons.org/licenses/by-nc-sa/2.0/deed.fr |summary| .. |summary| replace:: Ocaml n'est pas à jour dans debian : l'ensemble des librairies sont encore restées sur la version 3, alors qu'Ocaml4 est sorti depuis près d'un an. Il peut être nécessaire de développer en utilisant ocaml4, mais on est alors obligé de compiler soit même les dépendances, et les installer pour l'ensemble du système, ce qui n'est pas souhaité, ni toujours possible (problème de droits). Cette petite recette permet de se créer un dépôt local en utilisant findlib. Findlib est devenu de facto une brique essentielle pour la gestion des librairies et les dépendances d'un projet. Aujourd'hui toute compilation utilise findlib pour rechercher les dépendances et faciliter la chaîne de compilation. La documentation_ du projet est assez dense, mais heureusement, il est très configurable. .. _documentation: http://projects.camlcity.org/projects/dl/findlib-1.3.3/doc/guide-html/index.html Nous allons commencer par nous créer un fichier de configuration local qui va indiquer où stocker nos librairies : .. code-block:: bash destdir="/home/chimrod/ocaml/packages/" path="/home/chimrod/ocaml/packages/:/usr/local/lib/ocaml/4.00.1:/usr/lib/ocaml:/usr/lib/ocaml/METAS" :destdir: correspond à l'emplacement d'installation des nouvelles librairies. :path: est l'ensemble des répertoires où chercher les dépendances. Ici nous déclarons tout d'abord notre dépôt local avant de référencer les répertoires système. Il faut bien sûr remplacer `/home/chimrod/` par le chemin sur votre installation : celui-ci doit être écrit en absolu pour le bon fonctionnement de findlib. Le répertoire de configuration peut être exporté via une variable shell, ce qui va nous faciliter la vie ; il ne nous reste plus qu'à référencer ce fichier de configuration dans notre environnement : .. code-block:: bash export OCAMLFIND_CONF=/home/chimrod/ocaml/ocamlfind.conf Là encore, remplacer le chemin par celui qui est le votre sur votre système. On peut mettre cette chaîne dans le fichier `.bashrc` pour que le paramétrage soit pris en compte dans chaque session ouverte dans le terminal. Et le tour est joué : toutes nos nouvelles dépendances vont s'installer directement dans notre répertoire personnel, et nous n'avons plus besoin d'aller poluer le système avec nos compilation.