+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>Matita V0.1.0
- Manual (rev. 0) - Chapter 2. Installation</title>
- </head>
- <body>
- <div class="chapter" lang="en" xml:lang="en">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title"><a id="sec_install"></a>Chapter 2. Installation</h2>
- </div>
- </div>
- </div>
- <div class="toc">
- <p>
- <b>Table of Contents</b>
- </p>
- <dl>
- <dt>
- <span class="sect1">
- <a href="#inst_from_src">Installing from sources</a>
- </span>
- </dt>
- <dd>
- <dl>
- <dt>
- <span class="sect2">
- <a href="#get_source_code">Getting the source code</a>
- </span>
- </dt>
- <dt>
- <span class="sect2">
- <a href="#build_requirements">Requirements</a>
- </span>
- </dt>
- <dt>
- <span class="sect2">
- <a href="#database_setup">Database setup</a>
- </span>
- </dt>
- <dt>
- <span class="sect2">
- <a href="#build_instructions">Compiling and installing</a>
- </span>
- </dt>
- </dl>
- </dd>
- </dl>
- </div>
- <div class="sect1" lang="en" xml:lang="en">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title" style="clear: both"><a id="inst_from_src"></a>Installing from sources</h2>
- </div>
- </div>
- </div>
- <p>Currently, the only intended way to install Matita is starting
- from its source code. </p>
- <div class="sect2" lang="en" xml:lang="en">
- <div class="titlepage">
- <div>
- <div>
- <h3 class="title"><a id="get_source_code"></a>Getting the source code</h3>
- </div>
- </div>
- </div>
- <p>You can get the Matita source code in two ways:
- </p>
- <div class="orderedlist">
- <ol type="1">
- <li>
- <p> go to the <a href="http://matita.cs.unibo.it/download.shtml" target="_top">download
- page</a> and get the <a href="http://matita.cs.unibo.it/sources/matita-latest.tar.gz" target="_top">latest released source tarball</a>;</p>
- </li>
- <li>
- <p> get the development sources from <a href="http://helm.cs.unibo.it/websvn/listing.php?repname=helm&path=%2F&sc=0" target="_top">our
- SVN repository</a>. You will need the
- <span class="application">components/</span> and
- <span class="application">matita/</span> directories from the
- <code class="filename">trunk/helm/software/</code> directory, plus the
- <code class="filename">configure</code> and <code class="filename">Makefile*</code>
- stuff from the same directory. </p>
- <p>In this case you will need to run
- <span><strong class="command">autoconf</strong></span> before proceding with the building
- instructions below.</p>
- </li>
- </ol>
- </div>
- <p>
- </p>
- </div>
- <div class="sect2" lang="en" xml:lang="en">
- <div class="titlepage">
- <div>
- <div>
- <h3 class="title"><a id="build_requirements"></a>Requirements</h3>
- </div>
- </div>
- </div>
- <p>In order to build Matita from sources you will need some
- tools and libraries. They are listed below.
-
- </p>
- <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
- <h3 class="title">Note for Debian users</h3>
- <p>If you are running a <a href="http://www.debian.org" target="_top">Debian GNU/Linux</a> distribution
- you can have APT install all the required tools and libraries by
- adding the following repository to your
- <code class="filename">/etc/apt/sources.list</code>: </p>
- <pre class="programlisting">
- deb <a href="http://people.debian.org/~zack" target="_top">http://people.debian.org/~zack</a> unstable helm
- </pre>
- <p> and installing the
- <span class="application">helm-matita-deps</span> package.</p>
- </div>
- <p>
-
- </p>
- <div class="variablelist">
- <p class="title">
- <b>Required tools and libraries</b>
- </p>
- <dl>
- <dt>
- <span class="term">
- <span class="application">
- <a href="http://caml.inria.fr" target="_top">OCaml</a>
- </span>
- </span>
- </dt>
- <dd>
- <p> the Objective Caml compiler, version 3.09 or above </p>
- </dd>
- <dt>
- <span class="term">
- <span class="application">
- <a href="http://www.ocaml-programming.de/packages/" target="_top">Findlib</a>
- </span>
- </span>
- </dt>
- <dd>
- <p> OCaml package manager, version 1.1.1 or above</p>
- </dd>
- <dt>
- <span class="term">
- <span class="application">
- <a href="http://www.xs4all.nl/~mmzeeman/ocaml/" target="_top">OCaml
- Expat</a>
- </span>
- </span>
- </dt>
- <dd>
- <p>OCaml bindings for the <span class="application"><a href="http://expat.sourceforge.net/" target="_top">expat</a>
- library</span> </p>
- </dd>
- <dt>
- <span class="term">
- <span class="application">
- <a href="http://gmetadom.sourceforge.net/" target="_top">GMetaDOM</a>
- </span>
- </span>
- </dt>
- <dd>
- <p>OCaml bindings for the <span class="application"><a href="http://gdome2.cs.unibo.it/" target="_top">Gdome 2</a>
- library</span></p>
- </dd>
- <dt>
- <span class="term">
- <span class="application">
- <a href="http://www.bononia.it/~zack/ocaml-http.en.html" target="_top">OCaml
- HTTP</a>
- </span>
- </span>
- </dt>
- <dd>
- <p> OCaml library to write HTTP daemons (and clients) </p>
- </dd>
- <dt>
- <span class="term">
- <span class="application">
- <a href="http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgtk.html" target="_top">LablGTK</a>
- </span>
- </span>
- </dt>
- <dd>
- <p> OCaml bindings for the <span class="application"><a href="http://www.gtk.org" target="_top"> GTK+</a> library
- </span>, version 2.6.0 or above </p>
- </dd>
- <dt>
- <span class="term"><span class="application"><a href="http://helm.cs.unibo.it/mml-widget/" target="_top">GtkMathView</a></span>
- , </span>
- <span class="term">
- <span class="application">
- <a href="http://helm.cs.unibo.it/mml-widget/" target="_top">LablGtkMathView</a>
- </span>
- </span>
- </dt>
- <dd>
- <p> GTK+ widget to render <a href="http://www.w3.org/Math/" target="_top">MathML</a> documents and its
- OCaml bindings </p>
- </dd>
- <dt>
- <span class="term"><span class="application"><a href="http://gtksourceview.sourceforge.net/" target="_top">GtkSourceView</a></span>
- , </span>
- <span class="term">
- <span class="application">
- <a href="http://helm.cs.unibo.it/software/lablgtksourceview/" target="_top">LablGtkSourceView</a>
- </span>
- </span>
- </dt>
- <dd>
- <p> extension for the GTK+ text widget (adding the typical
- features of source code editors) and its OCaml bindings </p>
- </dd>
- <dt>
- <span class="term"><span class="application"><a href="http://www.mysql.com" target="_top">MySQL</a></span> , </span>
- <span class="term">
- <span class="application">
- <a href="http://raevnos.pennmush.org/code/ocaml-mysql/" target="_top">OCaml
- MySQL</a>
- </span>
- </span>
- </dt>
- <dd>
- <p> SQL database and OCaml bindings for its client-side library
- </p>
- <p> The SQL database itself is not strictly needed to run
- Matita, but we stronly encourage its use since a lot of
- features are disabled without it. Still, the OCaml bindings of
- the library are needed at compile time.</p>
- </dd>
- <dt>
- <span class="term">
- <span class="application">
- <a href="http://ocamlnet.sourceforge.net/" target="_top">Ocamlnet</a>
- </span>
- </span>
- </dt>
- <dd>
- <p> collection of OCaml libraries to deal with
- application-level Internet protocols and conventions </p>
- </dd>
- <dt>
- <span class="term">
- <span class="application">
- <a href="http://www.cduce.org/download.html#side" target="_top">ulex</a>
- </span>
- </span>
- </dt>
- <dd>
- <p> Unicode lexer generator for OCaml </p>
- </dd>
- <dt>
- <span class="term">
- <span class="application">
- <a href="http://cristal.inria.fr/~xleroy/software.html#camlzip" target="_top">CamlZip</a>
- </span>
- </span>
- </dt>
- <dd>
- <p> OCaml library to access <code class="filename">.gz</code> files
- </p>
- </dd>
- </dl>
- </div>
- <p> </p>
- </div>
- <div class="sect2" lang="en" xml:lang="en">
- <div class="titlepage">
- <div>
- <div>
- <h3 class="title"><a id="database_setup"></a>Database setup</h3>
- </div>
- </div>
- </div>
- <p> To fully exploit Matita indexing and search capabilities you
- will need a working <span class="application"><a href="http://www.mysql.com" target="_top">MySQL</a></span> database. Detalied instructions on how to do
- it can be found in the <a href="http://dev.mysql.com/doc/" target="_top">MySQL documentation</a>. Here you
- can find a quick howto. </p>
- <p> In order to create a database you need administrator permissions on
- your MySQL installation, usually the root account has them. Once you
- have the permissions, a new database can be created executing
- <strong class="userinput"><code>mysqladmin create matita</code></strong>
- (<span class="emphasis"><em>matita</em></span> is the default database name, you can
- change it using the <em class="parameter"><code>db.user</code></em> key of the
- configuration file). </p>
- <p> Then you need to grant the necessary access permissions to the
- database user of Matita, typing <strong class="userinput"><code>echo "grant all privileges
- on matita.* to helm;" | mysql matita</code></strong> should do the trick
- (<span class="emphasis"><em>helm</em></span> is the default user name used by Matita to
- access the database, you can change it using the
- <em class="parameter"><code>db.user</code></em> key of the configuration file).
- </p>
- <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
- <h3 class="title">Note</h3>
- <p> This way you create a database named <span class="emphasis"><em>matita</em></span>
- on which anyone claiming to be the <span class="emphasis"><em>helm</em></span> user can
- do everything (like adding dummy data or destroying the contained
- one). It is strongly suggested to apply more fine grained permissions,
- how to do it is out of the scope of this manual.</p>
- </div>
- </div>
- <div class="sect2" lang="en" xml:lang="en">
- <div class="titlepage">
- <div>
- <div>
- <h3 class="title"><a id="build_instructions"></a>Compiling and installing</h3>
- </div>
- </div>
- </div>
- <p> Once you get the source code the installations steps should be
- quite familiar.</p>
- <p> First of all you need to configure the build process executing
- <strong class="userinput"><code>./configure</code></strong>. This will check that all needed
- tools and library are installed and prepare the sources for compilation
- and installation. </p>
- <p> Quite a few (optional) arguments may be passed to the
- <span class="application">configure</span> command line to change build time
- parameters. They are listed in the table below, together with their
- default values.
-
- </p>
- <div class="table">
- <a id="id2497494"></a>
- <p class="title">
- <b>Table 2.1. <span class="application">configure</span> command line
- arguments</b>
- </p>
- <table border="1" summary=" configure command line arguments">
- <colgroup>
- <col />
- <col />
- <col />
- </colgroup>
- <thead>
- <tr>
- <th align="center">Argument</th>
- <th align="center">Default</th>
- <th align="center">Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td align="left">
- <strong class="userinput">
- <code>--with-runtime-dir=<em class="replaceable"><code>dir</code></em></code>
- </strong>
- </td>
- <td align="left">
- <code class="filename">/usr/local/matita/</code>
- </td>
- <td align="left">
- <p> Runtime base directory where all Matita stuff
- (executables, configuration files, standard
- library, ...) will be installed </p>
- </td>
- </tr>
- <tr>
- <td align="left">
- <strong class="userinput">
- <code>--with-dbhost=<em class="replaceable"><code>host</code></em></code>
- </strong>
- </td>
- <td align="left"> localhost </td>
- <td align="left">
- <p>Default SQL server hostname. Will be used while
- building the standard library during the installation and to
- create the default Matita configuration. May be changed
- later in configuration file.</p>
- </td>
- </tr>
- <tr>
- <td align="left">
- <strong class="userinput">
- <code>--enable-debug</code>
- </strong>
- </td>
- <td align="left"> disabled </td>
- <td align="left">
- <p> Enable debugging code. Not for the casual user.
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <p>
-
- </p>
- <p> Then you will manage the build and install process using
- <span class="application"><a href="http://www.gnu.org/software/make/" target="_top">make</a></span>
- as usual. Below are reported the targets you have to invoke in sequence
- to build and install.
-
- </p>
- <div class="variablelist">
- <p class="title">
- <b><span class="application">make</span> targets</b>
- </p>
- <dl>
- <dt>
- <span class="term">
- <strong class="userinput">
- <code>world</code>
- </strong>
- </span>
- </dt>
- <dd>
- <p>builds components needed by Matita and Matita itself
- (in bytecode only or in both bytecode and native code depending
- on the availability of the OCaml native code compiler) </p>
- </dd>
- <dt>
- <span class="term">
- <strong class="userinput">
- <code>library</code>
- </strong>
- </span>
- </dt>
- <dd>
- <p>uses the (just built) <span class="application">matitac</span>
- compiler to build the Matita standard library. </p>
- <p>For this step you will need a working SQL database (for
- indexing the standard library while you are compiling it). See
- <a href="#database_setup" target="_top">Database setup</a>
- for instructions on how to set it up.</p>
- </dd>
- <dt>
- <span class="term">
- <strong class="userinput">
- <code>install</code>
- </strong>
- </span>
- </dt>
- <dd>
- <p>installs Matita related tools, standard library and the
- needed runtime stuff in the proper places on the filesystem
- </p>
- </dd>
- </dl>
- </div>
- <p>
-
- </p>
- </div>
- </div>
- </div>
- </body>
-</html>