doc/book/en/C011-installation.en.txt
author Emile Anclin <emile.anclin@logilab.fr>
Tue, 10 Feb 2009 10:25:47 +0100
changeset 564 8b48724d4c2b
parent 271 e150b92237d9
child 1192 82375c14eb26
permissions -rw-r--r--
some doc typos

.. -*- coding: utf-8 -*-

.. _CubicWebInstallation:

Installation
============

Installation of `Cubicweb` and its dependencies
-----------------------------------------------

`CubicWeb` is packaged for Debian and Ubuntu, but can be installed from source
using a tarball or the Mercurial version control system.

Debian and Ubuntu packages
```````````````````````````
Depending on the distribution you are using, add the appropriate line to your list
of sources (for example by editing ``/etc/apt/sources.list``).

For Debian Lenny::

  deb http://ftp.logilab.org/dists/ lenny/

For Debian Sid::

  deb http://ftp.logilab.org/dists/ sid/

For Ubuntu Hardy::

  deb http://ftp.logilab.org/dists/ hardy/


You can now install the required packages with the following command: ::

  apt-get update 
  apt-get install cubicweb
  apt-get install cubicweb-dev


This is it!

Install from source
```````````````````

You can download the archive containing the sources from our `ftp site`_ at: ::

  http://ftp.logilab.org/pub/cubicweb/

.. _`ftp site`: http://ftp.logilab.org/pub/cubicweb/

or keep up to date with on-going development by using Mercurial and its forest
extension::

  hg fclone http://www.logilab.org/hg/forests/cubicweb

See :ref:`MercurialPresentation` for more details about Mercurial.

Postgres installation
`````````````````````

Please refer to the `Postgresql project online documentation`_.

.. _`Postgresql project online documentation`: http://www.postgresql.org/

You need to install the three following packages: `postgres-8.3`,
`postgres-contrib-8.3` and `postgresql-plpython-8.3`.


Then you can install:

* `pyro` if you wish the repository to be accessible through Pyro
  or if the client and the server are not running on the same machine
  (in which case the packages will have to be installed on both
  machines)

* `python-ldap` if you plan to use a LDAP source on the server

.. _ConfigurationEnv:

Environment configuration
-------------------------

If you installed `CubicWeb` by cloning the Mercurial forest, then you
will need to update the environment variable PYTHONPATH by adding  
the path to the forest ``cubicweb``:

Add the following lines to either `.bashrc` or `.bash_profile` to configure
your development environment ::
  
  export PYTHONPATH=/full/path/to/cubicweb-forest

If you installed the debian packages, no configuration is required.
Your new cubes will be placed in `/usr/share/cubicweb/cubes` and
your applications will be placed in `/etc/cubicweb.d`.

.. _ConfigurationPostgres:

Postgres configuration
----------------------

* First you have to initialize the database Postgres with the command ``initdb``.
  ::

    $ initdb -D /path/to/pgsql

  Once initialized, you can launch the database server Postgres 
  with the command: ::
  
    $ postgres -D /path/to/psql

  If you cannot execute this command due to permission issues, please
  make sure that your username has write access on the database.
  ::
 
    $ chown username /path/to/pgsql

* Create a superuser for `CubicWeb` instance (**root**) ::

    createuser -s username

  Initialize the password of the superuser you just created with 
  ``su - postgres`` and ``psql``.

  This password will be asked to you later on where you will create an
  instance with `cubicweb-ctl create`

.. [XXX] Est-ce que ces etapes sont vraiment necessaires?  sand : lors de l'installation de ma bdd cela n'a pas ete fait et il semble que tout aille bien. Doit etre verifie avec les experts.

* installation of plain-text index extension ::

    cat /usr/share/postgresql/8.3/contrib/tsearch2.sql | psql -U username template1

* installation of plpythonu language by default ::

    createlang -U pgadmin plpythonu template1


Pyro configuration
------------------

If you use Pyro, it is required to have a name server Pyro running on your
network (by default it is identified by a broadcast request).

To do so, you need to :

* launch the server manually before starting cubicweb with `pyro-ns`

* launch the server manually before starting cubicweb as a server with
  `pyro-nsd start`

* edit the file ``/etc/default/pyro-nsd`` so that the name server pyro
  will be launched automatically when the machine fire up