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
- 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
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
--- 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
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 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://...)
- 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
- 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.
- 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.