# Installation on Debian/Ubuntu with packages

## Organization

LemonLDAP::NG provides these packages:

- lemonldap-ng: meta-package, contains no file but dependencies on other packages
- lemonldap-ng-doc: contains HTML documentation and project docs (README, etc.)
- lemonldap-ng-fr-doc: French translation for HTML documentation
- liblemonldap-ng-common-perl: configuration and common files
- liblemonldap-ng-handler-perl: Handler files
- liblemonldap-ng-manager-perl: Manager files
- liblemonldap-ng-portal-perl: Portal files

## Get the packages

### Official repository

If you run Debian testing or unstable, the packages are directly installable:

    apt-cache search lemonldap-ng

Packages from Debian repository may not be up to date. Prefer then the other solutions (see below).

### LL::NG repository

You can add this repository to have recent packages:

    vi /etc/apt/sources.list.d/lemonldap-ng.list

    # LemonLDAP::NG repository
    deb     http://lemonldap-ng.org/deb squeeze main
    deb-src http://lemonldap-ng.org/deb squeeze main

Repository is named squeeze but works for all Debian/Ubuntu versions

Run this to update packages cache:

    apt-get update

### Manual download

Packages are available on the Download page.

## Package GPG signature

The GPG key can be downloaded here: rpm-gpg-key-ow2

Install it to trust packages:

    apt-key add rpm-gpg-key-ow2

## Install packages

### With aptitude

    aptitude install lemonldap-ng

### With dpkg

Before installing the packages, install dependencies.

Then:

    dpkg -i liblemonldap-ng-* lemonldap-ng*

## First configuration steps

### Change default DNS domain

By default, DNS domain is `example.com`. You can change it quick with a sed command. For example, we change it to `ow2.org`:

    sed -i 's/example\.com/ow2.org/g' /etc/lemonldap-ng/* /var/lib/lemonldap-ng/conf/lmConf-1 /var/lib/lemonldap-ng/test/index.pl

### Enable LL::NG sites

Enable LL::NG sites in Apache:

    a2ensite handler-apache2.conf
    a2ensite portal-apache2.conf
    a2ensite manager-apache2.conf
    a2ensite test-apache2.conf

Enable mod_perl if not already loaded:

    a2enmod perl

Restart Apache:

    apache2ctl configtest
    apache2ctl restart

### Reload virtual host

To allow the manager to reload the configuration, register the reload virtual host name in the hosts of the server:

    echo "127.0.0.1 reload.example.com" >> /etc/hosts

Adapt the reload virtual host name to the domain you configured.

### Upgrade

If you upgraded LL::NG, check all upgrade notes.

The upgrade process will also have migrate old configuration files into `/etc/lemonldap-ng/lemonldap-ng.ini`. This includes the application list which is now set in the `applicationList` parameter from `[portal]` section, for example:

    [portal]
    applicationList={ 'Menu' => { type => 'category', 'Example' => { type => 'category', 'test1' => { type => 'application', options => { name => 'Application Test 1', uri => 'http://test1.example.com/', description => 'A simple application displaying authenticated user', logo => 'wheels.png', display => 'auto',  }, },'test2' => { type => 'application', options => { name => 'Application Test 2', uri => 'http://test2.example.com/', description => 'The same simple application displaying authenticated user', logo => 'wheels.png', display => 'auto',  }, }, },'Administration' => { type => 'category', 'manager' => { type => 'application', options => { name => 'WebSSO Manager', uri => 'http://manager.example.com/', description => 'Configure LemonLDAP::NG WebSSO', logo => 'tools.png', display => 'on',  }, },'sessions' => { type => 'application', options => { name => 'Sessions explorer', uri => 'http://manager.example.com/sessions.pl', description => 'Explore WebSSO sessions', logo => 'tools.png', display => 'on',  }, }, },'Documentation' => { type => 'category', 'localdoc' => { type => 'application', options => { name => 'Local documentation', uri => 'http://manager.example.com/doc/', description => 'Documentation supplied with LemonLDAP::NG', logo => 'docs.png', display => 'on',  }, },'officialwebsite' => { type => 'application', options => { name => 'Offical Website', uri => 'http://wiki.lemonldap.objectweb.org/xwiki/bin/view/NG/Presentation', description => 'Official LemonLDAP::NG Website', logo => 'web.png', display => 'on',  }, }, }, }, }

You should now use the Manager to configure all applications and categories, and then comment or remove the `applicationList` parameter from `/etc/lemonldap-ng/lemonldap-ng.ini`.

### DNS

Configure your DNS server to resolve names with your server IP.

For tests with `example.com`, launch the following :

    cat /etc/lemonldap-ng/for_etc_hosts >> /etc/hosts

Follow the next steps

## File location

- Configuration is in /etc/lemonldap-ng
- LemonLDAP::NG configuration (edited by the Manager) is in /var/lib/lemonldap-ng/conf/
- All Perl modules are in the VENDOR perl directory (/usr/share/perl5/)
- All Perl scripts/pages are in /var/lib/lemonldap-ng/
- All lemonldap-ng tools are in /usr/share/lemonldap-ng/bin/
- All static content (examples, CSS, images, etc.) is in /usr/share/lemonldap-ng/
- Apache configuration files are in /etc/lemonldap-ng and linked in /etc/apache2/sites-available

## Build your packages

You can also get the LemonLDAP::NG archive and make the package yourself:

    tar xzf lemonldap-ng-*.tar.gz
    cd lemonldap-ng-*
    make debian-packages