# Installation depuis l'archive

## Récupérer l'archive

Récupérer l'archive depuis la page de téléchargement. On peut aussi trouver sur cette page l'archive SVN pour tester les dernières évolutions.

Le contenu de l'archive SVN n'est pas le même que l'officielle. Voir le chapître suivant pour savoir comment construire une archive officielle depuis les fichiers SVN.

## Construire l'archive depuis SVN

Au choix, importer le dépôt SVN ou extraire l'archive SVN pour importer les fichiers.

Aller ensuite dans le répertoire trunk :

    cd trunk

Lancer la cible “dist” :

    make dist

L'archive générée est dans le répertoire courant.

## Extraction

Lancer implement la commande tar :

    tar zxvf lemonldap-ng-*.tar.gz

## Installation

D'abord vérifier et installer les pré-requis.

Pour une installation complète :

    cd lemonldap-ng-*
    make
    make configure
    make test
    sudo make install PROD=yes

`PROD=yes` impose aux interfaces web d'utiliser les versions compactées des fichiers CSS et JS.

On peut modifier l'emplacement du fichier de configuration du stockage par défaut dans la cible configure :

    sudo make configure STORAGECONFFILE=/etc/lemonldap-ng/lemonldap-ng.ini

On peut choisir d'autres cibles du Makefile :

- Installer les librairies Perl :
  - install_libs (toutes les librairies Perl)
  - install_portal_libs
  - install_manager_libs
  - install_handler_libs
- Installer les exécutables :
  - install_bin (/usr/local/lemonldap-ng/bin)
- Installation du serveur FastCGI (requis pour Nginx)
  - install_fastcgi_server (/usr/local/lemonldap-ng/sbin)
- Installer les sites web :
  - install_site (all sites including install_doc_site)
  - install_portal_site (/usr/local/lemonldap-ng/htdocs/portal)
  - install_manager_site (/usr/local/lemonldap-ng/htdocs/manager)
  - install_handler_site (/usr/local/lemonldap-ng/handler)
- Installer la documentation :
  - install_doc_site (/usr/local/lemonldap-ng/htdocs/doc)
  - install_fr_doc_site (/usr/local/lemonldap-ng/htdocs/fr-doc)
  - install_examples_site (/usr/local/lemonldap-ng/examples)

On peut aussi passer des paramètres à la commande make install, avec cette syntaxe :

    sudo make install PARAM=VALUE PARAM=VALUE ...

Paramètres disponibles :

- ERASECONFIG : mettre à 0 pour conserver les fichiers de configuration (défaut : 1)
- DESTDIR : seulement pour la création de paquets, installe le produit dans une cage (default: “”)
- PREFIX : répertoire d'installation (défaut : /usr/local)
- STORAGECONFFILE : emplacement du du fichier de configuration du stockage par défaut (défaut : /usr/local/lemonldap-ng/etc/lemonldap-ng.ini)
- CRONDIR : répertoire des fichiers cron (défaut: $PREFIX/etc/lemonldap-ng/cron.d)
- APACHEUSER : utilisateur de fonctionnement d'Apache
- APACHEGROUP: groupe de fonctionnement d'Apache
- DNSDOMAIN : domaine DNS proncipal (défaut : example.com)
- APACHEVERSION : version majeure d'Apache (défaut : 2)
- VHOSTLISTEN : comment est configuré le paramètre d'écoute des hôtes virtuels dans Apache (défaut : *:80)
- PROD : utiliser les fichiers JS et CSS compactés
- USEDEBIANLIBS : utiliser les fichiers JS et CSS des paquets Debian (Noter que cette options n'est pas encore utilisable car Debian fournit une version trop ancienne de AngularJS pour l'instant : le manager LLNG nécessite à minima la version 1.4.0)
- USEEXTERNALLIBS : utiliser les fichiers des CDN publics

Pour Debian/Ubuntu avec Apache2, utiliser :

    make debian-install-for-apache
    make ubuntu-install-for-apache

Et avec Nginx:

    make debian-install-for-nginx
    make ubuntu-install-for-nginx

Voir aussi la documentation d'installation Debian/Ubuntu.

## Installer les tâches planifiées (cron)

LL::NG utilise des tâches planifiées pour :

- purger les anciennes sessions
- nettoyer le cache des agents

Pour les installer sur le système :

    sudo ln -s /usr/local/lemonldap-ng/etc/cron.d/* /etc/cron.d/

## DNS

Configurer le serveur DNS pour résoudre les noms avec l'adresse IP de votre serveur.

Pour les tests avec le domaine configuré, lancer :

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

Suivre les étapes suivantes.