Version actuellement sélectionnée:

Les instructions suivantes sont données pour un projet simple. Le noyau Linux est un cas complexe si vous souhaitez profiter de toutes les possibilités d'hyperliens. Consultez cette astuce après avoir installé LXR au moins dans un cas simple.

Le résultat de l'étape de configuration step consiste en un certain nombre de fichiers (fichier principal de configuration, fichiers de configuration des serveurs et, le plus important, le "schéma" de la base de données). Toutes les interactions entre les paramètres et leurs incompatibilités sont gérées par le configurateur. Comme les règles sont assez complexes, ne vous lancez pas dans une configuration manuelle: vous avez des chances d'oublier quelque point important et votre LXR ne fonctionnera pas.

Le configurateur configure-lxr.pl construit des copies personnalisées à partir des "patrons" du répertoire templates/ et les range dans le répertoire custom.d/. À la fin de cette étape, un fichier nommé lxr.conf doit être copié dans le répertoire racine de LXR pour être activé.

Configurations de LXR et de la base de données

Créez simultanément les configurations de LXR et de la base de données avec le script configure-lxr.pl

$ ./scripts/configure-lxr.pl -vv En dehors de l'option -vv (sortie maximale), la commande utilise les options par défaut, i.e. émission du fichier de configuration lxr.conf et du script de création de la base de données init-db.sh dans le répertoire custom.d/ à partir du modèle lxr.conf. *** LXR configurator (version: 2.2) *** LXR root directory is /home/myself/lxr Configuration will be stored in custom.d/

Le script de configuration construit un fichier personnalisé lxr.conf à l'aide des réponses à quelques questions. La réponse par défaut (celle sélectionnée quand vous tapez seulement "retour chariot") est indiquée en majuscules. Vous n'avez pas besoin d'écrire le choix sélectionné en entier, tapez juste assez de caractères pour rendre la réponse non ambiguë.

Pour sélectionner une réponse parmi les propositions, la casse est indifférente: majuscules et minuscules sont équivalentes.

Partie indépendante des arbres

Versions 1.1 et supérieures: Autres:
  • Version 1.1 et supérieures Configurer le serveur web demandant un soin particulier, les questions suivantes visent à faciliter cette tâche. Configure for single/multiple trees? [S/m] > Important!
    C'est le seul choix que vous ne pourrez pas changer ultérieurement car il configure le serveur web d'une façon non triviale.

    Répondez S si vous ne proposerez jamais qu'un seul arbre (si vous changez d'idée à ce sujet, vous serez contraint de recommencer de zéro avec l'effacement de la base de données en cours de création). C'est néanmoins un choix idéal pour un premier essai.

    Répondez M si vous avez l'intention d'ajouter un autre arbre dans un avenir indéfini.

    Do you intend to add other trees later? [yes/NO] > Cette question offre la possibilité de corriger une erreur de choix. Supposons que le choix par défaut S était le bon.
*** LXR web server configuration ***

Traiter l'arbre source correct demande un codage spécifique de l'URL. LXR a été conçu pour désigner le service LXR après le nom d'hôte, puis l'arbre voulu.

Si les pages du serveur viennent uniquement de LXR, le nom de service (habituellement /lxr) peut être omis.

Ceci correspond au cas d'un site entièrement dédié à LXR.

En contexte d'arbre unique, il n'est pas besoin de désigner l'arbre.

Ceci supprime la question ultérieure sur la racine virtuelle.
Versions 2.0 et supérieures: Version 1.1: Autres:
  • Versions 2.0 et supérieures Many different configurations are possible, they are related to the way LXR service is accessed, i.e. to the structure of the URL. Refer to the User's Manual for a description of the variants. LXR can be located at the server-root (so called dedicated) or lower in the server hierarchy (shared because there are usually other pages or sections). Server type? [dedicated/SHARED] > La réponse par défaut est acceptée pour permettre au serveur de diffuser d'autres pages. The computer hosting the server is described by an URL. The form is !scheme://host_name:port where: - ! is an optional flag (see below), - scheme is either http or https, - host_name can be given as an IPv4 address such as 123.45.67.89, an IPv6 address like [fe80::1234:90ab] or a domain name like localhost or lxr.url.example, - port is 1 to 65535. Scheme: or :port must be specified if you want to restrict access to the tree through the designated scheme or port. This restriction is requested with the ! prefix flag.
