blob: 4cf81fd1e8c8cc40b771d293fb8680f1c3bce465 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
.. -*- 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
.. figure:: {filename}/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.
|