Versions 1.1 et supérieures: Autres:
  • Versions 1.1 et supérieures --- Host name or IP? [//localhost] >

    Le serveur local par défaut s'appelle généralement //localhost, tapez alors "retour chariot".

    --- Alias name ? (hit return to stop) > //mycomputer.example.com --- Alias name ? (hit return to stop) >

    Donnez autant d'alias (éventuellement aucun) que de besoin.

    URL section name for LXR in your server? [/lxr] >

    C'est le nom sous lequel le service LXR sera requis par l'URL.

    ATTENTION!
    Si vous répondez /, vous revenez au cas "dedicated" sans aucun avertissement. Ceci peut entraîner de sérieux dysfonctionnements dans votre server web existant.
The choice of the database engine can make a difference in indexing performance, but resource consumption is also an important factor. * For a small personal project, try SQLite which do not need a server and is free from configuration burden. * For medium to large projects, choice is between MySQL, PostgreSQL and Oracle. Oracle is not a free software, its interface has not been tested for a long time. * PostgreSQL databases are smaller than MySQL's and performance is roughly equivalent. * MySQL is at its best with large-sized projects (such as kernel cross-referencing) where it is fastest at the cost of bigger databases. * Take also in consideration the number of connected users. Database engine? [MYSQL/oracle/postgres/sqlite] >

Sélectionnez la base de données en fonction de la politique de votre site ou de ses disponibilités.

Versions 1.1 et supérieures: Version 1.0:
  • Versions 1.1 et supérieures Pas de question particulière ici
--- Directory for glimpse databases? > /home/myself/glimpse_DB

Le script de configuration a détecté le moteur de recherche en plein texte et demande un répertoire pour ses fichiers auxiliaires. Ce répertoire sera créé plus tard par LXR s'il n'existe pas.

ATTENTION! Si vous crééez vous-même ce répertoire, assurez-vous qu'il peut être lu par "tout le monde".
Optimisation de la configuration Apache
Versions supérieures Versions 1.1 à 2.0.3: Autres:
  • Versions 2.1 et supérieures Rien n'est nécessaire dans la mesure où le fichier apache-lxrserver.conf contient désormais des directives capables de détecter dynamiquement la version d'Apache et de s'adapter en conséquence.
file .htaccess written into LXR root directory file apache2-require.pl written into configuration directory file apache-lxrserver.conf written into configuration directory file lighttpd-lxrserver.conf written into configuration directory file nginx-lxrserver.conf written into configuration directory file thttpd-lxrserver.conf written into configuration directory Mercurial support files written into configuration directory Ceci termine la partie générale de la configuration. Le script passe au fichier principal de configuration. *** LXR master configuration file setup *** Global section part *** Configuring auxiliary tool paths *** Configuring host name or IP (as http://...)
Versions 1.1 et supérieures: Autres:
  • Version 1.1 et supérieures *** Host name previously defined as //localhost Cette ligne rappelle le nom d'hôte que vous avez défini plus haut pendant la configuration du serveur web.
*** Configuring HTML parameters
Versions 1.1 et supérieures: Autres:
  • Version 1.1 et supérieures 'Buttons-and-menus' interface is recommended for the kernel to avoid screen cluttering. --- Use 'buttons-and-menus' instead of 'link' interface? [YES/no] >

    L'interface boutons-et-menus présente une mise en page plus dense que l'interface lien traditionnel. Il est vivement recommandé dans les situations où l'arbre source a beaucoup de versions ou, comme dans le cas du noyau Linux, lorsqu'une forme de contrôle de configuration est réalisée à l'aide de nombreuses variables auxiliaires LXR.

*** Configuring file subsection *** Configuring "common factors" *** Marking tree section La partie indépendante des arbres est maintenant configurée.

Partie liée aux arbres

*** LXR master configuration file setup *** Tree section part SQL script for database initialisation *** Configuring LXR server parameters *** The virtual root is the fixed URL part after the hostname.
Versions 1.1 et supérieures: Autres:
  • Version 1.1 et supérieures *** You previously defined the virtual root as /lxr Cette ligne rappelle la racine virtuelle implicite ou définie plus haut pendant la configuration du serveur web.
--- Caption in page header? (e.g. Project XYZZY displayed by LXR) > Premier essai

Ceci définit le titre dans la zone d'en-tête de chaque page.

Do you need a specific encoding for this tree ? [yes/NO] >

Le codage par défaut est UTF-8. Si votre arbre utilise un autre codage, répondez Y et entrez un codage normalisé par l'IANA, comme iso-8859-1.

*** Describing tree location How is your tree stored? [FILES/cvs/git/subversion/bitkeeper] > *** A source directory contains one sub-directory for every version. --- Source directory? (e.g. /home/myself/project-tree) > /home/myself/my-project

Faites votre premier essai sur un arbre résidant dans des vrais fichiers et répertoires (i.e. pas dans un dépôt de SCV/VCS). Remarquez que le chemin vers le répertoire du projet est sous forme absolue.

RAPPEL!
L'objectif de LXR est la navigation entre différentes versions d'un projet. En conséquence, il s'attend à trouver des sous-répertoires de version dans le répertoire source désigné, comme /home/myself/my-project/v1, …, même si vous n'avez qu'une seule version.
Name to display for the path root? (e.g. Project or $v for version) [$v] >

Ceci est un raccourci du chemin du répertoire source dans un nom complet de fichier pour l'affichage dans l'en-tête de page. La réponse par défaut $v insère dynamiquement le nom de version.

*** Enumerating versions Label for version selection menu? [Version] > *** Versions can be explicitly enumerated, be read from a file or computed *** by a function. The latter case is recommended for VCS-stored trees. Version enumeration method? [LIST/file/function] > --- Version name? (hit return to stop) > v1 --- Version name? (hit return to stop) > *** By default, first version in list is displayed. You may also indicate *** a prefered version. --- Default displayed version is first in 'range'? [YES/no] >

Indiquez à LXR les versions figurant dans le répertoire source. Pour arrêter la demande de version, répondez avec un nom vide (tapez juste "retour chariot").

Astuce:
Pour faire afficher la dernière version par défaut, listez-les en ordre chronologique inverse, la dernière en premier, la plus ancienne en dernier.
*** Setting directory lists *** Some directories may contain non-public project data (binaries, *** compilers caches, SCM control data, ...). They can be hidden from LXR. --- Directory to ignore, e.g. CVSROOT or .git? (hit return to stop) > *** If your source code uses "include" statements (#include, require, ...) *** LXR needs hints to resolve the destination file. --- Include directory, e.g. /include? (hit return to stop) >

Laissez de côté ces questions pour un arbre simple. Elles permettent de "cacher" des sous-répertoires aux yeux de LXR et de résoudre les directives include figurant dans le source.

*** Configuring data storage --- Database name? > lxr_myproject --- DB user name? [lxr] > --- DB password? [lxrpw] > --- DB table prefix? [lxr_] > configuration saved in custom.d/lxr.conf DB initialisation sript is custom.d/initdb.sh

Donnez un nom à la base de données selon les règles de votre site. De toute façon, il est toujours sage qu'il soit unique, à moins que vous définissiez la base en tant que jeu de tables particulier au sein d'une base existante. Dans ce cas, donnez un préfixe de tables unique à la place de lxr_ par défaut.

La partie spécifique à l'arbre est maintenant configurée et vous en avez terminé.

Création de la base de données

Le script d'initialisation de la base de données travaille sous l'utilisateur maître (par défaut root pour MySQL et postgres pour PostgreSQL). Si son nom a été changé sur votre ordinateur, modifiez initdb.sh.

Lancez le script résultat de l'étape précédente.

$ ./custom.d/initdb.sh Note: sous MySQL, le mot de passe maître est demandé plusieurs fois. Ignorez les erreurs concernant les objets inexistants (utilisateur, base de données, tables, …). Ce script tente de détruire les objets avant de les créer, de façon qu'il puisse être relancé n'importe quand dans un état cohérent. ATTENTION!
Il vaut néanmoins mieux détruire ce script dès qu'il a été utiliséc car le script configure-lxr.pl ajoute toujours son résultat au bout de initdb.sh sans l'effacer (ce comportement permet de fractionner une configuration en arbres multiples en plusieurs sessions et de ne lancer qu'une seule fois l'initialisation de la base données à la fin du processus). Ne pas le détruire conserve toutes les créations antérieures de base de données. Quand le script est relancé, les nouvelles bases de données sont créées et les anciennes recréées, entraînant la perte de leur contenu.

Copie de lxr.conf à son emplacement final

Ajustez éventuellement (à la main) les paramètres de configuration avant la copie.

$ cp custom.d/lxr.conf . L'emploi de cp au lieu de mv permet d'ajouter d'autres arbres ultérieurement sans tout reconfigurer.

Pour un exemple de valeurs de paramètres sur les arbres en démonstration sur SourceForge, voyez ici.

Vous êtes prêt pour charger la base de données avec vos informations.