Index: projects/xml-tools/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.xml
===================================================================
--- projects/xml-tools/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.xml (revision 41366)
+++ projects/xml-tools/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.xml (revision 41367)
@@ -1,2863 +1,2863 @@
JimMockRestructuré, réorganisé, et en partie mis
à jour par JordanHubbardTravail original de Poul-HenningKampJohnPolstraNikClaytonMise à jour de &os;
&trans.a.fonvieille;
Synopsis&os; est en constant développement entre deux
versions.
Certains utilisateurs préfèrent utiliser les
versions publiées officiellement alors que d'autres
voudront rester à jour avec les tous derniers
développements. Mêmes les versions officielles
sont souvent mises à jour avec les correctifs de
problèmes critiques et de sécurité.
Indépendamment de la version utilisée, &os;
fournit tous les outils nécessaires à la mise
à jour de votre système, et permet
également des mises à jour aisées entre
versions.
Ce chapitre vous aidera à
décider si vous voulez suivre les développements, ou vous
en tenir aux versions publiées. Les outils de base pour
le maintien à jour de votre système seront
également présentés.Après la lecture de ce chapitre, vous
connaîtrez:Quels utilitaires peuvent être employés
pour mettre à jour le système et le catalogue
des logiciels portés.Comment maintenir votre système à
jour avec freebsd-update,
CVSup,
CVS, ou
CTM.Comment comparer l'état d'un système
installé avec une copie de confiance.La différence entre les deux branches de
développement: &os.stable; et &os.current;.Comment recompiler et réinstaller
l'intégralité du système de base avec
la commande make buildworld (etc.).Avant de lire ce chapitre, vous devrez:Correctement configurer votre connexion
réseau ().Savoir comment installer des logiciels
tiers ().Tout au long de ce chapitre, la commande
cvsup sera utilisée pour
récupérer et mettre à jour les sources de
&os;. Pour l'utiliser, vous devrez installer un logiciel
porté ou pré-compilé tel que net/cvsup-without-gui. Si vous
utilisez &os; 6.2-RELEASE ou une version
ultérieure, vous pouvez remplacer cette commande par
&man.csup.1;, qui fait désormais partie du
système de base.TomRhodesEcrit par ColinPercivalBasé sur des notes de Mise à jour de FreeBSDMise à jourfreebsd-updatemise à jourAppliquer des correctifs de sécurité est une
part importante de la maintenance de logiciels informatiques
tout particulièrement dans le cas du système
d'exploitation. Pendant très longtemps sous &os;, ce
processus n'était pas aisé. Les correctifs
devaient être appliqués au code source, le code
ensuite recompilé sous forme de binaires, et enfin les
binaires devaient être ré-installés.Ce processus n'est plus de mise comme &os; dispose
désormais d'un utilitaire appelé simplement
freebsd-update. Cet utilitaire fournit deux
fonctions distinctes. Tout d'abord, il permet l'application de
mises à jour de correction et de sécurité
sur le système de base de &os; sans nécessiter une
compilation et une ré-installation. En second lieu,
l'utilitaire supporte les mises à jour mineures et
majeures des versions publiées.Les mise à jour binaires sont disponibles pour
toutes les architectures actuellement supportées par
l'équipe de sécurité. Avant de mettre
à jour vers une nouvelle version, les annonces
concernant la version devront être passées en
revue sachant qu'elles peuvent contenir des informations
importantes au sujet de cette version. Ces annonces peuvent
être consultées à l'adresse suivante:
.S'il existe une table crontab utilisant
freebsd-update, elle doit être
désactivée avant de démarrer les
opérations qui vont suivre.Le fichier de configurationCertains utilisateurs peuvent souhaiter adapter le fichier
de configuration par défaut
/etc/freebsd-update.conf, permettant un
meilleur contrôle du processus. Les options sont
très bien documentées, mais les suivantes
demandent un peu plus d'explication:# Composants du système de base qui doivent être maintenus à jour.
Components src world kernelCe paramètre contrôle quelles sont les
parties de &os; qui seront mises à jour. Par
défaut on met à jour le code source,
l'intégralité du système de base et le
noyau. Les composants sont les mêmes que ceux
disponibles durant l'installation, par exemple, ajouter
world/games ici permettrait d'appliquer les
correctifs relatifs aux jeux. Utiliser
src/bin permettrait la mise à jour
du code source du répertoire src/bin.La meilleure option est de laisser telle quelle la
configuration par défaut car la modifier pour ajouter
des éléments particuliers demandera à
l'utilisateur de lister chaque élément qu'il
désire mettre à jour. Cela pourrait avoir des
conséquences désastreuses puisque le code source
et les binaires peuvent à terme ne plus être en
phase.# Les chemins d'accès commençant par quelque chose correspondant à une
# entrée de type IgnorePaths seront ignorés.
IgnorePathsAjoute les chemins d'accès comme /bin ou /sbin pour préserver
intacts ces répertoires durant le processus de mise
à jour. Cette option peut être utilisée
pour empêcher freebsd-update
d'écraser des modifications locales.# Les chemins d'accès qui commencent par quelque chose correspondant à
# une entrée de type UpdateIfUnmodified seront mis à jour que si le
# contenu du fichier n'a pas été modifié par l'utilisateur (à moins
# que les modifications ne soient fusionnées; voir plus bas).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profileMet à jour les fichiers de configuration dans les
répertoires désignés seulement s'ils
n'ont pas été modifiés. Tout changement
effectué par l'utilisateur invalidera automatiquement
la mise à jour de ces fichiers. Il existe une autre
option KeepModifiedMetadata qui indiquera
à freebsd-update de sauvegarder les
changements durant la fusion.# Quand on met à jour vers une nouvelle version de &os;, les fichiers
# correspondant à une entrée de type MergeChanges verront leurs
# différences locales fusionnées avec le fichier de la nouvelle
# version de &os;.
MergeChanges /etc/ /var/named/etc/Liste des répertoires avec des fichiers de
configuration que freebsd-update devrait
tenter de fusionner. Le processus de fusion des fichiers est
l'application d'une série de correctifs &man.diff.1;
similaires à ceux de &man.mergemaster.8; avec cependant
moins d'options, les fusions sont soit acceptées,
ouvrant un éditeur, soit abandonnées par
freebsd-update. En cas de doute,
sauvegardez /etc et
acceptez les fusions. Consultez la section sur pour plus d'information sur la commande
mergemaster.# Répertoire dans lequel stocker les mise à jour téléchargées et les
# fichiers temporaires utilisés par la mise à jour de &os;.
# WorkDir /var/db/freebsd-updateCe répertoire est l'endroit où tous les
correctifs et les fichiers temporaires seront placés.
Dans les cas où l'utilisateur effectue une mise
à jour de version, cet emplacement doit disposer d'au
moins un gigaoctet d'espace disponible.# Lors de mises à jour entre versions de &os;, doit-on lire la liste
# de composants de manière stricte (StrictComponents yes)
# ou tout simplement comme une liste de composants qui *pourraient*
# être installés et pour lesquels la mise à jour de &os; devrait
# déterminer lesquels sont effectivement installés et les mettre à
# jour (StrictComponents no)?
# StrictComponents noCette option fixée à yes,
freebsd-update supposera que la liste de
composants est complète et n'essaiera pas d'effectuer
des modifications en dehors de cette liste.
Concrètement, freebsd-update tentera
de mettre à jour chaque fichier appartenant à la
liste de composants.Correctifs de sécuritéLes correctifs de sécurité sont
stockés sur une machine distante et peuvent être
téléchargés et installés en
utilisant la commande suivante:&prompt.root; freebsd-update fetch
&prompt.root; freebsd-update installSi des correctifs ont été appliqués
au noyau le système devra être
redémarré. Si tout c'est bien passé le
système est corrigé et
freebsd-update pourra être
exécuté chaque nuit via un processus
&man.cron.8;. Une entrée dans le fichier
/etc/crontab devrait être
suffisante pour accomplir cette tâche:@daily root freebsd-update cronCette entrée indique qu'une fois par jour,
l'utilitaire freebsd-update sera
exécuté. De cette manière, en employant
l'option ,
freebsd-update vérifiera seulement
l'existence de mises à jour. Si des correctifs
existent, il seront automatiquement
téléchargés sur le disque local mais
non-appliqués. L'utilisateur root
sera contacté par courrier électronique, il
pourra ainsi les installer manuellement.Si quelque s'est mal passé,
freebsd-update a la capacité
d'annuler le dernier ensemble de changements avec la commande
suivante:&prompt.root; freebsd-update rollbackUne fois la commande achevée, le système
devra être redémarré si le noyau ou un de
ses modules ont été modifiés. Cela
permettra à &os; de charger en mémoire les
nouveaux binaires.L'utilitaire freebsd-update peut mettre
à jour uniquement et automatiquement le noyau
GENERIC. Si un noyau personnalisé
est utilisé, il devra être recompilé et
réinstallé après que la commande
freebsd-update ait achevé
l'installation du reste des mises à jour. Cependant
freebsd-update détectera et mettra
à jour le noyau GENERIC dans
/boot/GENERIC (s'il
existe), et cela même si ce n'est pas le noyau actuel
(qui tourne) du système.C'est toujours une bonne idée de conserver une
copie du noyau GENERIC dans /boot/GENERIC. Cela sera utile
pour diagnostiquer une variété de
problèmes, et lors des mises à jour utilisant
freebsd-update comme décrit dans
la .A moins que la configuration par défaut
présente dans
/etc/freebsd-update.conf n'ait
été modifiée,
freebsd-update installera les sources du
noyau mises à jour avec le reste des mises à
jour. La recompilation et la réinstallation d'un noyau
personnalisé peuvent effectuées de la
manière classique.Les mises à jour distribuées via
freebsd-update, n'impliquent pas toujours
le noyau. Il ne sera pas nécessaire de recompiler
votre noyau personnalisé si les sources du noyau
n'ont pas été modifiées par
l'exécution de freebsd-update
install. Cependant
freebsd-update met toujours à jour
le fichier
/usr/src/sys/conf/newvers.sh. Le
niveau ou la version de correctifs (comme indiqué par
le nombre -p rapporté par
uname -r) est obtenu à partir de
ce fichier. Recompiler votre noyau personnalisé,
même si rien d'autre n'a changé, permettra
à la commande &man.uname.1; de rapporter
précisément le niveau de correctifs du
système. C'est particulièrement utile quand
on gère de multiples systèmes, car cela permet
une évaluation rapide des mises à jour
présentes sur chacun d'eux.Mises à jour mineures et majeuresCe processus supprimera les anciens fichiers objets et
bibliothèques qui rendent inutilisables la plupart des
applications tierce-partie. Il est recommandé que tous
les logiciels portés soient supprimés et
réinstallés ou mis à jour
ultérieurement en utilisant l'outil ports-mgmt/portupgrade. La plupart
des utilisateurs voudront lancer une compilation test à
l'aide de la commande suivante:&prompt.root; portupgrade -afCela garantira que tout sera réinstallé
correctement. Notez que fixer la variable d'environnement
BATCH à yes
répondra yes à toute question
lors de ce processus, supprimant ainsi la
nécessité d'une intervention humaine durant le
processus de compilation.Si un noyau personnalisé est utilisé, le
processus de mise à jour est un peu plus complexe. Une
copie du noyau GENERIC est
nécessaire et devrait être placée dans le
répertoire /boot/GENERIC. Si le noyau
GENERIC n'est pas présent sur le
système, il peut être obtenu en utilisant une des
méthodes suivantes:Si un noyau personnalisé a déjà
été compilé, le noyau présent
dans /boot/kernel.old est en fait
le noyau GENERIC. Renommer ce
répertoire en /boot/GENERIC.En supposant qu'un accès physique à la
machine est possible, une copie du noyau
GENERIC peut être installé
à partir d'un CD-ROM. Insérer votre disque
d'installation et utiliser les commandes suivantes:&prompt.root; mount /cdrom
&prompt.root; cd /cdrom/X.Y-RELEASE/kernels
&prompt.root; ./install.sh GENERICRemplacer X.Y-RELEASE
avec la version que vous utilisez. Le noyau
GENERIC sera installé par
défaut dans /boot/GENERIC.En dehors de ce qui précède le noyau
GENERIC peut être
recompilé et installé à partir des
sources:&prompt.root; cd /usr/src
&prompt.root; env DESTDIR=/boot/GENERIC make kernel
&prompt.root; mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
&prompt.root; rm -rf /boot/GENERIC/bootPour que ce noyau soit pris en compte comme
GENERIC par
freebsd-update, le fichier de
configuration GENERIC devra ne pas
avoir été modifié. Il est
également suggéré qu'il soit
compilé sans aucune option particulière (de
préférence avec un fichier
/etc/make.conf vide).Redémarrer avec le noyau GENERIC
n'est pas nécessaire à ce stade.Les mises à jour de versions majeures et mineures
peuvent être effectuées en passant à la
commande freebsd-update la version vers
laquelle on désire mettre à jour, par exemple,
la commande suivante effectuera la mise à jour vers
&os; 8.1:&prompt.root; freebsd-update -r 8.1-RELEASE upgradeLa commande freebsd-update analysera le
fichier de configuration et le système afin de
récupérer les informations nécessaires
à la mise à jour du système. A
l'écran s'affichera quels sont les composants
détectés et quels sont ceux qui n'ont pas
été détectés. Par exemple:Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? yA ce niveau freebsd-update tentera de
télécharger tous les fichiers nécessaires
à la mise à jour. Dans certains cas
l'utilisateur sera interrogé sur ce qu'il faut
installer ou sur comment procéder à certaines
actions.Si un noyau personnalisé est utilisé,
l'étape précédente produira un
avertissement semblable au suivant:WARNING: This system is running a "MYKERNEL" kernel, which is not a
kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"Cet avertissement peut sans risque être
ignoré à ce niveau. Le noyau
GENERIC mis à jour sera
utilisé comme une étape intermédiaire
dans le processus de mise à jour.Une fois l'ensemble des correctifs
téléchargé sur le système local,
ils seront appliqués. Ce processus peut prendre plus
ou moins de temps en fonction de la vitesse et de la charge de
la machine. Les fichiers de configuration seront
fusionnés — cette partie du processus
demande l'intervention de l'utilisateur car un fichier peut
être automatiquement fusionné ou en cas de besoin
un éditeur peut apparaître sur l'écran
pour une fusion manuelle. Les résultats des fusions
réussies seront affichés au fur et à
mesure que se déroule l'opération. Un
échec ou une fusion ignorée provoqueront
l'arrêt du processus. Certains utilisateurs peuvent
vouloir conserver une sauvegarde du répertoire
/etc et fusionner plus
tard à la main les fichiers importants comme
master.passwd ou
group.Le système n'a pas encore été
réellement modifié, les fusions et
l'application des correctifs ont lieu dans un autre
répertoire. Quand tous les correctifs ont
été appliqués avec succès, que
tous les fichiers de configuration ont été
fusionnés et que le processus s'est
déroulé sans problème, les
modifications devront être appliquées
définitivement au système par
l'utilisateur.Une fois les opérations précédentes
achevées, la mise à jour peut être
appliquée en utilisant la commande suivante:&prompt.root; freebsd-update installLe noyau et les modules seront corrigés les
premiers. A ce moment la machine doit être
obligatoirement redémarrée. Si le
système utilisait un noyau personnalisé,
utiliser la commande &man.nextboot.8; pour indiquer le noyau
/boot/GENERIC (qui a
été mis à jour) pour le prochain
démarrage:&prompt.root; nextboot -k GENERICAvant de redémarrer sur le noyau
GENERIC, assurez-vous qu'il contient tous
les pilotes nécessaires pour que votre système
démarre correctement (et se connecte au
réseau, si la mise à jour de la machine se
fait à distance). En particulier, si le noyau
précédemment utilisé contient des
fonctions généralement fournies par des
modules, faites en sorte de charger temporairement ces
modules avec le noyau GENERIC à
l'aide de /boot/loader.conf. Vous
pouvez également avoir intérêt à
désactiver les services non-indispensables, les
montages réseaux ou disques, etc. avant que le
processus de mise à jour ne soit
achevé.La machine doit maintenant être
redémarrée avec le noyau mis à
jour:&prompt.root; shutdown -r nowUne fois la machine de nouveau active,
freebsd-update devra être
lancée à nouveau. L'état du processus de
mise à jour a été sauvegardé, et
donc freebsd-update ne recommencera pas au
début, mais supprimera les anciens fichiers objet et
bibliothèques partagées. Afin de poursuivre les
opérations, taper la commande suivante:&prompt.root; freebsd-update installEn fonction d'un changement ou non de
numérotation d'une ou plusieurs bibliothèques,
il pourra y avoir deux phases d'installation au lieu de
trois.Tous les logiciels tierce-partie doivent être
maintenant recompilés et réinstallés.
Cela est nécessaire comme certains logiciels peuvent
dépendre de bibliothèques qui ont
été supprimées lors du processus de mise
à jour. La commande ports-mgmt/portupgrade peut
être employée pour automatiser la chose. Les
commandes suivantes peuvent être utilisées pour
initier le processus:&prompt.root; portupgrade -f ruby
&prompt.root; rm /var/db/pkg/pkgdb.db
&prompt.root; portupgrade -f ruby18-bdb
&prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
&prompt.root; portupgrade -afUne fois cela effectué, terminer le processus de
mise à jour avec un dernier appel à
freebsd-update. Taper la commande suivante
pour régler les derniers détails:&prompt.root; freebsd-update installSi le noyau GENERIC a été
utilisé temporairement, il est temps de compiler et
d'installer un nouveau noyau personnalisé suivant la
méthode habituelle.Redémarrer la machine avec la nouvelle version de
&os;. Le processus de mise à jour est
terminé.Comparaison de l'état du systèmeL'utilitaire freebsd-update peut
être utilisé pour comparer l'état du
système &os; installé avec une copie de
confiance. Cette fonctionnalité inspecte la version
actuelle des utilitaires système, des
bibliothèques et des fichiers de configuration. Pour
lancer la comparaison, utiliser la commande suivante:&prompt.root; freebsd-update IDS >> outfile.idsBien que le nom de la commande soit
IDS, elle ne devrait en aucun cas
être considérée comme un système
de détection d'intrusion du type de security/snort. Etant
donné que freebsd-update stocke
des données sur le disque, le risque de modification
des données est évident. Alors que cette
possibilité peut être minimisée en
utilisant le paramétrage
kern.securelevel et en stockant les
données freebsd-update sur un
système de fichiers en lecture seule quand elles ne
sont pas utilisées, une bien meilleure solution
serait de comparer le système avec un disque
sécurisé comme un DVD ou un
disque USB conservé à
l'extérieur.Le système sera analysé, et une liste de
fichiers ainsi que la valeur de leur empreinte
numérique &man.sha256.1;, celle de la version d'origine
et celle de la version actuellement installée, seront
affichés. C'est pour cela que cet affichage est
copié dans le fichier outfile.ids.
L'affichage défile trop rapidement une comparaison
visuelle et remplira rapidement le tampon de la
console.Ces lignes sont également très longues mais
le format de sortie peut être facilement passé
par une analyse syntaxique. Par exemple, pour obtenir une
liste des fichiers qui diffèrent avec ceux de la
version d'origine, utiliser la commande suivante:&prompt.root; cat outfile.ids | awk '{ print $1 }' | more
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.confLa sortie de cette commande a été
tronquée, bien plus de fichiers sont concernés.
Certains de ces fichiers sont naturellement modifiés,
le fichier /etc/passwd a
été modifié en raison de l'ajout
d'utilisateurs au système. Dans certains cas, d'autres
fichiers apparaîtrons, comme les modules du noyau, qui
diffèrent puisque freebsd-update
peut les avoir mis à jour. Pour exclure des fichiers
ou des répertoires spécifiques, ajoutez-les au
paramètre IDSIgnorePaths dans le
fichier /etc/freebsd-update.conf.Ce système peut prendre part à une
méthode de mise à jour élaboré, en
dehors de ce qui a été présenté
précédemment.TomRhodesEcrit par ColinPercivalBasé sur les notes de Portsnap: un outil de mise à jour du catalogue des
logiciels portésMise à jourPortsnapmise à jourLe système de base de &os; dispose également
d'un utilitaire pour la mise à jour du catalogue des
logiciels portés: &man.portsnap.8;. Lors de son
exécution, il se connectera sur un site distant,
contrôlera la clé de sécurité et
téléchargera une nouvelle copie du catalogue des
logiciels portés. La clé est utilisée pour
vérifier l'intégrité de tous les fichiers
téléchargés, s'assurant qu'ils n'ont pas
été modifiés au vol. Pour
récupérer les tout derniers fichiers du catalogue
des logiciels portés, utiliser la commande
suivante:&prompt.root; portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 3 metadata files... done.
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
Applying patches... done.
Fetching 133 new ports or files... done.Cet exemple nous montre que &man.portsnap.8; a trouvé
et contrôlé plusieurs mises à jour pour les
données actuelles du catalogue. Est également
indiqué si l'utilitaire a été
précédemment exécuté, si cela avait
été une première exécution, le
catalogue aurait été tout simplement
téléchargé.Lorsque &man.portsnap.8; termine avec succès une
opération de récupération
(fetch), le catalogue des logiciels
portés et ses mises à jour sont présents
sur le système. A la première exécution de
portsnap vous devez utiliser la commande
extract pour installer les fichiers
téléchargés:&prompt.root; portsnap extract
/usr/ports/.cvsignore
/usr/ports/CHANGES
/usr/ports/COPYRIGHT
/usr/ports/GIDs
/usr/ports/KNOBS
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/Makefile
/usr/ports/Mk/bsd.apache.mk
/usr/ports/Mk/bsd.autotools.mk
/usr/ports/Mk/bsd.cmake.mk
...Pour mettre à jour un catalogue des logiciels
portés déjà installé utilisez la
commande portsnap update:&prompt.root; portsnap updateLe processus est maintenant terminé et les
applications peuvent être installées ou mises
à jour à l'aide du catalogue à jour.Les opérations fetch et
extract ou update peuvent
être exécutées à la suite comme
montré dans l'exemple suivant:&prompt.root; portsnap fetch updateCette commande téléchargera la dernière
version du catalogue des logiciels portés et mettra
à jour votre version locale située dans /usr/ports.Suivre une branche de développement-CURRENT-STABLEIl existe deux branches de développement de FreeBSD:
&os.current; et &os.stable;. Cette section détaillera
un peu chacune d'elles et décrira comment garder à
jour votre système avec chaque arborescence respective.
&os.current; sera tout d'abord traité, suivit de
&os.stable;.Se synchroniser avec la version -CURRENT de &os;En lisant ces lignes, gardez à l'esprit que
&os.current; représente “les tout derniers”
développement de &os;. On attend des utilisateurs
de &os.current; un degré élevé de
compétences techniques, et devraient être
capables de résoudre des problèmes système
compliqués par eux-mêmes. Si vous êtes
nouveau à &os;, pensez à deux fois avant de
l'installer.Qu'est-ce que &os.current;?instantané&os.current; est la toute dernière version des sources
de &os; en cours de développement. Cela inclut des
évolutions en cours, des modifications expérimentales,
et des mécanismes de transition qui feront ou ne feront pas
partie de la prochaine version officielle du logiciel.
Bien que de nombreux développeurs de &os; compilent les
sources de &os.current; quotidiennement, il arrive que
celles-ci ne soient pas compilables pendant une certaine
période de temps. Ces problèmes sont résolus
aussi rapidement que possible, mais que &os.current; soit
à l'origine d'un désastre ou de l'apport d'une nouvelle
fonctionnalité attendue peut parfois dépendre
que du moment auquel vous avez chargé le code
source.Qui a besoin de &os.current;?&os.current; est mis à disposition pour 3
types de personnes:Les membres de la communauté &os; qui travaillent
activement sur une partie de l'arborescence des sources
et pour qui rester constamment à jour est une
nécessité absolue.Les membres de la communauté &os; qui participent
activement aux tests et sont disposés à passer du
temps à résoudre les problèmes pour
garantir que &os.current; reste aussi saine que
possible. Il y a également ceux qui désirent
faire des suggestions dans certains domaines sur les
modifications à faire et la direction
générale que prend &os;, et soumettent des
correctifs pour les implémenter.Ceux qui veulent simplement garder un oeil sur les
évolutions, ou utiliser les dernières sources comme
référence (e.g. pour les lire,
et non pour les utiliser). Ces personnes font parfois
des remarques ou contribuent au code.Qu'est-ce que n'est pas
&os.current;?Un raccourci pour se procurer des pré-versions
parce que vous avez entendu dire qu'il y a de nouvelles
fonctionnalités géniales et que vous voulez
être le premier du coin à les avoir. Etre le
premier à avoir la nouvelle fonctionnalité
signifie être le premier à avoir les nouveaux bogues
également.Une moyen rapide d'avoir des corrections de bogues.
N'importe quelle version de &os.current; apportera
probablement de nouveaux bogues comme elle corrigera
ceux déjà présents.Nous ne le “supportons officiellement”
en aucun cas. Nous faisons du mieux que nous pouvons
pour aider les personnes qui font vraiment partie des
trois groupes “légitimes” à qui s'adresse
&os.current;, mais nous n'avons tout simplement
“pas le temps” de fournir un support
technique. Ce n'est pas parce que nous sommes des
personnes détestables qui n'aiment pas aider les autres
(nous ne ferions pas &os; si tel était le cas), nous ne
pouvons simplement pas répondre à des centaines de
messages par jour et travailler sur
FreeBSD! Entre améliorer &os; et répondre à de
nombreuses questions sur le code expérimental, les
développeurs optent pour le premier choix.Utiliser &os.current;-CURRENTutilisationInscrivez-vous à la &a.current.name; et la &a.svn-src-head.name;.
Ce n'est pas seulement une bonne idée, c'est
indispensable. Si vous n'êtes
pas sur la liste &a.current.name;, vous
ne verrez pas les commentaires qui sont faits sur l'état
courant du système et vous vous retrouverez probablement
confrontés à de nombreux problèmes que
d'autres ont déjà identifiés et
résolus. Encore plus grave, vous manqueriez des
bulletins importants potentiellement critiques pour la bonne
santé de votre système.La liste &a.svn-src-head.name; vous permettra de voir les courriers
de trace des soumissions de toutes les modifications
dès qu'elles sont faites et des informations
pertinentes sur les éventuels effets de bord.Pour vous inscrire à ces listes, ou à
une autre, rendez vous à &a.mailman.lists.link;
et cliquez sur la liste à laquelle vous
désirez vous inscrire. Des instructions sur le
reste de la procédure sont alors données.
Si vous êtes intéressé par le suivi
des modifications appliquées à l'ensemble
de l'arborescence des sources, nous vous recommandons de
vous inscrire à &a.svn-src-all.name;.Récupérez les sources sur un site miroir &os;. Vous pouvez le
faire de deux manières:cvsupcron-CURRENTSynchronisation avec CVSupUtilisez le programme cvsup
avec le fichier supfile
nommé standard-supfile
disponible dans le répertoire /usr/share/examples/cvsup.
+ class='directory'>/usr/share/examples/cvsup.
C'est la méthode recommandée, puisqu'elle
permet de récupérer la totalité
des sources la première fois et par la suite
uniquement ce qui a été modifié.
De nombreuses personnes exécutent
cvsup depuis
cron et maintiennent ainsi
automatiquement à jour leurs sources. Vous devez
personnaliser l'exemple de supfile
précédent, et configurer
cvsup pour
votre environnement.Le fichier d'exemple
standard-supfile est
destiné au suivi d'une branche de
sécurité &os; spécifique et
non pas à celui de &os.current;. Vous
devrez éditer ce fichier et remplacer la
ligne suivante:*default release=cvs tag=RELENG_X_YPar celle-ci:*default release=cvs tag=.Pour une explication détaillée
des étiquettes utilisables, veuillez vous
référer à la section Etiquettes CVS de ce
manuel.-CURRENTSynchroniser avec
CTMUtilisez CTM. Si vous
disposez d'une mauvaise connexion (connexions chères
ou seulement un accès au courrier électronique)
CTM est une bonne
solution. Cependant, c'est une source de problèmes
et peut donner lieu à des fichiers endommagés.
C'est pourquoi cette méthode est rarement
utilisée, ce qui augmente les chances que cela ne
fonctionne pas pendant d'assez longue périodes.
Nous recommandons d'utiliser
CVSup
à tous ceux disposant d'un modem 9600 bps ou
d'une connexion plus rapide.
Si vous récupérez les sources pour compiler
un système opérationnel, et pas simplement
pour les lire, alors récupérez
tout &os.current;, et pas
uniquement certaines portions. La raison de cela est
que diverses parties des sources dépendent de
modifications effectuées ailleurs, et si vous essayez
de compiler juste une partie des source, il est quasiment
certain que vous aurez des problèmes.-CURRENTcompilationAvant de compiler &os.current;, lisez attentivement
le Makefile dans
/usr/src. Vous devriez au moins
la première fois installer un nouveau noyau et recompiler le système, comme
étape nécessaire à votre processus de
mise à jour. La lecture de la &a.current; et du fichier /usr/src/UPDATING vous tiendra
au courant des autres procédures de transition qui
sont parfois nécessaires lorsque nous préparons la
prochaine version.Participez! Si vous utilisez &os.current;, nous
aimerions savoir ce que vous en pensez, tout
particulièrement si vous avez des améliorations
à nous suggérer ou des corrections de bogues
à nous soumettre. Les suggestions accompagnées
de code sont accueillies avec enthousiasme!Se synchroniser avec la version -STABLE de &os;Qu'est-ce que &os.stable;?-STABLE&os.stable; est notre branche de développement à
partir de laquelle sont extraites les versions majeures.
Les modifications sur cette branche se font à une allure
différente, et en supposant généralement
qu'elles ont été tout d'abord testées
sur &os.current;. Cela reste cependant
toujours une branche de développement,
et cela signifie qu'à certains moments, les sources de
&os.stable; pourront être ou pas utilisables pour une
quelconque raison. C'est tout simplement une autre branche
de mise au point, et non pas une ressource pour
l'utilisateur final.Qui a besoin de &os.stable;?Si vous désirez suivre ou contribuer au processus
de développement de FreeBSD, tout particulièrement si
cela a rapport avec la prochaine version de FreeBSD, alors
vous devriez penser à suivre &os.stable;.Bien qu'il soit vrai que les correctifs de sécurité
vont également dans la branche &os.stable;, vous
n'avez pas besoin de suivre
&os.stable; pour cela. Chaque rapport de sécurité
concernant FreeBSD explique comment corriger le problème sur
les versions affectées
Ceci n'est pas tout à fait vrai. Nous
ne pouvons continuer à supporter les anciennes versions de
FreeBSD éternellement, bien que nous les supportions
pendant de nombreuses années. Pour une description
complète de la politique de sécurité
actuelle pour les anciennes versions de FreeBSD, veuillez
consulter http://www.FreeBSD.org/security/.
, et suivre intégralement une branche de développement
juste pour des raisons de sécurité apportera
également de nombreux changements non
désirés.Bien que nous tentons de nous assurer que la branche
&os.stable; soit compilable et constamment stable, cela
ne peut être garanti. De plus, alors que le code est
développé sous &os.current; avant de l'inclure dans
&os.stable;, le nombre de personnes utilisant &os.stable;
est plus nombreux que celui utilisant &os.current;, aussi
il est inévitable que des bogues et des problèmes
pourront parfois apparaître sous &os.stable; alors qu'ils
n'existaient pas sous &os.current;.Pour ces raisons, nous ne recommandons
pas de suivre aveuglément
&os.stable;, et il est tout particulièrement important que
vous ne mettiez pas à jour des serveurs de production
sous &os.stable; sans avoir tout d'abord testé le code
dans votre environnement de travail.Si vous ne disposez pas des ressources pour faire
cela alors nous recommandons que vous utilisiez la version
de FreeBSD la plus récente, et que vous utilisiez le
mécanisme de mise à jour binaire pour passer d'une
version à une autre.Utiliser &os.stable;-STABLEutilisationInscrivez-vous à à la liste &a.stable.name;.
Vous serez tenu au courant des dépendances de
compilation qui peuvent apparaître dans la
branche &os.stable; ou de tout autre problème
demandant une attention particulière. Les
développeurs publieront également des annonces
sur cette liste lorsqu'ils envisagent une correction ou
modification controversée, offrant la possibilité
aux utilisateurs de répondre s'ils ont des questions
à soulever en rapport avec la modification
proposée.Inscrivez-vous à la liste
SVN correspondant à la
branche que vous suivez. Par exemple, si vous suivez la
branche 7-STABLE, inscrivez-vous à la liste
&a.svn-src-stable-7.name;. Cela vous permettra de lire
les courriers de trace des soumissions de toutes les
modifications dès qu'elles sont faites et des
informations pertinentes sur les éventuels effets
de bord.Pour vous inscrire à ces listes, ou à
une autre, rendez vous à &a.mailman.lists.link;
et cliquez sur la liste à laquelle vous
désirez vous inscrire. Des instructions sur le
reste de la procédure sont alors
données. Si vous êtes
intéressé par le suivi des modifications
appliquées à l'ensemble de l'arborescence
des sources, nous vous recommandons de vous inscrire
à &a.svn-src-all.name;.Si vous installez un nouveau système et vous
voulez qu'il utilise le dernier instantané
publié tous les mois à partir de la
branche &os.stable;, consultez la page sur les instantanés
pour plus d'information. D'autre part, vous pouvez
installer la version &os.stable; la plus récente
à partir des sites
miroirs et suivre les instructions ci-dessous
pour mettre à jour votre système avec les
sources &os;stable; les plus récentes.Si vous faites tourner une version précédente
de &os; et que vous désirez mettre à jour via
les sources vous pouvez aisément le faire à partir
d'un site miroir &os;. Cela
peut être fait de deux manières:cvsupcron-STABLESynchronisation avec CVSupUtilisez le programme cvsup
avec le fichier supfile
nommé stable-supfile
disponible dans le répertoire /usr/share/examples/cvsup.
+ class='directory'>/usr/share/examples/cvsup.
C'est la méthode recommandée, puisqu'elle
permet de récupérer la totalité
des sources la première fois et par la suite
uniquement ce qui a été modifié.
De nombreuses personnes exécutent
cvsup depuis
cron et maintiennent ainsi
automatiquement à jour leurs sources. Vous devez
personnaliser l'exemple de supfile
précédent, et configurer
cvsup pour
votre environnement.-STABLESynchroniser avec
CTMUtilisez CTM. Si vous
ne disposez pas d'une connexion Internet rapide et
peu coûteuse, c'est la méthode que vous
devriez penser à utiliser.Avant tout, si vous avez besoin d'un accès rapide
à la demande aux sources et que la bande passante n'est
pas un problème, utilisez
cvsup ou ftp.
Sinon, utilisez CTM.-STABLEcompilationAvant de compiler &os.stable;, lisez attentivement
le Makefile dans
/usr/src. Vous devriez au moins
la première fois installer un nouveau noyau et recompiler le système, comme
étape nécessaire à votre processus de
mise à jour. La lecture de la &a.stable; et du fichier /usr/src/UPDATING vous tiendra
au courant des autres procédures de transition qui
sont parfois nécessaires lorsque nous préparons la
prochaine version.Synchroniser vos sourcesIl existe différentes façons d'utiliser une connexion
Internet (ou le courrier électronique) pour garder à jour
les sources de n'importe quelle partie, ou de l'ensemble,
du projet &os;, selon ce qui vous intéresse. Les
principaux services que nous fournissons sont le
CVS anonyme, CVSup, et CTM.Alors qu'il est possible de mettre à jour seulement
certaines parties de l'arbre des sources, la seule procédure
de mise à jour supportée est celle consistant
à mettre à jour l'intégralité de
l'arborescence et de recompiler les sources des applicatifs de
base—“userland” (i.e., tous les programmes
qui tournent dans l'espace utilisateur, comme ceux des
répertoires /bin et
/sbin) et du noyau. Ne mettre à jour
qu'une partie des sources, uniquement le noyau, ou seul le
“userland” mènera souvent à des
problèmes. Ces problèmes pourront aller d'erreurs de
compilation à des paniques du noyau ou même des
corruptions de données.CVSanonymeCVS anonyme et
CVSup utilisent une méthode de
mise à jour pilotée par le
client—pull. Dans le cas de
CVSup, l'utilisateur (ou une
procédure cron) appelle le programme
cvsup, qui interagit avec un serveur
cvsupd distant, pour mettre à jour vos
fichiers. Les mises à jour que vous recevez sont les plus
récentes, et vous ne les recevez seulement lorsque vous le
désirez. Vous pouvez aisément restreindre vos mises
à jour aux fichiers ou répertoires particuliers
qui vous intéressent. Les mises à jour sont
générées à la volée par le serveur,
en fonction de ce que vous avez déjà et de ce que vous
voulez. CVS anonyme est plus
simpliste que CVSup, car ce n'est
qu'une extension de CVS qui
permet de récupérer des modifications directement
d'une archive CVS distante. Pour cela,
CVSup est bien plus efficace mais
CVS anonyme est plus facile à
utiliser.CTMCTM, à l'inverse, ne compare
pas interactivement les sources dont vous disposez avec celles
qui sont sur l'archive de référence. Au lieu de cela,
une procédure qui identifie les modifications intervenues
depuis qu'elle a été exécutée pour la
dernière fois, est lancée plusieurs fois par jour
sur la machine CTM de référence (maître),
les modifications détectées sont
compressées, affectées d'un numéro de
séquence et encodées pour pouvoir être envoyées
par courrier électronique (en ASCII imprimable uniquement).
Une fois reçus, ces “deltas CTM” peuvent
être passés à l'utilitaire &man.ctm.rmail.1;
qui décodera, contrôlera et appliquera automatiquement
les modifications à l'exemplaire des sources de l'utilisateur.
Cette méthode est beaucoup plus efficace que
CVSup et consomme beaucoup moins de
ressources sur notre serveur, parce que c'est un modèle
piloté par le serveur—push
plutôt que par
l'utilisateur—pull.Il y a, bien sûr, quelques contreparties.
Si vous effacez par inadvertance des parties de votre archive,
CVSup s'en apercevra et vous
reconstruira les parties endommagées.
CTM ne le fera pas, et si vous
effacez des parties de votre l'arborescence des sources
(et que vous n'avez pas fait de sauvegarde) alors vous devrez
repartir de zéro (à partir du plus récent
“delta de base” CVS) et tout reconstituer avec
CTM ou CVS
anonyme, effacer les parties endommagées et
resynchroniser.Recompiler le systèmerecompiler le systèmeUne fois que vous avez synchronisé votre arborescence des
sources avec une version donnée de &os; (&os.stable;,
&os.current;, et ainsi de suite) vous pouvez alors utiliser
cette arborescence des sources pour recompiler le
système.Faites une sauvegardeOn n'insistera jamais assez sur l'importance de faire une
sauvegarde de votre système avant tout
autre chose. Bien qu'il soit facile de “refaire le
monde” (recompiler FreeBSD), si vous suivez ces
instructions, vous ferez inévitablement des erreurs
à un moment ou un autre, ou d'autres feront des erreurs
au niveau de l'arborescence des sources qui empêcheraient
votre système de redémarrer.Assurez-vous que vous avez bien fait une sauvegarde. Ayez
une disquette de maintenance, ou un CD démarrable à portée de la main.
Vous ne l'utiliserez probablement pas, mais prudence est mère
de sûreté!S'abonner à la bonne liste de diffusionliste de diffusionLes branches &os.stable; et &os.current; sont, par
nature, en développement. Les personnes
qui participent à &os; sont des humains, et
des erreurs se produisent occasionnellement.Ces erreurs sont parfois bénignes, provocant
simplement l'affichage d'un nouveau message d'avertissement
par votre système. Elles peuvent aussi être
catastrophiques, et empêcher votre système de
redémarrer ou détruire vos systèmes de fichiers
(ou pire).Quand de tels problèmes se produisent, un avertissement
“heads up” est posté sur la liste de diffusion
appropriée, décrivant la nature du problème et
quels systèmes sont concernés. Un message “all
clear” est posté quand le problème est
résolu.Si vous tentez de suivre &os.stable; ou &os.current; et
que vous ne lisez pas la &a.stable; ou la &a.current;,
vous allez au devant d'ennuis.N'utilisez pas la commande
make worldDe nombreuses anciennes documentations préconisent
d'utiliser la commande make world. Cette
commande n'effectue pas un certain nombre d'étapes
importantes et ne devrait être utilisée que si
vous êtes sûr de ce que vous faites. Dans presque
tout les cas make world n'est pas une bonne
chose à faire, et la procédure décrite
dans la suite de ce document devrait être
utilisée à la place.La méthode générique de mise
à jour du systèmePour mettre à jour votre système, vous
devriez consulter /usr/src/UPDATING pour
toute opération préliminaire nécessaire
en fonction de la version de vos sources et ensuite
utiliser la procédure suivante:&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; shutdown -r nowDans quelques rares cas, il est nécessaire de
lancer un mergemaster -p avant
l'étape buildworld. Ces cas
sont décrits dans le fichier
UPDATING. Généralement,
vous pouvez omettre cette opération si vous ne mettez
pas à jour d'une version majeure de &os; à une
autre.Une fois l'opération
installkernel terminée avec
succès,
vous devrez démarrer en mode mono-utilisateur (en
utilisant par exemple la commande boot -s
à l'invite du chargeur). Exécutez
ensuite:&prompt.root; mount -a -t ufs
&prompt.root; mergemaster -p
&prompt.root; cd /usr/src
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; rebootLisez les explications supplémentairesLa séquence décrite ci-dessus n'est qu'un
court résumé pour vous aider à
démarrer. Vous devriez cependant lire les sections
suivantes afin de comprendre clairement chaque étape,
tout particulièrement si vous désirez utiliser
une configuration du noyau personnalisée.Lire /usr/src/UPDATINGAvant tout autre chose, lisez
/usr/src/UPDATING (ou le fichier
équivalent en fonction de l'endroit où se trouve vos
sources). Ce fichier devrait contenir les informations
importantes au sujet des problèmes que vous pourriez
rencontrer, ou indique l'ordre dans lequel vous devriez
exécuter certaines commandes. Si le fichier
UPDATING contredit quelque chose d'écrit
ici, UPDATING prime sur tout le
reste.La lecture du fichier UPDATING
n'est pas un substitut à l'abonnement à la liste
de diffusion correcte, comme décrit
précédemment. Ces deux prérequis sont
complémentaires, et non pas exclusifs.Contrôler /etc/make.confmake.confContrôlez les fichiers
/usr/share/examples/etc/make.conf
et
/etc/make.conf. Le premier contient
des paramètres par défaut – la plupart
étant placés en commentaires. Pour les utiliser quand
vous recompilez votre système à partir des sources,
rajoutés-les au fichier /etc/make.conf.
Gardez à l'esprit que tout ce que vous ajoutez au fichier
/etc/make.conf est utilisé chaque fois
que vous invoquez la commande make, il est
donc bon de s'assurer que les valeurs par défaut sont
appropriées à votre système.Un utilisateur typique voudra probablement copier
les lignes CFLAGS et
NO_PROFILE se trouvant dans
/usr/share/examples/etc/make.conf vers
/etc/make.conf et les décommenter.Examinez les autres définitions
(COPTFLAGS, NOPORTDOCS
et ainsi de suite) et décidez si elles vous conviennent.Mettre à jour les fichiers dans /etcLe répertoire /etc contient la
plupart des informations de configuration de votre système,
ainsi que les procédures de démarrage. Certaines de ces
procédures changent d'une version à l'autre de
FreeBSD.Certains fichiers de configuration sont également
utilisés en permanence par le système. En particulier
/etc/group.Il est arrivé que la phase d'installation make
installworld ait besoin que certains utilisateurs et groupes
existent. Il y a de fortes chances qu'ils n'aient pas
été définis avant la mise à jour.
C'est une source de problèmes. Dans certains cas
make buildworld contrôlera si ces
utilisateurs ou groupes existent.Un exemple de cela fut l'addition de l'utilisateur
smmsp. Le processus d'installation
échouait quand mtree tentait de créer
/var/spool/clientmqueue.La solution est d'exécuter
&man.mergemaster.8; dans le mode pré-“buildworld”
en ajoutant l'option . Cela effectuera la
comparaison uniquement des fichiers essentiels pour le succès
de la procédure buildworld ou
installworld. Si votre vieille
version de mergemaster ne supporte pas
l'option , utilisez la nouvelle version
présente dans l'arborescence des sources quand vous
l'exécutez pour la première fois:&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -pSi vous êtes particulièrement paranoïaque,
vous pouvez contrôler votre système afin de voir quels
fichiers appartiennent au groupe que vous renommez ou
effacez:&prompt.root; find / -group GID -printaffichera les fichiers appartenant au groupe
GID (qui peut être soit un nom de
groupe ou un identifiant numérique de groupe).Passer en mode mono-utilisateurmode mono-utilisateurIl vaut mieux recompiler le système en mode
mono-utilisateur. En dehors du fait que cela sera
légèrement plus rapide, la réinstallation
va modifier un grand nombre de fichiers systèmes
importants, tous les binaires de base du système, les
bibliothèques, les fichiers d'include et ainsi de suite.
Les modifier sur un système en fonctionnement (en
particulier s'il y a des utilisateurs connectés à
ce moment là), c'est aller au devant de
problèmes.mode multi-utilisateursUne autre méthode consiste à compiler le
système en mode multi-utilisateurs, et passer dans le mode
mono-utilisateur pour l'installation. Si vous désirez
utiliser cette méthode, conservez les étapes suivantes
pour le moment où la compilation sera terminée. Vous
pouvez reporter le passage en mode mono-utilisateur jusqu'à
l'exécution de
installkernel ou
installworld.En tant que super-utilisateur, vous pouvez exécuter la
commande:&prompt.root; shutdown nowsur un système en fonctionnement, pour passer en mode
mono-utilisateur.Ou bien, redémarrer le système, et à
l'invite de démarrage, sélectionnez l'option
single user. Le système démarrera alors
en mode mono-utilisateur. A l'invite de l'interpréteur de
commandes, exécutez alors:&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -aCela effectue une vérification des systèmes
de fichiers, remonte / en mode
lecture/écriture, et monte tous les autres systèmes
de fichiers UFS listés dans le fichier
/etc/fstab, puis active la
pagination.Si votre horloge CMOS est réglée sur l'heure locale
et non pas sur le fuseau GMT (cela est vrai si la sortie
de la commande date ne donne pas l'heure
et le fuseau correct), vous aurez également peut-être
besoin d'exécuter la commande suivante:&prompt.root; adjkerntz -iCela permettra de s'assurer que vos paramètres
de fuseaux horaires sont correctement configurés —
sans cela, vous risquez de faire face, plus tard, à des
problèmes.
Effacer /usr/objAu fur et à mesure que les différentes parties
du système sont recompilées, elles sont
placées dans des répertoires qui (par défaut) sont
sous /usr/obj. Les répertoires sont
agencés comme sous /usr/src.Vous pouvez accélérer le processus make
buildworld, et également vous éviter d'éventuels
problèmes de dépendances en effaçant ce
répertoire.Certains fichiers dans /usr/obj
peuvent avoir l'indicateur immuable positionné (consultez la
page de manuel &man.chflags.1; pour plus d'informations)
qui doit être retiré en premier.&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *Recompiler le système de baseEnregistrer la sortieC'est une bonne idée d'enregistrer la sortie de
&man.make.1; dans un fichier. Si quelque chose se passe
mal, vous aurez une trace des messages d'erreur. Même
si cela ne vous aide pas à diagnostiquer ce qui n'a pas
fonctionné, cela peut aider les autres si vous postez
votre problème sur une des listes de diffusion de
&os;.La méthode la plus aisée pour faire cela est
d'utiliser la commande &man.script.1;, avec en paramètre
le nom du fichier où enregistrer les résultats.
Vous devez faire cela immédiatement juste avant de
recompiler le système, et taper exit
une fois que c'est terminé.&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET… compile, compile, compile …
&prompt.root; exit
Script done, …Si vous le faites, n'enregistrez pas
le résultat dans /tmp.
Ce répertoire peut être vidé au prochain
redémarrage du système. Un meilleur endroit de
sauvegarde est /var/tmp (comme dans l'exemple
précédent) ou dans le répertoire utilisateur
de root.Compiler le nouveau systèmeVous devez être dans le répertoire
/usr/src:&prompt.root; cd /usr/src(à moins, bien sûr, que votre code source ne
soit ailleurs, auquel cas vous devrez aller dans le
répertoire correspondant).makePour recompiler le système, on utilise la commande
&man.make.1;. Cette commande lit ses instructions dans
le fichier Makefile, qui décrit comment
devraient être reconstruits les programmes qui constituent
&os;, dans quel ordre, et ainsi de suite.Le format général de la ligne de commande que
vous taperez sera la suivante:&prompt.root; make -x -DVARIABLEcibleDans cet exemple,
est une
option que vous passez à &man.make.1;. Reportez-vous
à la page de manuel pour un exemple d'options que vous
pouvez passer.
transmet un variable au fichier
Makefile. Le comportement du
Makefile est défini par ces variables.
Ce sont les mêmes variables que l'on trouve dans
/etc/make.conf, et c'est un autre moyen
de les positionner.&prompt.root; make -DNO_PROFILE cibleest une autre manière de dire qu'il ne faut pas compiler
les bibliothèques profilées et correspond à
la ligne:NO_PROFILE= true # Avoid compiling profiled librariesdans /etc/make.conf.cible indique à &man.make.1;
ce que vous voulez faire. Chaque
Makefile définit un certain nombre de
“cibles”, et votre choix de cible détermine ce
qui se passe.Certaines cibles listées dans le fichier
Makefile, ne doivent pas être
employées. Ce sont des étapes intermédiaires
utilisées par le processus de recompilation pour
décomposer les étapes importantes de la recompilation
du système en sous-étapes.La plupart du temps, vous n'aurez pas besoin de passer
de paramètres à &man.make.1;, et votre commande
ressemblera à ceci:&prompt.root; make cibleOù cible sera une des
nombreuses options de compilation. La première cible
devrait toujours être
buildworld.Comme leurs noms l'indiquent,
buildworld reconstruit la nouvelle
arborescence dans /usr/obj, et
installworld, une autre cible, l'installe sur la
machine.Disposer d'options séparées est très utile pour deux raisons. Tout d'abord
cela vous permet de recompiler en toute sûreté en sachant
qu'aucun composant du système actuel ne sera affecté.
La compilation est “autonome”. En raison de
cela vous pouvez exécuter
buildworld sur une machine en mode
multi-utilisateurs sans redouter d'effets fâcheux. Il est
néanmoins recommandé de toujours exécuter
l'étape installworld en mode
mono-utilisateur.En second lieu, cela vous permet d'utiliser des
systèmes montés par NFS pour mettre à
jour plusieurs machines de votre réseau. Si vous avez
trois machines A, B et
C que vous voulez mettre à jour,
exécutez make buildworld et
make installworld sur A.
B et C doivent
ensuite monter par NFS /usr/src
et /usr/obj depuis A,
et vous pouvez alors exécuter
make installworld pour installer le
système recompilé sur B et
C.Bien que la cible world existe
toujours, vous êtes fortement encouragé
à ne pas l'utiliser.Exécutez:&prompt.root; make buildworldIl est possible de passer l'option
à &man.make.1; ce qui lui permettra
d'exécuter plusieurs processus simultanément.
C'est particulièrement utile sur une machine avec plusieurs
processeurs. Cependant, comme la compilation est plus
gourmande en E/S plutôt qu'en CPU, c'est également
utile sur des machines mono-processeur.Typiquement sur une machine mono-processeur, vous
exécuteriez:&prompt.root; make -j4 buildworld&man.make.1; pourra exécuter jusqu'à 4 processus
simultanément. Des constatations empiriques
postées sur les listes de diffusion montrent que c'est
en général ce qui apporte le plus de gain en
performances.Si vous avez une machine multi-processeurs et que vous
avez configuré un noyau SMP, essayez des valeurs entre 6 et
19 et voyez quel bénéfice vous en tirez.Duréecompilation du systèmeduréeDe nombreux facteurs influencent la durée de
compilation, mais les machines récentes devraient
mettrent seulement de une à deux heures
pour compiler l'arborescence &os.stable;,
sans modification ni raccourcis durant le processus.
Une arborescence &os.current; nécessitera un peu plus de
temps.Compiler et installer un nouveau noyaunoyaucompilationPour tirer pleinement parti de votre nouveau système,
vous devrez recompiler le noyau. C'est pratiquement
indispensable, parce que certaines structures mémoires
peuvent avoir changées, et des programmes comme &man.ps.1;
et &man.top.1; ne fonctionneront pas tant que le système
et le noyau n'utilisent pas les mêmes versions de code
source.La manière la plus simple et la plus sûre est de
compiler et installer un noyau basé sur le noyau
GENERIC. Alors que le noyau
GENERIC peut ne pas comporter les pilotes
de périphériques nécessaires pour votre
système, il devrait contenir tout ce qui est
nécessaire pour faire démarrer votre système
en mode mono-utilisateur. C'est une bonne façon de tester
le fonctionnement de votre nouveau système. Après
avoir démarré à partir du noyau
GENERIC et vérifié que
votre système fonctionne vous pouvez alors compiler un nouveau
noyau basé sur votre fichier de configuration normal du
noyau.Sur &os;, il est important
de recompiler le
système avant de compiler un nouveau
noyau.Si vous désirez compiler un noyau personnalisé,
et que vous avez déjà un fichier de
configuration, utilisez juste
KERNCONF=MONNOYAU
comme suit:&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MONNOYAU
&prompt.root; make installkernel KERNCONF=MONNOYAUNotez que si vous avez augmenté la variable
kern.securelevel à une valeur
supérieure à 1 et que vous
avez positionné l'indicateur noschg
ou similaire sur votre noyau, il sera intéressant de passer
en mode mono-utilisateur pour utiliser
installkernel. Sinon vous devriez
être en mesure d'exécuter ces commandes à
partir du mode multi-utilisateur sans problèmes. Voir
la page de manuel de &man.init.8; pour plus de détails
à propos de kern.securelevel et la page
&man.chflags.1; pour des informations sur les différents
indicateurs de fichiers.Redémarrer en mode mono-utilisateurmode mono-utilisateurVous devriez redémarrer en mode mono-utilisateur pour
tester le fonctionnement du nouveau noyau. Pour cela suivez
les instructions de
.Installer les nouveaux binaires systèmeSi vous avez compilé une version de &os; assez
récente pour avoir utilisé
make buildworld alors vous devriez
utiliser maintenant installworld
pour installer les nouveaux binaires système.Lancez:&prompt.root; cd /usr/src
&prompt.root; make installworldSi vous spécifiez des variables sur la
ligne de commande de make buildworld,
vous devez utiliser les mêmes variables avec la commande
make installworld. Cela ne reste
pas forcément vrai pour d'autres options; par exemple,
ne doit jamais être utilisée
avec installworld.Par exemple, si vous exécutez:&prompt.root; make -DNO_PROFILE buildworldvous devrez ensuite installer les résultats avec:&prompt.root; make -DNO_PROFILE installworldsinon il essayera d'installer les bibliothèques
profilées qui n'ont pas été
recompilées à l'étape
make buildworld.Mettre à jour les fichiers non modifiés par
make installworldLa recompilation du système ne mettra pas à
jour certains répertoires (en particulier,
/etc, /var et
/usr) avec les fichiers nouveaux
ou modifiés.La manière la plus simple de mettre à jour
ces fichiers est d'utiliser &man.mergemaster.8;, bien
qu'il soit possible de le faire manuellement si vous le
désirez. Indépendamment de la manière
que vous choisissez, assurez-vous de faire une sauvegarde
du répertoire /etc au cas
où quelque chose se passerait mal.TomRhodesContribution de mergemastermergemasterL'utilitaire &man.mergemaster.8; est une procédure Bourne
qui vous aidera à déterminer les différences entre
vos fichiers de configuration dans le répertoire
/etc, et les fichiers de configuration
dans l'arborescence des sources
/usr/src/etc. C'est la solution
recommandée pour maintenir à jour les fichiers de
configuration du système avec ceux situés
dans l'arborescence des sources.Pour commencer, tapez simplement
mergemaster à l'invite, et observez-le
travailler. mergemaster commencera à
constituer une arborescence temporaire, à partir de
/, et la remplira avec divers fichiers
de configuration. Ces fichiers sont alors comparés avec
ceux actuellement installés sur votre système.
A ce point, les fichiers qui diffèrent seront
affichés dans le format &man.diff.1;, avec le signe
représentant les lignes modifiées
ou ajoutées, et le représentant
les lignes qui seront soit complètement supprimées,
soit remplacées avec une nouvelle ligne.
Voir la page de manuel &man.diff.1; pour plus d'informations
au sujet de la syntaxe &man.diff.1; et comment sont affichées
les différences.&man.mergemaster.8; vous affichera ensuite chaque fichier
présentant des différences, et vous aurez
à ce moment-là le choix de soit supprimer le
nouveau fichier (le fichier temporaire), soit d'installer
le fichier temporaire non modifié, soit de fusionner
le fichier temporaire et le fichier actuellement installé,
soit enfin de revoir les résultats de l'opération
&man.diff.1;.Choisir de supprimer le fichier temporaire indiquera à
&man.mergemaster.8; que nous désirons conserver notre
fichier actuel intacte, et effacera la nouvelle version.
Cette option n'est pas recommandée, à moins
que vous ne voyez aucune raison de modifier le fichier actuel.
Vous pouvez obtenir de l'aide à n'importe quel moment en
tapant ? à l'invite de &man.mergemaster.8;.
Si l'utilisateur choisit de passer un fichier, il sera
présenté à nouveau une fois que tous les
autres fichiers auront été traités.Choisir d'installer un fichier temporaire intact
remplacera le fichier actuel avec le nouveau. Pour la plupart
des fichiers non modifiées, c'est la meilleure option.Choisir de fusionner le fichier, vous affichera un éditeur
de texte, et le contenu des deux fichiers. Vous pouvez
maintenant les fusionner en les visionnant côte
à côte sur l'écran, et en sélectionnant
des parties des deux fichiers pour créer un fichier final.
Quand les fichiers sont comparés côte à
côte, la touche l sélectionnera le
contenu de gauche et la touche r
sélectionnera celui de droite.
Le résultat final sera un fichier constitué des deux
parties, qui peut alors être installé.
Cette option est habituellement utilisée pour les fichiers
où les des paramètres ont été
modifiés par l'utilisateur.Choisir de revoir les résultats de l'opération
&man.diff.1; vous affichera les différences entre fichiers
tout comme la fait &man.mergemaster.8; avant de vous demander
un choix.Après que &man.mergemaster.8; en ait terminé avec
les fichiers système, il vous proposera de nouvelles
opérations. &man.mergemaster.8; vous demandera si vous
désirez reconstruire le fichier des mots de passe
et terminera en vous proposant
de supprimer les fichiers temporaires
restants.Mise à jour manuelleSi vous désirez faire la mise à jour manuellement,
vous ne pouvez cependant pas vous contenter de copier
les fichiers de /usr/src/etc dans
/etc pour que cela fonctionne. Certains
de ces fichiers doivent d'abord être
“installés”.
En effet le répertoire /usr/src/etc
“n'est pas” une copie de ce que devrait contenir
votre répertoire /etc. De plus,
il a des fichiers qui doivent être dans
/etc et qui ne sont pas dans
/usr/src/etc.Si vous utilisez &man.mergemaster.8; (comme recommandé),
vous pouvez passer cette section et aller directement à
la section
suivante.La façon la plus simple de procéder est
d'installer les fichiers dans un nouveau répertoire, puis de
passer en revue les différences.Sauvegardez votre répertoire
/etc actuelBien qu'en principe rien ne sera modifié automatiquement
dans ce répertoire, prudence est mère de
sûreté. Copiez donc votre répertoire
/etc dans un endroit sûr. Quelque
chose du genre:&prompt.root; cp -Rp /etc /etc.oldconviendra; l'option fait une copie
récursive, préserve la date, les
autorisations des fichiers et ainsi de suite.Vous devez créer un ensemble de répertoires
provisoires pour y installer les fichiers du répertoire /etc
et autres. /var/tmp/root est un bon
choix, il y a un certain nombre de sous-répertoires
à créer également:&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distributionCela va créer l'arborescence nécessaire et y
installera les fichiers. Un grand nombre des
sous-répertoires créés dans
/var/tmp/root
sont vides et devront être supprimés.
La façon la plus simple de le faire est:&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/nullCeci supprimera tous les répertoires vides (la sortie
d'erreur standard est redirigée vers
/dev/null pour empêcher les
avertissements à propos des répertoires non
vides)./var/tmp/root contient maintenant
tous les fichiers à installer à l'endroit requis sous
/. Vous devez maintenant examiner chacun
de ces fichiers pour déterminer en quoi ils diffèrent
de vos propres fichiers.Notez que certains des fichiers qui seront installés
dans /var/tmp/root commencent par un
“.”. Au moment où sont écrites ces
lignes, les seuls fichiers concernés sont les fichiers
d'initialisation des interpréteurs de commandes dans
/var/tmp/root/ et
/var/tmp/root/root/, mais il pourrait y
en avoir d'autres (cela dépend de quand vous lirez ces
lignes). Assurez-vous d'utiliser la commande ls
-a pour ne pas les oublier.La manière la plus simple de procéder est
d'utiliser la commande &man.diff.1; pour comparer les deux
fichiers:&prompt.root; diff /etc/shells /var/tmp/root/etc/shellsCela vous indiquera les différences entre votre fichier
/etc/shells et le nouveau fichier
/var/tmp/root//etc/shells. A partir de
là, décidez si vous aller reporter les modifications
que vous y avez apportée ou si vous allez simplement
recopier le nouveau fichier.Donnez au nouveau répertoire racine
(/var/tmp/root) un nom qui inclue une
date, pour pouvoir facilement comparer les différentes
versionsSi vous recompilez fréquemment votre système,
cela signifie que vous devez également souvent
mettre à jour le répertoire /etc,
ce qui peut rapidement devenir une corvée.Vous pouvez accélérer le processus en
conservant une copie du dernier ensemble de fichiers
modifiés que vous avez reportés dans
/etc. La procédure suivante
présente une façon de faire.Recompilez le système comme à
l'accoutumé. Au moment de mettre à jour
/etc et les autre répertoires,
donnez au répertoire cible un nom basé sur la
date du jour. Si vous faisiez cela le 14 février
1998, vous pourriez procéder comme suit:&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distributionReporter les modifications depuis ce répertoire
comme décrit plus haut.Ne supprimez pas le
répertoire /var/tmp/root-19980214
quand vous aurez terminé.Quand vous récupérez la dernière
version des sources et la recompilerez, suivez l'étape
1. Vous aurez alors un nouveau répertoire, qui
pourrait s'appeler /var/tmp/root-19980221
(si vous faites une mise à jour chaque semaine).Vous pouvez maintenant voir les modifications
intervenues d'une semaine à l'autre en utilisant
&man.diff.1; pour afficher les différences entre tous
les fichiers deux répertoires:&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221Généralement, il y aura beaucoup moins de
différences qu'entre
/var/tmp/root-19980221/etc et
/etc. Comme il y a beaucoup
moins de différences, il est beaucoup plus facile
de les reporter dans le répertoire
/etc.Vous pouvez maintenant supprimer le plus ancien
des deux répertoires
/var/tmp/root-*:&prompt.root; rm -rf /var/tmp/root-19980214Répétez l'opération chaque fois que vous devez
reporter des modifications dans
/etc.Vous pouvez utiliser &man.date.1; pour automatiser la
génération des noms de répertoires:&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`RedémarrerVous en avez terminé. Après avoir
vérifié que tout semble être en place, vous
pouvez alors redémarrez votre système. Un simple
&man.shutdown.8; devrait suffire:&prompt.root; shutdown -r nowC'est finiVous devriez maintenant avoir mis à jour avec
succès votre système &os;. Félicitations.Si les choses se sont légèrement mal
passées, il est facile de recompiler un élément
particulier du système. Par exemple, si vous avez
accidentellement effacé /etc/magic
lors de la mise à jour de /etc, la
commande &man.file.1; ne fonctionnerait plus. Dans ce cas,
la solution serait d'exécuter:&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all installQuestionsDois-je refaire le monde à chaque
évolution?Il n'y a pas de réponse toute faite à
cette question, tout dépend de la nature des
évolutions. Par exemple, si vous venez juste
d'exécuter CVSup, et que
les fichiers suivants on été mis à
jour:src/games/cribbage/instr.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkcela ne vaut probablement pas la peine de recompiler
tout le système. Vous pouvez tout simplement aller dans
les sous-répertoires appropriés,
exécuter make all install, et
c'est à peu près tout. Mais s'il y a des
évolutions importantes, par exemple sur
src/lib/libc/stdlib alors vous
devrez soit refaire le monde, ou recompiler au moins
toutes les parties du système qui sont liées
statiquement (de même que tout ce vous pourriez
avoir ajouté qui y serait lié statiquement).C'est à vous de voir. Vous préférerez
peut-être recompiler votre système tous les
quinze jours, et laisser les modifications s'empiler
pendant quinze jours. Ou bien vous préférerez
ne recompiler que ce qui a changé et vous faire
confiance pour tout ce qui en dépend.Et, bien sûr, cela dépend de la
fréquence avec laquelle vous voulez faire vos mises
à jour, et de si vous suivez la branche &os.stable;
ou &os.current;.Ma compilation échoue avec de nombreuses erreurs
“signal 11” (ou tout autre numéro de
signal). Que s'est-il passé?signal 11Cela indique généralement un problème
matériel. (Re)compiler le système est un bon
moyen de mettre votre matériel sous pression, et
mettra souvent en évidence des défaillances
de la mémoire vive. Elles se manifestent normalement
d'elles-mêmes, la compilation échouant
lors de la réception de mystérieux signaux.Un bon indicateur de cet état de fait, est que
vous pouvez relancer la compilation et qu'elle échouera
en un endroit différent.Dans ce cas, vous ne pouvez guère faire autre chose
que d'intervertir les différents composants de votre
matériel pour déterminer lequel est en cause.Puis-je effacer /usr/obj après
avoir fini?Une réponse courte est oui./usr/obj contient tous les
fichiers objets générés à la
compilation. Normalement, une des premières
étapes de make buildworld est de supprimer ce
répertoire et de repartir à zéro.
Dans ce cas, conserver le répertoire
/usr/obj après avoir terminé ne
sert pas à grand chose, alors que vous
économiseriez pas mal d'espace disque (actuellement
environ 340 MO).Cependant, si vous savez ce que vous faites, vous
pouvez faire en sorte que make buildworld
saute cette étape. Cela rendra les compilations
ultérieures plus rapides, puisque la plupart des sources
n'auront pas besoin d'être recompilées.
Le revers de la médaille est que des problèmes
subtils de dépendance peuvent se manifester, provoquant
l'échec de votre compilation de manière
étrange. Cela génère fréquemment
du bruit sur les listes de diffusion de &os;, quand quelqu'un se
plaint que sa mise à jour a échoué, sans
réaliser que c'est parce qu'il a tenté de
brûler les étapes.Une recompilation interrompue peut-elle être
reprise?Tout dépend de jusqu'où vous êtes
aller avant de rencontrer un problème.En général (et ceci n'est
pas une règle absolue) make buildworld
crée de nouveaux exemplaires des outils indispensables
(comme &man.gcc.1; et &man.make.1;) et des bibliothèques
système. Ces outils et bibliothèques sont
ensuite installés. Puis ils sont utilisés pour
se reconstruire eux-mêmes, et installés de nouveau.
L'intégralité du système (y compris
maintenant les programmes utilisateurs classiques, comme
&man.ls.1; ou &man.grep.1;) est alors recompilé avec
les nouveaux fichiers système.Si vous êtes à cette dernière
étape, et que vous le savez (parce que vous avez
consulté les résultats que vous avez
enregistrés) alors vous pouvez (sans trop de risque)
faire:… fix the problem …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN allCela ne détruira pas les résultats du
travail qu'à déjà effectué make
buildworld.Si vous voyez le message:--------------------------------------------------------------
Building everything..
--------------------------------------------------------------dans les comptes-rendus de make buildworld
alors cette façon de procéder est probablement
bonne.Si vous ne voyez pas ce message, ou que vous doutez
de vous, alors prudence est mère de sûreté,
et il vaut mieux tout reprendre depuis le début.Comment puis-je accélérer la compilation
du système?Passez en mode mono-utilisateur.Mettez les répertoires
/usr/src et
/usr/obj sur des systèmes de
fichiers et des disques différents. Si possible,
installez ces disques sur des contrôleurs
différents.Encore mieux, mettez ces systèmes de fichiers
sur plusieurs disques utilisant le système
&man.ccd.4; (pilote de disques
concaténés).Ne compilez pas les bibliothèques profilées
(mettez “NO_PROFILE=true” dans le fichier
/etc/make.conf). Vous n'en
avez certainement pas besoin.Egalement dans /etc/make.conf,
positionnez CFLAGS à quelque
chose comme .
L'optimisation est bien plus
lente, et la différence d'optimisation entre
et est en
général négligeable.
demande au compilateur d'utiliser
des tuyaux à la place de fichiers temporaires, ce
qui économise des accès disque (mais
utilise plus de mémoire).Passez l'option
à &man.make.1; pour permettre l'exécution de
plusieurs processus en parallèle. Cela
améliore généralement les choses, que
vous ayez une machine mono- ou multi-processeurs.Le système de fichiers qui contient
/usr/src peut être monté
(ou remonté) avec l'option .
Cela empêche l'enregistrement des dates d'accès
aux fichiers par le système de fichiers. Vous
n'avez de toute façon probablement pas besoin de cette
information.&prompt.root; mount -u -o noatime /usr/srcCet exemple suppose que
/usr/src constitue à lui
seul un système de fichiers. Si ce n'est pas
le cas (s'il fait partie de
/usr par exemple) vous
devez alors indiquer le point de montage de ce
système de fichiers, et non
/usr/src.Le système de fichiers où se trouve
/usr/obj peut être
monté (ou remonté) avec l'option
. Les écritures sur le
disque se feront alors de façon asynchrone. En
d'autres termes, le programme reprend immédiatement
la main, et l'écriture des données sur le
disque se fait quelques secondes plus tard. Cela
permet le groupement des écritures sur le disque,
et le gain en performance peut être
spectaculaire.Gardez à l'esprit que cette option rend votre
système de fichiers plus fragile. Avec cette
option, les risques ne sont accrus qu'en cas de
coupure d'alimentation, le système de fichiers
soit irrécupérable quand la machine
redémarrera.S'il n'y a que /usr/obj
sur ce système de fichiers, ce n'est alors pas un
problème. Si vous avez d'autres données
importantes sur ce système de fichiers,
assurez-vous que vos sauvegardes soient à jour
avant d'activer cette option.&prompt.root; mount -u -o async /usr/objComme auparavant, si
/usr/obj ne constitue pas un
système de fichiers en soit, remplacez-le dans
l'exemple par le nom du point de montage
approprié.Que faire si quelque chose se passe mal?Soyez absolument sûr que votre environnement
ne contient pas des restes de compilation
précédentes. Cela est plutôt simple:&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandirEn effet, make cleandir
doit vraiment être exécutée
deux fois.Ensuite relancez l'ensemble du processus,
en commençant avec
make buildworld.Si vous avez toujours des problèmes,
envoyez l'erreur et le résultat de la commande
uname -a à la &a.questions;.
Tenez-vous prêt à répondre à d'autres
concernant votre configuration!MikeMeyerContribution de Suivre les mises à jour pour plusieurs machinesNFSinstallation de multiples machinesSi vous avez plusieurs machines dont vous voulez maintenir à
jour l'arborescence des sources, alors faire
télécharger et recompiler à chacune d'entre elles
les sources semble un gaspillage de ressources: espace disque, bande
passante réseau, et cycles CPU. C'est en effet bien le cas,
et la solution est d'avoir une machine qui fait la majeure
partie du travail, pendant que le reste des machines montent ce
travail par NFS. Cette section décrit une façon
de le faire.PréliminairesPremièrement, identifiez un ensemble de machines
qui va utiliser le même ensemble de binaires, que nous
appellerons un ensemble de compilation.
Chaque machine peut avoir un noyau personnalisé, mais
elles exécuteront les mêmes binaires utilisateur du
système de base. Dans cet ensemble de machine, choisissez
une machine qui sera la machine de
compilation. Cela sera la machine sur laquelle
le monde et le noyau seront compilés. Idéalement, cela
devrait être une machine rapide avec un CPU suffisamment
disponible pour exécuter la commande make
buildworld et make buildkernel. Vous voudrez également utiliser
une machine de test, qui testera
les mises à jour logicielles avant d'être utilisées
en production. Cela doit être une
machine que vous pouvez vous permettre d'avoir hors service
pour une longue période. Cela peut être la machine
de compilation, mais cela n'est pas obligatoire.Toutes les machines de cet ensemble de compilation
doivent monter /usr/obj et
/usr/src à partir de la même
machine, et du même point de montage. Idéalement, ces
derniers sont sur deux disques différents sur la machine de
compilation, mais peuvent également être
montés par NFS sur cette machine. Si vous avez plusieurs
ensembles de compilation, /usr/src
devrait être sur une machine de compilation, et monté
par NFS sur les autres.Finalement assurez-vous que
/etc/make.conf et
/etc/src.conf sur toutes les machines
de l'ensemble de compilation sont en accord avec la machine de
compilation. Cela signifie que la machine de compilation doit
compiler toutes les parties du système de base que toute
machine de l'ensemble de compilation va installer.
De plus, chaque machine de compilation devra avoir son nom de
noyau défini avec KERNCONF dans
/etc/make.conf, et la machine de
compilation devrait tous les lister dans
KERNCONF, en listant son noyau en premier.
La machine de compilation doit avoir les fichiers de
configuration des noyaux de chaque machine dans
/usr/src/sys/arch/conf
si elle va compiler leur noyau.Le système de baseMaintenant que tout est configuré, vous êtes
fin prêt pour tout compiler. Compilez le noyau et le monde
sur la machine de compilation comme décrit dans la , mais n'installez rien. La
compilation une fois terminée, allez sur la machine de
test, et installez le noyau que vous venez juste de compiler.
Si la machine monte /usr/src
et /usr/obj via NFS, quand vous
redémarrez en mode mono-utilisateur vous devrez activer le
réseau et monter ces répertoires. La méthode
la plus simple est de démarrer en mode multi-utilisateur,
puis exécutez shutdown now pour passer en
mode mono-utilisateur. Une fois à ce niveau, vous pouvez
installer le nouveau noyau et monde puis exécuter
mergemaster comme vous le feriez
habituellement. Une fois cela effectué, redémarrez
pour retourner en mode multi-utilisateur pour cette
machine.Après que vous soyez certain que tout fonctionne
correctement sur la machine de test, utilisez la même
procédure pour installer le nouvel ensemble logiciel sur
chacune des autres machines de l'ensemble de
compilation.Les logiciels portésLa même idée peut être utilisée
pour le catalogue des logiciels portés. La
première étape critique est de monter
/usr/ports depuis la même machine vers
toutes les machines de l'ensemble de compilation. Vous
pouvez alors configurer correctement
/etc/make.conf pour partager les
archives. Vous devrez faire pointer DISTDIR
sur un répertoire de partage commun dans lequel peut
écrire n'importe quel utilisateur utilisé pour
correspondance de l'utilisateur root par vos
montages NFS. Chaque machine devrait faire pointer
WRKDIRPREFIX sur une répertoire de
compilation local. Et enfin, si vous projetez de compiler et
distribuer des logiciels précompilés, vous
devriez fixer PACKAGES sur un répertoire
similaire à DISTDIR.
Index: projects/xml-tools/fr_FR.ISO8859-1/books/handbook/l10n/chapter.xml
===================================================================
--- projects/xml-tools/fr_FR.ISO8859-1/books/handbook/l10n/chapter.xml (revision 41366)
+++ projects/xml-tools/fr_FR.ISO8859-1/books/handbook/l10n/chapter.xml (revision 41367)
@@ -1,1074 +1,1074 @@
AndreyChernovContribution de Michael C.WuRéécrit par Localisation - Utilisation et configuration de l'I18N/L10N
&trans.a.fonvieille;
SynopsisFreeBSD est un projet à très large audience
avec des utilisateurs et des contributeurs provenant du monde
entier. Ce chapitre discute des fonctions d'internationalisation
et de localisation de FreeBSD qui permettent aux non-anglophones
de travailler. Il y a de nombreux aspects de l'implémentation
i18n au niveau système et application, et quand ce sera possible
nous renverrons le lecteur à des sources de documentation plus
spécifiques.Après la lecture de ce chapitre, vous
connaîtrez:Comment les différentes langues et
“locales” sont codées sur les systèmes
d'exploitation modernes.Comment paramétrer les “locales”
pour votre interpréteur de commandes.Comment configurer la console pour d'autres
langues que l'anglais.Comment employer le système X Window efficacement avec
différentes langues.Où trouver plus d'informations sur
l'écriture d'applications conformes à la norme
i18n.Avant de lire ce chapitre, vous devrez:Savoir comment installer des logiciels tiers
().Les basesQu'est-ce que I18N/L10N?internationalisationlocalisationlocalisationLes développeurs ont raccourci le terme
internationalisation en I18N, en comptant le nombre de lettres
entre la première et la dernière du mot
internationalisation. L10N utilise le même principe,
et provient du mot “localisation”.
Combinées ensemble, les méthodes I18N/L10N, les
protocoles, et les applications conformes
permettent aux utilisateurs d'utiliser la langue de leur
choix.Les applications I18N sont programmées en
utilisant des kits I18N par dessous les bibliothèques.
Cela permet aux développeurs d'écrire un
simple fichier et traduire les menus et textes affichés
dans chaque langue. Nous encourageons fortement les
programmeurs à suivre cette convention.Pourquoi devrais-je employer l'I18N/L10N?I18N/L10N est utilisé à chaque fois que
vous désirez afficher, entrer, ou traiter des données
dans des langues autres que l'anglais.Quelles sont les langues supportées par l'I18N?I18N et L10N ne sont pas spécifiques à FreeBSD.
Actuellement, on peut choisir parmi la plupart des langues
principales du monde, y compris mais pas seulement: le chinois,
l'allemand, le japonais, le coréen, le français,
le russe, le vietnamien et d'autres.Utiliser la localisationDans toute sa splendeur, I18N n'est pas spécifique
à FreeBSD et est une convention. Nous vous encourageons
à aider FreeBSD à suivre cette convention.localeLe paramétrage des “locales” est basé
sur trois termes principaux: le code de la langue, le code du
pays, et le codage des caractères. Les noms de
“locales” sont construits à partir de ces trois
éléments comme suit:CodeLangue_CodePays.CodageCaractèresCodage de la langue et du payscodage des languescodage des paysAfin de localiser un système FreeBSD pour une langue
spécifique (ou tout autre &unix; supportant l'I18N),
l'utilisateur doit déterminer les codes spécifiques
pour le pays et la langue (les codes pays indiquent aux
applications quelle variation d'une langue donnée utiliser).
De plus, les navigateurs Web, les serveurs SMTP/POP, les
serveurs Web... agissent en fonction de ces codes. Ce qui suit
est un exemple de codes langue/pays:Code langue/paysDescriptionen_USAnglais - Etats Unisru_RURusse pour la Russiezh_TWChinois traditionnel pour TaiwanCodage des caractèrescodages des caractèresASCIICertaines langues utilisent les codages non-ASCII sur 8 bits
ou codent des caractères sur plusieurs octets, voir
&man.multibyte.3; pour plus de détails. Les vieilles
applications ne les reconnaissent pas ou les remplacent à
tord par des caractères de contrôle. Les applications
récentes reconnaissent normalement les caractères 8 bits.
En fonction de l'implémentation, les utilisateurs devront
peut être compiler une application avec le support des
caractères sur 8 bits ou multi-octets, ou la configurer
correctement. Afin d'accepter l'usage et le traitement de tels
caractères, le catalogue des logiciels
portés de FreeBSD fournit pour certains programmes une
version dans chaque langue. Référez-vous à
la documentation I18N de chaque logiciel porté
respectif.Spécifiquement, l'utilisateur doit consulter la
documentation de l'application pour décider de comment
la configurer correctement ou comment passer les valeurs
correctes à la procédure configure, au
Makefile ou au compilateur.Quelques éléments à garder à
l'esprit sont:Les jeux de caractères au codage simple
des caractères de la bibliothèque C (voir
&man.multibyte.3;), par exemple ISO8859-1, ISO8859-15, KOI8-R,
et CP437.Les codages étendus ou multi-octets, e.g. EUC,
Big5.Vous pouvez contrôler la liste des jeux de
caractères actuellement actifs dans le
registre
de l'IANA.&os; utilise à la
place un codage des “locales” compatible avec
X11.Applications I18NDans le système de logiciels portés et
pré-compilés de FreeBSD, les applications I18N ont
été nommées avec I18N dans
leur nom pour une identification aisée. Cependant, elles
ne supportent pas toujours la langue désirée.Configurer les “locales”Généralement il est suffisant
d'exporter le nom de la “locale” grâce à
la variable LANG sous l'interpréteur
de commandes utilisé lors de la session. Cela
pourra être fait dans le fichier
~/.login_conf de l'utilisateur ou le
fichier de configuration de l'interpréteur de commandes
de l'utilisateur (~/.profile,
~/.bashrc, ~/.cshrc).
Il n'est pas nécessaire de configurer
toutes les autres variables de localisation
comme LC_CTYPE, LC_CTIME.
Veuillez consulter la documentation de FreeBSD
spécifique à votre langue pour plus d'informations.Vous devrez configurer les deux variables d'environnement
suivantes dans vos fichiers de configuration:POSIXLANG pour la famille de fonctions &posix;
&man.setlocale.3;MIMEMM_CHARSET pour le jeu de caractères MIME
des applicationsCela comprend la configuration de l'interpréteur de
commandes, la configuration spécifique des applications, et
celle de X11.Méthodes de configuration des
“locales”“locales”classe de sessionIl existe deux méthodes pour configurer les
“locales”, elles sont décrites ci-dessous. La
première (celle qui est recommandée) est d'assigner les
variables d'environnement dans une classe de session, et la seconde
est d'ajouter le paramétrage des variables d'environnement
dans les fichiers
d'initialisation de l'interpréteur de commandes du
système.Méthode utilisant les classes de session
utilisateurCette méthode permet d'assigner une fois pour toute
les variables d'environnement nécessaires pour le nom
des “locales” et le jeu de caractères MIME et
cela pour toutes les sessions au lieu de le faire à chaque
nouvelle session par l'intermédiaire de la configuration
des fichiers d'initialisation de l'interpréteur de
commandes. La configuration au
niveau utilisateur peut être faite par
l'utilisateur lui-même et la configuration au niveau
administrateur demande les privilèges de
super-utilisateur.Configuration au niveau utilisateurVoici un exemple minimal d'un fichier
.login_conf dans le répertoire
personnel d'un utilisateur, fichier qui a les deux
variables fixées pour le codage Latin-1:me:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:Chinois traditionnelcodage BIG-5Voici un exemple de fichier
.login_conf qui fixe les variables
pour le chinois traditionnel dans le codage BIG-5. Notez
les nombreuses variables supplémentaires
paramétrées
parce que certains logiciels ne respectent pas les
variables des “locales” correctement pour le
chinois, le japonais, et le coréen.#Users who do not wish to use monetary units or time formats
#of Taiwan can manually change each variable
me:\
:lang=zh_TW.Big5:\
:setenv=LC_ALL=zh_TW.Big:\
:setenv=LC_COLLATE=zh_TW.Big5:\
:setenv=LC_CTYPE=zh_TW.Big5:\
:setenv=LC_MESSAGES=zh_TW.Big5:\
:setenv=LC_MONETARY=zh_TW.Big5:\
:setenv=LC_NUMERIC=zh_TW.Big5:\
:setenv=LC_TIME=zh_TW.Big5:\
:charset=big5:\
:xmodifiers="@im=gcin": #Set gcin as the XIM Input ServerVoir la configuration au
niveau administrateur et la page de manuel
&man.login.conf.5; pour plus de détails.Configuration au niveau administrateurVérifiez que que la classe de session d'utilisateur dans /etc/login.conf
fixe la bonne langue.
Soyez sûr que ces paramètres
apparaissent dans /etc/login.conf:nom_langue:intitulé_comptes:\
:charset=jeu_caractères_MIME:\
:lang=nom_locale:\
:tc=default:Donc si l'on reste sur notre exemple précédent
utilisant le Latin-1, cela donnera quelque chose
comme:german:German Users Accounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:Avant de modifier les classes de session des
utilisateurs, exécutez la commande
suivante:&prompt.root; cap_mkdb /etc/login.confpour rendre visible à
l'intégralité du système la
nouvelle configuration du fichier
/etc/login.conf.Modifier les classes de session avec &man.vipw.8;vipwUtilisez vipw pour ajouter de
nouveaux utilisateurs, et créer une entrée
ressemblant à celle-ci:utilisateur:mot_de_passe:1111:11:langue:0:0:Nom d'utilisateur:/home/utilisateur:/bin/shModifier les classes de session avec &man.adduser.8;adduserclasse de sessionUtilisez adduser pour ajouter de
nouveaux utilisateurs, et faites ce qui suit:Paramétrez defaultclass =
langue dans
/etc/adduser.conf. Gardez à
l'esprit que vous devez dans ce cas entrer une classe par
default (défaut) pour tous les
utilisateurs d'autres langues.Une variante est d'entrer la langue
spécifiée à chaque fois que
&man.adduser.8; affiche
Enter login class: default []:.Une autre alternative est d'employer ce qui suit
pour chaque utilisateur de langue différente que vous
désirez ajouter:&prompt.root; adduser -class langueModifier les classes de session avec &man.pw.8;pwSi vous utilisez &man.pw.8; pour ajouter de nouveaux
utilisateurs, appelez la fonction de cette
manière:&prompt.root; pw useradd nom_utilisateur -L langueMéthode utilisant les fichiers d'initialisation de
l'interpréteur de commandesCette méthode n'est pas recommandée parce qu'elle
demande une configuration différente pour chaque
interpréteur de commandes choisi. Utilisez la méthode utilisant les classes
de session utilisateur à la place.MIME“locales”Pour ajouter le nom de la “locale” et le jeu
de caractère MIME, positionnez juste les deux variables
d'environnement comme montré ci-dessous dans les fichiers
d'initialisation de l'interpréteur de commandes
/etc/profile et/ou
/etc/csh.login. Nous utiliserons la
langue allemande comme exemple ci-dessous:Dans /etc/profile:LANG=de_DE.ISO8859-1; export LANGMM_CHARSET=ISO-8859-1; export MM_CHARSETOu dans /etc/csh.login:setenv LANG de_DE.ISO8859-1setenv MM_CHARSET ISO-8859-1Alternativement, vous pouvez ajouter les instructions
précédentes à
/usr/share/skel/dot.profile (similaire
à ce qui fut utilisé dans
/etc/profile ci-dessus), ou
/usr/share/skel/dot.login (similaire
à ce qui fut utilisé dans
/etc/csh.login ci-dessus).Pour X11:Dans $HOME/.xinitrc:LANG=de_DE.ISO8859-1; export LANGOu:setenv LANG de_DE.ISO8859-1En fonction de votre interpréteur de commandes (vois
ci-dessus).Configuration de la consolePour tous les ensembles de jeu de caractères
utilisés par la bibliothèque C,
positionnez les bonnes polices de caractères pour la console
dans /etc/rc.conf pour la langue en
question avec:font8x16=nom_police
font8x14=nom_police
font8x8=nom_policeLe nom_police provient ici du
répertoire /usr/share/syscons/fonts,
sans le suffixe .fnt.sysinstalltable de claviertable de correspondance d'affichageVérifiez également que vous avez
paramétré les bonnes tables de clavier et de
correspondance d'affichage pour votre jeu de caractères C par
l'intermédiaire de sysinstall (/stand/sysinstall sous les versions de &os; antérieures à la 5.2).
Une fois dans sysinstall, sélectionnez
Configure, puis
Console.
Alternativement, vous pouvez ajouter ce qui suit au fichier
/etc/rc.conf:scrnmap=table_correspondance_affichage
keymap=nom_table_clavier
keychange="numéro_touche_fonction séquence"La table_correspondance_affichage
ici provient du répertoire
/usr/share/syscons/scrnmaps sans le suffixe
.scm. Une table de correspondance
d'affichage avec une police de correspondance est
généralement nécessaire pour passer de 8
à 9 bits la matrice de caractère d'une carte VGA
dans une zone pseudo-graphique, i.e., déplacer les lettres en
dehors de cette zone si la police d'écran utilise une colonne de
8 bits.Si vous avez le “daemon”
moused activé par défaut
grâce à la ligne suivante dans votre
/etc/rc.conf:moused_enable="YES"alors lisez les informations sur le curseur de souris dans
le paragraphe suivant.mousedPar défaut le curseur du pilote &man.syscons.4; de
la console occupe la zone d'adresses 0xd0-0xd3 dans le jeu de
caractères.
Si votre langue utilise cette zone, vous devez déplacer la zone
du curseur en dehors. Pour effectuer cela sous &os;, ajoutez
la ligne suivante dans /etc/rc.conf:mousechar_start=3Le nom_table_clavier provient ici
du répertoire /usr/share/syscons/keymaps
sans le suffixe .kbd. Si vous n'êtes
pas sûr de la table de clavier à utiliser, vous pouvez
employer &man.kbdmap.1; pour tester la table sans avoir à
redémarrer.Le keychange est généralement
utilisé pour programmer les touches de fonction pour
correspondre avec le type de terminal sélectionné
parce que les séquences de touches de fonction ne peuvent
être définies dans la table de clavier.Soyez également sûr de configurer le type
de console correct dans le fichier /etc/ttys
pour toutes les entrées ttyv*. Les
correspondances actuellement pré-définies sont:Jeu de caractèresType de terminalISO8859-1 ou ISO8859-15cons25l1ISO8859-2cons25l2ISO8859-7cons25l7KOI8-Rcons25rKOI8-Ucons25uCP437 (jeu de caractères VGA par
défaut)cons25US-ASCIIcons25wPour les langues au caractères étendus ou
multi-octets, utilisez le logiciel porté adéquat
de votre répertoire
/usr/ports/langue.
Certains logiciels apparaissent comme utilisant la console alors
que le système lui voit un vtty série, par
conséquent vous devez réserver suffisamment de vttys
pour X11 et la console pseudo-série. Voici une liste partielle
des applications pour utiliser d'autres langues sous la
console:LangueEmplacementChinois traditionnel (BIG-5)chinese/big5conJaponaisjapanese/kon2-16dot ou
japanese/mule_freewnnCoréenkorean/hanConfiguration d'X11Bien qu'X11 ne fasse pas partie du projet FreeBSD, nous
avons inclus quelques éléments d'informations
ici pour les utilisateurs de FreeBSD. Pour plus de détails,
référez-vous au site
Web d'&xorg; ou à celui du serveur X11 que vous
utilisez.Dans le fichier ~/.Xresources, vous
pouvez en plus adapter les paramètres I18N spécifiques
des applications (e.g., polices de caractères, menus,
etc...).Affichage des polices de caractèresserveur de polices de caractères
True Type pour X11Installez le serveur &xorg;
(x11-servers/xorg-server) ou le
serveur &xfree86; (x11-servers/XFree86-4-Server),
puis installez les polices de caractères &truetype;
de la langue concernée.
Un paramétrage correct des “locales” devrait vous
permettre de visualiser les menus dans la langue que vous avez
choisie etc.Saisie de caractères non-anglaisX11 Input Method (XIM)Le protocole “X11 Input Method” - méthode de
saisie pour X11 (XIM) est un nouveau standard pour tous les
clients X11. Toutes les applications X11 devraient être
écrites en tant que clients XIM qui reçoivent les
entrées de serveurs de saisie XIM. Il existe différents
serveurs XIM disponibles pour différentes langues.Configuration de l'imprimanteCertains jeux de caractères de la bibliothèque C
sont généralement codés en dur dans les
imprimantes. Les jeux de caractères étendus ou
multi-octets demandent une configuration spéciale et nous
recommandons d'utiliser apsfilter.
Vous pouvez également convertir le document en format &postscript;
ou PDF en utilisant des convertisseurs spécifiques à la
langue.Noyau et systèmes de fichiersLe système de fichiers rapide de FreeBSD (FFS) est complètement
sur 8 bits, et peut donc être utilisé avec n'importe quel
jeu de caractères de la bibliothèque C (voir
&man.multibyte.3;), mais il n'y a aucun jeu de caractères de
stocké dans le système de fichiers; i.e., c'est du 8
bits brut et le système ne sait rien sur l'ordre du codage.
Officiellement, le FFS ne supporte encore aucun jeu de
caractères étendus ou multi-octets.
Cependant, certains jeux de caractères étendus ou
multi-octets disposent de correctifs indépendants
pour FFS activant un tel support. Ce sont seulement des
solutions temporaires non portables ou des
“bidouilles” et nous avons décidé
de ne pas les inclure dans l'arborescence des sources.
Référez-vous aux sites Internet des langues respectives
pour plus d'informations et pour les correctifs.DOSUnicodeLe support FreeBSD du système fichiers &ms-dos; a la
capacité paramétrable de faire la conversion entre
jeux de caractères &ms-dos;, Unicode et les jeux de
caractères choisis pour le système de fichiers FreeBSD.
Voir la page de manuel &man.mount.msdosfs.8; pour plus de
détails.Compiler des programmes I18NDe nombreux logiciels ont été portés
pour FreeBSD avec le support I18N. Certains d'entre eux sont
identifiés avec -I18N dans le nom du logiciel porté.
Ces derniers et beaucoup d'autres programmes intègrent le
support I18N et ne nécessitent aucune considération
spéciale.MySQLCependant, certaines applications comme
MySQL nécessitent d'avoir un fichier
Makefile configuré avec le jeu de
caractères spécifiques. Ceci est en
général fait dans le Makefile
ou effectué en passant une valeur à configure dans les
sources.Localiser FreeBSD pour des langues spécifiquesAndreyChernovContribution originelle de Russe (codage KOI8-R)localisationrussePour plus d'informations sur le codage KOI8-R, consultez les
Références KOI8-R
(Jeu de caractères russes pour Internet).Configuration des “locales”Ajoutez les lignes suivantes dans votre fichier
~/.login_conf:me:My Account:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:Voir plus haut dans ce chapitre pour des exemples de
configuration des “locales”.Configuration de la consoleAjoutez la ligne suivante à votre fichier
/etc/rc.conf:mousechar_start=3Ajoutez également les paramétres suivants dans
/etc/rc.conf:keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"Pour chaque entrée ttyv*
dans /etc/ttys, utilisez
cons25r comme type de terminal.Voir plus haut dans ce chapitre pour des exemples de
configuration de la
console.Configuration de l'imprimanteimprimantesComme la plupart des imprimantes avec un jeu de
caractères russes ont un “code page”
matériel CP866, un filtre de sortie spécial pour
la conversion du KOI8-R vers le CP866 est nécessaire.
Un tel filtre est installé par défaut sous
/usr/libexec/lpr/ru/koi2alt.
Une entrée de /etc/printcap pour
imprimante russe devra ressembler à:lp|Russian local line printer:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:Consultez la page de manuel &man.printcap.5; pour plus de
détails.Système de fichiers &ms-dos; et noms de fichiers
russesL'exemple suivant d'entrée du fichier &man.fstab.5;
active le support des noms de fichiers russes sur les
systèmes de fichiers &ms-dos; montés:/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0L'option la “locale”
utilisée, et fixe la table de
conversion de caractères. Pour utiliser l'option
assurez-vous de monter /usr avant la partition &ms-dos;,
+ class='directory'>/usr avant la partition &ms-dos;,
car en effet les tables de conversion sont situées
dans le répertoire /usr/libdata/msdosfs. Pour plus
+ class='directory'>/usr/libdata/msdosfs. Pour plus
d'informations, consultez la page de manuel
&man.mount.msdosfs.8;.Configuration de X11Effectuez tout d'abord la configuration des
“locales”
comme décrit plus haut dans ce chapitre.Si vous utilisez &xorg;,
installez le paquetage x11-fonts/xorg-fonts-cyrillic.Contrôlez la section "Files"
de votre fichier /etc/X11/xorg.conf.
Les lignes suivantes doivent être ajoutées
avant toute autre entrée
FontPath:FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"Si vous utilisez un mode vidéo haute
résolution, intervertissez les lignes 75 dpi et 100
dpi.Consultez le catalogue des logiciels portés
pour plus de fontes cyrilliques.Pour mettre en service un clavier russe, ajoutez ce
qui suit à la section "Keyboard"
de votre fichier xorg.conf:Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:toggle"Vérifiez également que
XkbDisable est désactivé (mis en
commentaire).Pour l'option grp:caps_toggle le passage de russe à latin se fera par
l'intermédiaire de Right Alt,
pour grp:ctrl_shift_toggle, le
passage se fera à l'aide de la séquence
CtrlShift.
L'ancienne fonctionnalitée de la touche
CapsLock est toujours disponible via
ShiftCapsLock
(en mode latin uniquement). Pour l'option
grp:toggle le passage du russe au
latin se fera par l'intermédiaire de la touche
Right Alt. L'option
grp:caps_toggle ne fonctionne pas
sous &xorg; pour une raison
inconnue.Si vous disposez de touches “&windows;” sur
votre clavier, et que vous constatez que certaines touches
non-alphabétiques ne sont pas appariées
correctement en mode russe, ajoutez la ligne suivante à
votre fichier xorg.conf:Option "XkbVariant" ",winkeys"Le clavier russe XKB peut ne pas fonctionner avec
des applications non localisées.localisées. Pour être un minimum
localisée, une application devrait appeler la
fonction XtSetLanguageProc (NULL, NULL,
NULL); assez tôt dans le
programme.Consulter KOI8-R pour X
Window pour plus d'instructions sur la
localisation des applications pour X11.Localisation du chinois traditionnel pour Taiwanlocalisationchinois traditionnelLe projet FreeBSD taiwanais dispose d'un guide
sur FreeBSD en chinois à l'adresse
utilisant de nombreuses applications du répertoire
chinese du catalogue des logiciels portés.
Le rédacteur du guide sur &os; en chinois est Shen
Chuan-Hsing
statue@freebsd.sinica.edu.tw.Chuan-Hsing Shen statue@freebsd.sinica.edu.tw a
créé la collection FreeBSD chinoise
(CFC) de logiciels en utilisant le document
zh-L10N-tut taiwanais. Les logiciels
pré-compilés et les fichiers de procédures
sont disponibles à l'adresse .Localisation pour la langue allemande (valable également
pour tous les langues respectant le standard ISO 8859-1)localisationallemandSlaven Rezic eserte@cs.tu-berlin.de a
rédigé un guide sur l'utilisation des
“umlauts” sur une machine FreeBSD. Le guide est
écrit en allemand et est disponible sur .Localisation pour le japonais et le coréenlocalisationjaponaiselocalisationcoréennePour le japonais, référez-vous à
,
et pour le coréen à .Documentation FreeBSD dans d'autres langues que
l'anglaisCertains contributeurs à FreeBSD ont traduit
des parties de la documentation FreeBSD dans d'autres langues.
Les traductions sont disponibles grâce à
des liens sur le site
principal ou dans
/usr/share/doc.
Index: projects/xml-tools/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.xml
===================================================================
--- projects/xml-tools/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.xml (revision 41366)
+++ projects/xml-tools/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.xml (revision 41367)
@@ -1,3932 +1,3932 @@
JimMockRestructuré et en partie mis à jour
par Brian N.HandyContribution originelle de RichMurpheyCompatibilité binaire avec Linux
&trans.a.fonvieille;
Synopsiscompatibilité binaire avec Linuxcompatibilité binaireLinux&os; fournit une compatibilité binaire avec plusieurs autres
systèmes d'exploitation du type &unix;, y compris Linux.
A ce point, vous devez vous demander pourquoi exactement
&os; a besoin d'être capable d'exécuter des binaires Linux?
La réponse à cette question est très simple. De
nombreuses entreprises et de nombreux développeurs ne
développent que pour Linux, puisque que c'est la dernière
chose “à la mode” dans le monde de l'informatique.
Cela ne laisse aux utilisateurs de &os; que la possibilité
de réclamer auprès des ces mêmes entreprises
et développeurs des versions native pour &os; de leurs
applications. Le problème est, que la plupart de ces
entreprises ne réalisent pas vraiment combien de personnes
utiliseraient leur produit si il y aurait une version pour &os;
également, et la plupart continuent de développer uniquement
pour Linux. Donc que doit faire un utilisateur de &os;?
C'est là que la compatibilité binaire avec Linux entre en
scène.En bref, la compatibilité permet aux utilisateurs de
&os; d'exécuter environ 90% des applications Linux
sans aucune modification. Cela inclus des applications
comme &staroffice;,
la version Linux de &netscape;,
&adobe; &acrobat;,
&realplayer;,
VMware,
&oracle;,
&wordperfect;, Doom,
Quake, et plus. On rapporte
également que dans certaines situations, les binaires Linux
sont plus performants sous &os; que sous Linux.Il existe cependant certaines caractéristiques
spécifiques à Linux qui ne sont pas
supportées sous &os;. Les binaires Linux ne
fonctionneront pas sous &os; s'ils utilisent massivement
des appels
&i386; spécifiques, comme activation du mode virtuel
8086.Après la lecture de ce chapitre, vous connaîtrez:Comment activer la compatibilité binaire avec
Linux sur votre système.Comment installer des bibliothèques partagées Linux
supplémentaires.Comment installer des application Linux sur votre
système &os;.Les détails de l'implémentation de la
compatibilité Linux sous &os;.Avant de lire ce chapitre, vous devrez:Savoir comment installer des logiciels tiers
().InstallationKLD (kernel loadable object)La compatibilité binaire avec Linux n'est pas
activée par défaut. La manière la plus simple
pour activer cette fonctionnalité est de charger le KLD
linux (Kernel LoaDable
object—objet chargeable par le noyau, ce que l'on
nomme couramment un module). Vous pouvez charger ce module
en tapant ce qui suit sous l'utilisateur
root:&prompt.root; kldload linuxSi vous désirez que la compatibilité Linux soit
toujours activée, alors vous devrez ajouter la ligne
suivante au fichier /etc/rc.conf:linux_enable="YES"La commande &man.kldstat.8; peut être utilisée
pour vérifier que le KLD est chargé:&prompt.user; kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.kooptions du noyauLINUXSi pour quelques raisons vous ne voulez ou pouvez charger le
KLD, alors vous pouvez lier statiquement la compatibilité
binaire Linux dans votre noyau en ajoutant options
COMPAT_LINUX à votre fichier de configuration du noyau.
Puis installez votre noyau comme décrit dans la
.Installer les bibliothèques LinuxLinuxinstaller les bibliothèques LinuxCela peut être fait de deux manières, soit
en utilisant le logiciel porté
linux_base, soit
en les installant à la main.Installation à l'aide du logiciel porté
linux_basecatalogue des logiciels
portésC'est de loin la méthode la plus simple pour
installer les bibliothèques. La procédure est
juste identique à l'installation d'un autre logiciel
porté à partir du
catalogue
des logiciels portés.
Faites ce qui suit:&prompt.root; cd /usr/ports/emulators/linux_base-fc4
&prompt.root; make install distcleanLa compatibilité binaire Linux devrait maintenant
fonctionner. Certains programmes pourront se plaindre de
versions mineures incorrectes de certaines bibliothèques
systèmes. Cela semble, en général, ne pas
vraiment être un problème.Il peut y avoir de multiples versions disponibles
du logiciel porté emulators/linux_base, correspondant
à différentes distributions et versions de Linux.
Vous devez installez la version la plus proche de ce que
nécessite les applications Linux que vous désirez
installer.Installer les bibliothèques à la mainSi vous n'avez pas le catalogue des logiciels
portés installé, vous pouvez à la
place installer les bibliothèques à la main.
Il vous faudra les bibliothèques partagées
Linux dont à besoin le programme et l'éditeur
de lien dynamiques. Vous devrez également
créer un répertoire racine
“masquant” (“shadow root”),
/compat/linux, pour les
bibliothèques Linux sur votre système &os;.
Toute bibliothèque partagée ouverte par les
programmes Linux exécutés sous &os; iront d'abord voir
dans cette arborescence. Ainsi, si un programme Linux
charge, par exemple, /lib/libc.so,
&os; essayera d'abord d'ouvrir
/compat/linux/lib/libc.so, puis si
cette bibliothèque n'existe pas,
/lib/libc.so. Les bibliothèques
partagées doivent donc être installées
sous l'arborescence /compat/linux/lib
plutôt que sous les chemins d'accès
mentionnés par la commande Linux
ld.so.Généralement, vous ne devrez cherchez à
savoir de quelles bibliothèques partagées
dépendent les binaires Linux que les premières
fois que vous installerez des programmes Linux sur votre
système &os;. Au bout d'un moment, vous disposerez
d'un jeu suffisant de bibliothèques partagées
Linux sur votre système pour être en mesure
d'exécuter les binaires Linux nouvellement
importés sans effort supplémentaire.Comment installer des bibliothèques
partagées supplémentairesbibliothèques
partagéesQue faire si vous avez installé le logiciel
porté linux_base et que votre
application se plaint toujours qu'il lui manque des
bibliothèques partagées?
Comment savoir quelles bibliothèques partagées
ont besoin les binaires Linux, et où se les
procurer? Il a habituellement deux possibilités
(pour suivre les instructions ci-dessous, vous devrez
être en session sous le compte super-utilisateur
root).Si vous avez accès à un système
Linux, déterminez de quelles bibliothèques
partagées l'application a besoin, et copiez-les sur
votre système &os;. Soit l'exemple suivant:Supposons que vous veniez de télécharger
le binaire Linux de Doom,
et que vous l'avez installé sur un système
Linux. Vous pouvez alors vérifier de quelles
bibliothèques partagées il a besoin pour
fonctionner avec la commande
ldd linuxdoom:&prompt.user; ldd linuxdoom
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29liens symboliquesVous devrez récupérer tous les
fichiers mentionnés dans la dernière colonne,
et les installer sous /compat/linux,
en utilisant les noms de la première colonne comme
liens symboliques qui pointent dessus. Cela signifie
que vous aurez éventuellement les fichiers suivants
sur votre système &os;:/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Remarquez que si vous avez déjà
une bibliothèque partagée de même
numéro de version majeure que celle indiquée
par la première colonne du résultat
de la commande ldd, il est inutile
de copier le fichier donné par la dernière
colonne sur votre système, celui que vous
avez déjà devrait suffire.
Il est cependant recommandé de recopier
malgré tout la bibliothèque partagée
si c'est une version récente.
Vous pouvez supprimer l'ancienne version, du moment
que le lien symbolique pointe sur la nouvelle. Par
exemple, si vous avez les bibliothèques suivantes
sur votre système:/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -> libc.so.4.6.27et que vous avez un nouveau binaire qui
d'après le résultat de la commande
ldd semble avoir besoin d'une
version plus récente:libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29Si vous n'avez qu'une ou deux versions de retard
sur le dernier indice, alors ne vous souciez pas
d'installer la version
/lib/libc.so.4.6.29 plus
récente, parce que le programme devrait fonctionner
sans problème avec une version
légèrement antérieure.
Vous pouvez néanmoins décider de remplacer
libc.so, ce qui devrait vous
donner quelque chose comme:/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Le mécanisme de lien symbolique n'est
nécessaire que pour les binaires Linux.
L'éditeur de liens dynamiques de &os;
se charge lui-même de trouver les numéros
de versions majeures adéquats et vous
n'avez pas à vous en préoccuper.
Installer des binaires Linux ELFLinuxbinaires ELFUne étape supplémentaire est parfois
nécessaire pour les binaires ELF: le
“marquage”. Si vous tentez d'exécuter un
binaire ELF non marqué, vous obtiendrez un message
d'erreur ressemblant à ce qui suit:&prompt.user; ./mon-binaire-elf-linux
ELF binary type not known
AbortPour que le noyau &os; puisse distinguer un binaire ELF
&os; d'un binaire Linux, vous devez employer l'utilitaire
&man.brandelf.1;:&prompt.user; brandelf -t Linux mon-binaire-elf-linuxoutils GNULes outils GNU incorporent désormais automatiquement
les marques nécessaires dans les binaires ELF, vous
aurez donc de moins en moins besoin de passer par cette
étape à l'avenir.Configurer le résolveur de noms de domainesSi le DNS ne fonctionne pas, ou si vous avez les
messages:resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keywordVous devrez configurer un fichier
/compat/linux/etc/host.conf
contenant:order hosts, bind
multi onOù l'ordre ci-dessus spécifie qu'il faut tout
d'abord regarder dans le fichier /etc/hosts
puis interroger le DNS. Quand le fichier
/compat/linux/etc/host.conf n'existe pas,
les applications Linux trouvent le fichier
/etc/host.conf de &os; et se plaignent de
sa syntaxe &os; incompatible. Supprimez
bind si vous n'avez pas configuré de
serveur de noms avec le fichier
/etc/resolv.conf.BorisHollasMis à jour pour &mathematica; 5.X par Installer &mathematica;applicationsMathematicaCe document décrit l'installation de la version Linux
de &mathematica; 5.X sur un
système &os;.La version Linux de &mathematica;
ou la version &mathematica; for Students
peut être commandée directement auprès de
Wolfram à l'adresse
.Utiliser l'installeur &mathematica;En premier lieu vous devez indiquer à &os;
que les binaires Linux de
&mathematica; utilisent l'ABI
Linux. La méthode la plus simple pour y parvenir est
le marquage par défaut des binaires ELF non marqués
comme étant des binaires Linux, ce marquage se faisant
avec la commande:&prompt.root; sysctl kern.fallback_elf_brand=3Avec cela &os; supposera que les binaires ELF non
marqués sont des binaires Linux, et donc vous devriez
être en mesure d'exécuter le programme d'installation
directement depuis le CDROM.Copiez ensuite sur votre disque dur le fichier
MathInstaller:&prompt.root; mount /cdrom
&prompt.root; cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/et dans ce fichier, remplacez /bin/sh
sur la première ligne par
/compat/linux/bin/sh. Cela permet de
garantir que l'installeur est exécuté par la
version Linux de &man.sh.1;. Ensuite, remplacez toutes les
occurrences de Linux) par
FreeBSD) à l'aide d'un
éditeur de texte ou la procédure proposée
dans la section suivante. Cela indique à l'installeur
&mathematica;, qui fait appel
à la commande uname -s pour
déterminer le système d'exploitation, de traiter
&os; comme un système d'exploitation de type Linux.
Lancer maintenant la commande MathInstaller
procédera à l'installation de
&mathematica;.Modifier les exécutables &mathematica;Les procédures que
&mathematica; a créé
lors de l'installation doivent être modifiées
avant que vous ne puissiez les utiliser. Si vous avez choisi
/usr/local/bin comme
répertoires pour les exécutables
&mathematica;, vous trouverez alors
dans ce répertoire des liens symboliques vers les
fichiers nommés math,
mathematica,
Mathematica, et
MathKernel. Dans chacun d'entre eux,
remplacez Linux) par
FreeBSD) avec un éditeur de texte ou
la procédure suivante:#!/bin/sh
cd /usr/local/bin
for i in math mathematica Mathematica MathKernel
do sed 's/Linux)/FreeBSD)/g' $i > $i.tmp
sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i
rm $i.tmp
chmod a+x $i
doneObtenir votre mot de passe pour &mathematica;Ethernetadresse MACQuand vous lancez &mathematica;
pour la première fois, un mot de passe vous sera
demandé. Si vous n'avez pas encore
récupéré votre mot de passe auprès
de Wolfram, lancez le programme mathinfo
présent dans le répertoire d'installation afin
d'obtenir l'identifiant de votre machine. Cet
identifiant de machine est basé uniquement sur
l'adresse MAC de votre première carte Ethernet, vous ne
pouvez donc pas utiliser votre copie de
&mathematica; sur une machine
différente.Quand vous vous enregistrez auprès de Wolfram,
par courrier électronique, téléphone, ou
fax, vous leur communiquerez l'“identifiant” de la
machine et ils vous donneront en réponse le mot
de passe correspondant qui a la forme de plusieurs groupes
de nombres.Exécuter l'interface de &mathematica; via le
réseau&mathematica; utilise des polices
de caractères spécifiques pour afficher des
caractères qui ne sont pas présents dans
l'ensemble standard de polices (caractère
intégrale, somme, lettres grecques, etc.).
Le protocole X a besoin que ces polices
de caractères soient installées
localement. Cela signifie que vous devrez
copier sur votre machine locale ces polices à partir du
CDROM ou d'une machine avec
&mathematica; installé. Ces
polices sont normalement stockées dans
/cdrom/Unix/Files/SystemFiles/Fonts sur
le CDROM, ou dans
/usr/local/mathematica/SystemFiles/Fonts
sur votre disque dur. En fait les polices sont dans les
sous-répertoires Type1 et
X. Il existe différentes manières
de les utiliser, comme décrit ci-dessous.La première manière est de les copier dans
un des répertoires de polices de caractères existant
dans /usr/X11R6/lib/X11/fonts.
Il faudra alors éditer le fichier
fonts.dir, y ajouter les noms des
polices, et changer le nombre de polices sur la première
ligne. Alternativement, vous devriez pouvoir juste
exécuter &man.mkfontdir.1; dans le répertoire
dans lequel vous avez copié les polices de
caractères.La deuxième manière est de copier les
répertoires dans
/usr/X11R6/lib/X11/fonts:&prompt.root; cd /usr/X11R6/lib/X11/fonts
&prompt.root; mkdir X
&prompt.root; mkdir MathType1
&prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts
&prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X
&prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; cd /usr/X11R6/lib/X11/fonts/X
&prompt.root; mkfontdir
&prompt.root; cd ../MathType1
&prompt.root; mkfontdirMaintenant ajoutez les nouveaux répertoires de
polices à votre chemin de recherche des polices
de caractères:&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X
&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; xset fp rehashSi vous utilisez le serveur
&xorg;, vous pouvez charger
ces répertoires de polices automatiquement en les
ajoutant à votre fichier
xorg.conf.Sous les serveurs &xfree86;,
le fichier de configuration se nomme
XF86Config.polices de caractèresSi vous n'avez pas déjà
de répertoire appelé
/usr/X11R6/lib/X11/fonts/Type1, vous
pouvez modifier le nom du répertoire
MathType1 dans l'exemple ci-dessus par
Type1.AaronKaplanContribution de RobertGetschmannRemerciements à Installer &maple;applicationsMaple&maple; est un programme
mathématique commercial similaire à
&mathematica;. Vous devez
acquérir ce logiciel auprès de
et vous
enregistrer pour obtenir un fichier de licence. Pour installer
ce logiciel sous &os;, veuillez suivre les étapes
suivantes:Exécutez la procédure
INSTALL fournie avec le logiciel.
Choisissez l'option “RedHat” quand le
programme vous le demandera. Un répertoire
d'installation typique devrait être:
/usr/local/maple.Si vous ne l'avez pas déjà fait,
demandez une licence pour
&maple; auprès de
Maple Waterloo Software () et
copiez-la sous
/usr/local/maple/license/license.dat.Installez le gestionnaire de licence
FLEXlm en exécutant la
procédure d'installation
INSTALL_LIC fournie avec
&maple;. Précisez
le nom de la machine au serveur de licence.Modifiez le fichier
/usr/local/maple/bin/maple.system.type
avec le correctif suivant: ----- snip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
--- maple.system.type Sun Jul 8 16:35:51 2001
***************
*** 72,77 ****
--- 72,78 ----
# the IBM RS/6000 AIX case
MAPLE_BIN="bin.IBM_RISC_UNIX"
;;
+ "FreeBSD"|\
"Linux")
# the Linux/x86 case
# We have two Linux implementations, one for Red Hat and
----- snip end of patch -----Remarquez qu'après
"FreeBSD"|\ aucun espace ne doit
être ajouté.Ce correctif demande à
&maple; de reconnaître
“FreeBSD” comme étant un type de
système Linux. La procédure
bin/maple fait appel à la
procédure
bin/maple.system.type qui à son
tour appelle uname -a pour déterminer
le nom du système d'exploitation. En fonction de ce
nom, la procédure déterminera quels binaires
utiliser.Lancez le serveur de licence.La procédure suivante, installée sous le
nom /usr/local/etc/rc.d/lmgrd.sh
est une façon pratique de lancer
lmgrd: ----- snip ------------
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
export PATH
LICENSE_FILE=/usr/local/maple/license/license.dat
LOG=/var/log/lmgrd.log
case "$1" in
start)
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
echo -n " lmgrd"
;;
stop)
lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
;;
*)
echo "Usage: `basename $0` {start|stop}" 1>&2
exit 64
;;
esac
exit 0
----- snip ------------Testez &maple;:&prompt.user; cd /usr/local/maple/bin
&prompt.user; ./xmapleCela devrait fonctionner. Assurez-vous d'écrire
à Maplesoft pour leur indiquer que vous désirez
une version native pour &os;!Pièges courantsLe gestionnaire de licence
FLEXlm peut être
difficile à utiliser. De la documentation
supplémentaire à ce sujet est disponible
à l'adresse .lmgrd est connu pour
être très capricieux au sujet
du fichier de licence et de planter si il y a un
quelconque problème. Un fichier de licence correct
devrait ressembler à ceci:# =======================================================
# License File for UNIX Installations ("Pointer File")
# =======================================================
SERVER chillig ANY
#USE_SERVER
VENDOR maplelmg
FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXXLe numéro de série et la clé ont
été ici remplacés par des X.
chillig est le nom de la
machine.L'édition du fichier de licence est
possible tant que vous ne touchez pas à la ligne
“FEATURE” (qui est protégée
par la clé de la licence).DanPellegContribution de Installer &matlab;applicationsMATLABCe document décrit l'installation de la version
Linux de &matlab; version 6.5 sur un
système &os;. Le logiciel fonctionne plutôt
bien, à l'exception de la &jvm;,
machine virtuelle &java; (voir la
).La version Linux de &matlab; peut
être commandée directement auprès de
The MathWorks à l'adresse . Assurez-vous d'avoir
le fichier de licence ou les instructions pour le
créer. Pendant que vous y êtes, faites-leur savoir
que vous désireriez une version &os; native de leur
logiciel.Installer &matlab;Pour installer &matlab;, faites
ce qui suit:Insérez le CD d'installation et montez-le.
Ouvrez une session super-utilisateur
(root), comme recommandé par
la procédure d'installation. Pour lancer la
procédure d'installation tapez:&prompt.root; /compat/linux/bin/sh /cdrom/installLe programme d'installation est graphique.
Si vous obtenez une erreur disant que le programme
est incapable d'ouvrir une instance d'affichage, tapez
setenv HOME ~utilisateur,
où utilisateur est
l'utilisateur à partir duquel vous avez fait un
&man.su.1;.Quand on vous demande le répertoire racine
pour &matlab;, tapez:
/compat/linux/usr/local/matlab.Pour faciliter la suite de l'installation et
réduire les frappes inutiles, tapez à l'invite
de l'interpréteur de commandes ceci:
set MATLAB=/compat/linux/usr/local/matlabEditez le fichier de licence comme précisé
lors de l'obtention de la licence
&matlab;.Vous pouvez préparer d'avance ce fichier
en utilisant votre éditeur favori, et en le copiant
sous le nom $MATLAB/license.dat
avant que le programme d'installation ne vous demande de
l'éditer.Terminez le processus d'installation.A ce point, votre installation de
&matlab; est terminée. Les
étapes suivantes rajoutent le nécessaire
pour l'intégrer à votre système
&os;.Démarrage du gestionnaire de licenceCréez des liens symboliques pour les
procédures du gestionnaire de licence:&prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW
&prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMWCréez un fichier de démarrage nommé
/usr/local/etc/rc.d/flexlm.sh.
L'exemple ci-dessous est une version modifiée
du fichier $MATLAB/etc/rc.lm.glnx86
fourni. Les modifications concernent l'emplacement des
fichiers, et le lancement du gestionnaire de licence
sous l'émulation Linux.#!/bin/sh
case "$1" in
start)
if [ -f /usr/local/etc/lmboot_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u utilisateur && echo 'MATLAB_lmgrd'
fi
;;
stop)
if [ -f /usr/local/etc/lmdown_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0Le fichier doit être rendu
exécutable:&prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.shVous devez remplacer
utilisateur dans la
procédure par un nom d'utilisateur valide sur
votre système (et non pas
root).Lancez le gestionnaire de licence avec la
commande:&prompt.root; /usr/local/etc/rc.d/flexlm.sh startLier l'environnement d'exécution &java;
(“&java; Runtime Environment”)Modifiez le lien vers le
“&java; Runtime
Environment” (JRE) pour un lien fonctionnant
correctement sous &os;:&prompt.root; cd $MATLAB/sys/java/jre/glnx86/
&prompt.root; unlink jre; ln -s ./jre1.1.8 ./jreCréation d'une procédure de lancement
pour &matlab;Placez la procédure de démarrage suivante
dans le répertoire
/usr/local/bin/matlab:
#!/bin/sh
/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"Puis tapez la commande
chmod +x /usr/local/bin/matlab.En fonction de la version
emulators/linux_base
utilisée, vous pouvez rencontrer des problèmes
lors de l'utilisation de cette procédure. Pour
éviter cela, éditez le fichier
/compat/linux/usr/local/matlab/bin/matlab,
et modifiez la ligne qui dit:if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then(dans la version 13.0.1, c'est la ligne 410) en:if test -L $newbase; thenCréer une procédure d'arrêt pour
&matlab;Ce qui suit est nécessaire pour corriger le fait
que &matlab; ne peut être quitter correctement.Créez un fichier
$MATLAB/toolbox/local/finish.m, et y
mettre la ligne suivante:! $MATLAB/bin/finish.sh$MATLAB doit être
écrit tel quel.Dans le même répertoire, vous
trouverez les fichiers
finishsav.m et
finishdlg.m, qui vous permettront
de sauvegarder l'environnement avant de quitter.
Si vous utilisez l'un d'eux, insérez la ligne
ci-dessus après la commande
save.Créez un fichier
$MATLAB/bin/finish.sh, qui contiendra
ce qui suit:#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &
exit 0Rendez le fichier exécutable:&prompt.root; chmod +x $MATLAB/bin/finish.shUtilisation de &matlab;A ce point, vous êtes prêt à
taper la commande matlab et à commencer
à l'utiliser.MarcelMoolenaarContribution de Installer &oracle;applicationsOraclePréfaceCe document décrit le processus d'installation
d'&oracle; 8.0.5 et
d'&oracle; 8.0.5.1 Enterprise Edition
pour Linux sur une machine &os;.Installer l'environnement LinuxAssurez-vous d'avoir installé les deux logiciels
emulators/linux_base et
devel/linux_devtools du
catalogue des logiciels portés. Si vous rencontrez
des problèmes avec ces logiciels portés,
il se peut que vous ayez à utiliser les versions
pré-compilées ou des versions plus
anciennes disponibles dans le catalogue des logiciels
portés.Si vous désirez installer l'agent intelligent,
vous devrez également installer le
“package” Red Hat Tcl:
tcl-8.0.3-20.i386.rpm. La commande
générale pour installer des RPMs avec le logiciel
RPM (archivers/rpm) est:&prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm packageL'installation du package ne
devrait pas générer d'erreur.Créer l'environnent &oracle;Avant de pouvoir installer
&oracle;, vous devez configurer un
environnement propre. Ce document ne décrit
que ce qu'il y a faire spécifiquement
pour utiliser &oracle; pour Linux
sous &os;, et non pas ce qui a été décrit
dans le guide d'installation
d'&oracle;.Optimisation du noyauoptimisation du noyauComme décrit dans le guide d'installation
d'&oracle;, vous devez
configurer une taille maximale pour la mémoire
partagée. Sous &os; n'utilisez pas l'option
SHMMAX. SHMMAX est
simplement calculée à partir de
SHMMAXPGS et PGSIZE.
Définissez donc l'option SHMMAXPGS.
Toutes les autres options peuvent être
configurées comme décrit dans le guide.
Par exemple:options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61Configurez ces options en fonction de l'utilisation
prévue d'&oracle;.Assurez-vous également de la présence des
options suivantes dans votre fichier de configuration du
noyau:options SYSVSHM #SysV shared memory
options SYSVSEM #SysV semaphores
options SYSVMSG #SysV interprocess communicationCompte &oracle;Créez un compte oracle
de la même manière que vous créerez
un autre compte utilisateur. Le compte
oracle n'a de spécial que
le fait que vous devez lui donner un interpréteur de
commandes Linux. Ajoutez
/compat/linux/bin/bash au fichier
/etc/shells et fixez l'interpréteur
de commande du compte oracle à
/compat/linux/bin/bash.EnvironnementEn plus des variables d'environnement normales
d'&oracle; comme
ORACLE_HOME et ORACLE_SID
vous devez fixer les variables d'environnement
suivantes:VariableValeurLD_LIBRARY_PATH$ORACLE_HOME/libCLASSPATH$ORACLE_HOME/jdbc/lib/classes111.zipPATH/compat/linux/bin
/compat/linux/sbin
/compat/linux/usr/bin
/compat/linux/usr/sbin
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
$ORACLE_HOME/binIl est conseillé de définir toutes les
variables d'environnement dans le fichier
.profile. Un exemple complet est:ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
export PATHInstaller &oracle;En raison d'une particularité de l'émulateur
Linux, vous devez créer un répertoire appelé
.oracle dans /var/tmp
avant de lancer le programme d'installation.
Faites en sorte
que l'utilisateur oracle en soit le
propriétaire. Vous devriez être en mesure
d'installer &oracle; sans problème.
Si vous rencontrez cependant des problèmes,
contrôlez tout d'abord votre distribution
d'&oracle; et/ou configuration!
Après avoir installé &oracle;,
appliquez les correctifs décrits dans les deux
sous-sections suivantes.Un problème fréquent est que l'interface au
protocole TCP n'est pas correctement installée.
Avec comme conséquence l'impossibilité d'écouter
le trafic TCP. Les opérations suivantes aident
à résoudre ce problème:&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk ntcontab.o
&prompt.root; cd $ORACLE_HOME/lib
&prompt.root; ar r libnetwork.a ntcontab.o
&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk installN'oubliez pas de lancer à nouveau
root.sh!Appliquer un correctif au fichier root.shQuand on installe &oracle;,
certaines opérations, qui doivent être
effectuées en tant que root,
sont enregistrées dans une procédure
d'interpréteur de commandes appelée
root.sh. Cette procédure se
trouve dans le répertoire orainst.
Appliquez le correctif suivant au fichier
root.sh, pour faire en sorte qu'il
utilise le chemin correct pour chown, ou
exécute une procédure sous un interpréteur
de commandes Linux natif.*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown
#
# Define variables to be used in this script
--- 31,37 ----
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown
#
# Define variables to be used in this scriptQuand vous n'installez pas
&oracle; à partir d'un CD,
vous pouvez modifier les sources de
root.sh. La procédure se nomme
rthd.sh et se trouve dans le
répertoire orainst dans l'arborescence
des sources.Patching genclntshLa procédure genclntsh
est utilisée pour créer une simple bibliothèque
partagée cliente. Elle est utilisée lors de la
construction des démos. Appliquez le correctif
suivant pour commenter la définition de la variable
d'environnement PATH:*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lstExécuter &oracle;Après avoir suivi les instructions
précédentes, vous devriez être en mesure
d'exécuter &oracle; comme si
le programme tournait sous Linux.HolgerKippContribution de ValentinoVaschettoConversion en SGML par Installer &sap.r3;applications&sap.r3;Les installations de systèmes
&sap; sous &os; ne
seront pas supportées par l'équipe de support de SAP
— ils n'assurent que le support pour des plateformes
ceritifiées.PréfaceCe document décrit une façon d'installer un
système &sap.r3;
avec la base de données &oracle;
pour Linux sur une machine &os;, comprenant l'installation
de &os; et d'&oracle;. Deux
configurations différentes seront décrites:&sap.r3; 4.6B (IDES) avec
&oracle; 8.0.5 sous
&os; 4.3-STABLE&sap.r3; 4.6C avec
&oracle; 8.1.7 sous
&os; 4.5-STABLEMême si ce document tente de décrire toutes les
étapes importantes de façon détaillée,
il n'est pas destiné à remplacer les guides
d'installation d'&oracle; et
&sap.r3;.Veuillez consulter la documentation fournie avec
la version Linux de &sap.r3;
et les questions spécifiques à
&oracle;, ainsi que les
ressources d'&oracle; et de
&sap; OSS.LogicielsLes CD-ROMs suivants ont été utilisés pour
les installations de &sap;:&sap.r3; 4.6B, &oracle; 8.0.5NomNuméroDescriptionKERNEL51009113Noyau SAP Oracle /
Installation / AIX, Linux, SolarisRDBMS51007558Oracle / RDBMS 8.0.5.X /
LinuxEXPORT151010208IDES / DB-Export /
Disque 1 sur 6EXPORT251010209IDES / DB-Export /
Disque 2 sur 6EXPORT351010210IDES / DB-Export /
Disque 3 sur 6EXPORT451010211IDES / DB-Export /
Disque 4 sur 6EXPORT551010212IDES / DB-Export /
Disque 5 sur 6EXPORT651010213IDES / DB-Export /
Disque 6 sur 6De plus, nous avons utilisé le CD d'&oracle; 8
Serveur (version 8.0.5 de
pré-production pour Linux, noyau 2.0.33) qui n'est pas
vraiment nécessaire, et &os; 4.3-STABLE (une version
plus vieille de quelques jours que la 4.3-RELEASE).&sap.r3; 4.6C SR2, &oracle; 8.1.7NomNuméroDescriptionKERNEL51014004Noyau SAP Oracle /
Noyau SAP Version 4.6D / DEC, LinuxRDBMS51012930Oracle 8.1.7/ RDBMS /
LinuxEXPORT151013953Version 4.6C SR2 / Export
/ Disque 1 sur 4EXPORT151013953Version 4.6C SR2 / Export
/ Disque 2 sur 4EXPORT151013953Version 4.6C SR2 / Export
/ Disque 3 sur 4EXPORT151013953Version 4.6C SR2 / Export
/ Disque 4 sur 4LANG151013954Version 4.6C SR2 /
Langue / DE, EN, FR / Disque 1 sur 3En fonction des langues que vous désirez
installer, des CDs propres à ces langues pourront être
nécessaires. Ici nous utilisons juste l'allemand (DE) et
l'anglais (EN), donc seul le premier CD propre aux langues
sera nécessaire. Notez que le numéro des quatre
CDs EXPORT est identique (c'est différent du
numérotage des CDs 4.6B IDES). Au moment
de l'écriture de ces lignes, cette installation utilise
&os; 4.5-STABLE (du 20 mars 2002).Notes concernant &sap;Les notes suivantes devraient être lues
avant d'installer &sap.r3;
et ont prouvé leur utilité durant
l'installation:&sap.r3; 4.6B, &oracle; 8.0.5NuméroTitre0171356SAP sous Linux:
Remarques importantes0201147INST: 4.6C R/3 Inst. sur
UNIX - Oracle0373203Mise à jour / Migration
Oracle 8.0.5 -->
8.0.6/8.1.6 LINUX0072984Digital UNIX 4.0B pour
Oracle0130581Fin de l'étape
DIPGNTAB de R3SETUP0144978Votre système n'a pas
été installé correctement0162266Questions et conseils pour
R3SETUP sous Windows NT / W2K&sap.r3; 4.6C, &oracle; 8.1.7NuméroTitre0015023Initialisation de la
table TCPDB (RSXP0004) (EBCDIC)0045619R/3 avec plusieurs langues
ou
languages or
typefaces0171356SAP sous Linux: Remarques
importantes0195603RedHat 6.1 version
entreprise: problèmes connus0212876Le nouvel outil d'archivage
SAPCAR0300900Linux: matériel DELL0377187RedHat 6.2: remarques
importantes0387074INST: R/3 4.6C SR2
Installation sous UNIX0387077INST: R/3 4.6C SR2 Inst. sous
UNIX - Oracle0387078SAP sous UNIX: Dépendances
4.6C SR2Matériel nécessaireL'équipement suivant est suffisant
pour l'installation d'un système
&sap.r3;. Bien sûr
pour une utilisation en production, un choix
plus pointu du matériel est nécessaire:Composant4.6B4.6CProcesseur2 x 800MHz &pentium; III2 x 800MHz &pentium; IIIMémoire1Go ECC2Go ECCEspace disque50-60Go (IDES)50-60Go (IDES)Pour une utilisation en production, des processeurs &xeon;
avec un cache important, un accès disque rapide (SCSI,
contrôleur RAID matériel) et de la mémoire
ECC. L'espace disque nécessaire est important en
raison du système IDES pré-configuré, qui
créé une base de données de 27 Go
durant l'installation. Cet espace est également
suffisant pour démarrer des systèmes
destinés à la production.&sap.r3; 4.6B, &oracle; 8.0.5Le matériel suivant fut utilisé: une carte
mère bi-processeurs avec 2 processeurs &pentium; III
800 MHz, une carte SCSI &adaptec; 29160 Ultra160
(pour utiliser un lecteur de bande 40/80 Go DLT et un
lecteur de CDROM), une carte &mylex; &acceleraid; (2 canaux,
firmware 6.00-1-00 avec 32 Mo de RAM). Au contrôleur
RAID &mylex; sont reliés deux disques durs de 17 Go
(miroirs) et quatre disques de 36 Go (RAID niveau
5).&sap.r3; 4.6C, &oracle; 8.1.7Pour cette installation un &dell; &poweredge; 2500 a
été utilisé: une carte mère
bi-processeurs avec deux processeurs &pentium; III
1000 MHz (256 Ko de cache), 2 Go PC133 ECC
SDRAM, un contrôleur PERC/3 DC PCI RAID avec
128 Mo, et un lecteur DVD-ROM EIDE. Au contrôleur
RAID sont reliés deux disques durs 18 Go (miroirs)
et quatre disques de 36 Go (RAID niveau 5).Installation de &os;Tout d'abord vous devez installer &os;. Il existe de
nombreuses manière d'installer &os;, pour plus d'informations
consultez la .Organisation des disquesPour rester simple, la même organisation des
disques a été utilisée pour les
installations de &sap.r3; 46B et
&sap.r3; 46C SR2. Seuls les noms
de périphériques ont changé, comme les
installations ont été effectuées sur du
matériel différent
(/dev/da et
/dev/amr respectivement, aussi si
l'on utilise un contrôleur AMI MegaRAID, on verra
/dev/amr0s1a à la place de
/dev/da0s1a):Système de fichiersTaille (blocs de 1k)Taille (Go)Monté sous/dev/da0s1a1.016.3031
- /
+ //dev/da0s1b6swap/dev/da0s1e2.032.6232
- /var
+ /var/dev/da0s1f8.205.3398
- /usr
+ /usr/dev/da1s1e45.734.36145
- /compat/linux/oracle
+ /compat/linux/oracle/dev/da1s1f2.032.6232
- /compat/linux/sapmnt
+ /compat/linux/sapmnt/dev/da1s1g2.032.6232
- /compat/linux/usr/sap
+ /compat/linux/usr/sapConfigurez et initialisez les deux disques logiques
à l'avance avec les logiciels &mylex; ou PERC/3 RAID.
Ces logiciels peuvent être lancés lors
de la phase de démarrage du
BIOS.Notez que l'organisation du disque diffère
légèrement des recommandations de SAP, comme
SAP suggère de monter séparément
les sous-répertoires d'&oracle;
(et d'autres) — nous avons décidé de
simplement créer de véritables sous-répertoires
directement.Utiliser make world et compiler
un nouveau noyauTéléchargez les sources -STABLE les plus
récentes. Recompilez l'intégralité du
système et votre noyau personnalisé
après avoir configuré votre fichier de
configuration du noyau. Là, vous devriez
également ajouter les paramètres du noyau
requis par &sap.r3; et
&oracle;.Installer l'environnement LinuxInstaller le système de base LinuxTout d'abord le logiciel porté
linux_base doit
être installé (en tant que super-utilisateur):&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanInstaller l'environnement de développement
LinuxL'environnement de développement Linux est
nécessaire, si vous désirez installer
&oracle; sous &os; comme cela est
décrit dans la :&prompt.root; cd /usr/ports/devel/linux_devtools
&prompt.root; make install distcleanL'environnement de développement Linux a
été installé en vue de l'installation
de &sap.r3; 46B IDES. Ce n'est
pas nécessaire si &oracle;
DB n'est pas liée sur un système
&os;. C'est le cas si vous utilisez l'archive
tar&oracle; en provenance d'un
système Linux.Installer les RPMs nécessairesRPMsPour lancer le programme
R3SETUP, le support PAM est
nécessaire. Lors de la première installation de
&sap; sous &os; 4.3-STABLE,
nous avons tenté d'installer PAM avec tous les
“packages” nécessaires, et nous avons
finalement forcé l'installation du “package”
PAM, ce qui a fonctionné. Pour
&sap.r3; 4.6C SR2, nous avons
directement forcé l'installation du
RPM PAM, ce qui fonctionne également, il semble donc
que les RPMs de dépendance ne sont pas
nécessaires:&prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
pam-0.68-7.i386.rpmPour utiliser l'agent intelligent
d'&oracle; 8.0.5, nous devons
également installer la version RedHat de Tcl
tcl-8.0.5-30.i386.rpm (sinon l'édition
de liens durant l'installation
d'&oracle; ne fonctionnera pas).
Il existe d'autres problèmes à ce niveau, mais ils
concernent directement la version Linux
d'&oracle;, et ne sont donc pas
spécifiquent à &os;.Quelques conseils supplémentairesCela peut être une bonne idée d'ajouter
linprocfs au fichier
/etc/fstab, pour plus d'informations
consultez la page de manuel &man.linprocfs.5;. Un autre
paramètre à positionner est
kern.fallback_elf_brand=3, ce qui
doit être fait dans le fichier
/etc/sysctl.conf.Créer l'environnement SAP/R3Créer les systèmes de fichiers et points de
montage nécessairesPour une simple installation, il est suffisant de
créer les systèmes de fichiers suivants:point de montagetaille en Go
- /compat/linux/oracle
+ /compat/linux/oracle45 Go
- /compat/linux/sapmnt
+ /compat/linux/sapmnt2 Go
- /compat/linux/usr/sap
+ /compat/linux/usr/sap2 GoIl est également nécessaire de créer
certains liens. Sinon l'intalleur
&sap; se plaindra, lors du
contrôle des liens créés:&prompt.root; ln -s /compat/linux/oracle /oracle
&prompt.root; ln -s /compat/linux/sapmnt /sapmnt
&prompt.root; ln -s /compat/linux/usr/sap /usr/sapUn message d'erreur possible durant l'installation
(ici avec un système PRD
l'installation de
&sap.r3; 4.6C SR2):INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
/sapmnt/PRD/exe. Creating if it does not exist...
WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
/compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
program cannot go on as long as this link exists at this
location. Move the link to another location.
ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
'/sapmnt/PRD/exe'Création des utilisateurs et des
répertoires&sap.r3; a besoin de deux
utilisateurs et de trois groupes. Les noms d'utilisateurs
dépendent du système d'ID de
&sap; (SID) qui est composé
de trois lettres. Certains de ces SIDs sont
réservés par &sap;
(par exemple SAP et
NIX. Pour une liste complète
consultez la documentation de
&sap;). Pour l'installation IDES,
nous avons utilisé IDS, pour
l'installation 4.6C SR2 PRD, comme ce
système était destiné à la
production. Nous avons cependant les groupes suivants (les
identifiants de groupe peuvent être différents,
ce sont seulement les valeurs que nous avons utilisés
dans notre installation):groupe IDnom du groupedescription100dbaAdministrateur de la base de données101sapsysSystème &sap;102operOpérateur de la base de donnéesPour une installation
d'&oracle; par défaut, seul le
groupe dba est utilisé.
Tout comme le groupe oper, certains
utilisent également le groupe dba
(Voir les documentations d'&oracle;
et de &sap; pour plus
d'information).Nous avons également besoin des utilisateurs
suivants:ID utilisateurnom d'utilisateurnom génériquegroupegroupes supplémentairesdescription1000idsadm/prdadmsidadmsapsysoperAdministrateur &sap;1002oraids/oraprdorasiddbaoperAdministrateur de la base de données &oracle;L'ajout des utilisateurs avec la commande
&man.adduser.8; nécessite les entrées
suivantes (notez l'interpréteur de commandes et le
répertoire utilisateur) pour l'“Administrateur
&sap;”:Name: sidadm
Password: ******
Fullname: SAP Administrator SID
Uid: 1000
Gid: 101 (sapsys)
Class:
Groups: sapsys dba
HOME: /home/sidadm
Shell: bash (/compat/linux/bin/bash)et pour l'“Administrateur de la base de
données &oracle;”:Name: orasid
Password: ******
Fullname: Oracle Administrator SID
Uid: 1002
Gid: 100 (dba)
Class:
Groups: dba
HOME: /oracle/sid
Shell: bash (/compat/linux/bin/bash)Ceci devrait également inclure le groupe
oper au cas où vous utiliseriez
les deux groupes dba et
oper.Création des répertoiresCes répertoires sont généralement
créés sous forme de systèmes de
fichiers séparés. Cela dépend
entièrement de vous besoins. Nous avons choisi de
créer de simple répertoires, comme ils sont
placés sur le même système RAID
5:Nous positionnerons tout d'abord les propriétaires
et les droits de certains répertoires (en tant que
root):&prompt.root; chmod 775 /oracle
&prompt.root; chmod 777 /sapmnt
&prompt.root; chown root:dba /oracle
&prompt.root; chown sidadm:sapsys /compat/linux/usr/sap
&prompt.root; chmod 775 /compat/linux/usr/sapEnsuite nous crérons les répertoires en tant
qu'utilisateur
orasid. Ce
seront tous les répertoires du type
- /oracle/SID:
+ /oracle/SID:
&prompt.root; su - orasid
&prompt.root; cd /oracle/SID
&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB
&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6
&prompt.root; mkdir saparch sapreorg
&prompt.root; exitPour l'installation d'&oracle; 8.1.7
des répertoires supplémentaires sont
nécessaires:&prompt.root; su - orasid
&prompt.root; cd /oracle
&prompt.root; mkdir 805_32
&prompt.root; mkdir client stage
&prompt.root; mkdir client/80x_32
&prompt.root; mkdir stage/817_32
&prompt.root; cd /oracle/SID
&prompt.root; mkdir 817_32Le répertoire client/80x_32 est
+ class='directory'>client/80x_32 est
créé tel quel. Ne remplacez pas le
x par quelque chose
d'autre.La dernière étape consiste à
créer les répertoires en tant qu'utilisateur
sidadm:&prompt.root; su - sidadm
&prompt.root; cd /usr/sap
&prompt.root; mkdir SID
&prompt.root; mkdir trans
&prompt.root; exitEntrées dans /etc/services&sap.r3; a besoin de certaines
entrées dans le fichier
/etc/services, qui ne seront pas
créées durant son installation sous &os;.
Veuillez ajouter les entrées suivantes (vous avez
besoin au moins des entrées correspondant au
numéro d'instance — dans notre cas,
00. Cela ne posera pas de
problème d'ajouter toutes les entrées de
00 à 99 pour
dp, gw,
sp et ms). Si vous
allez utiliser SAProuter ou vous
devez accéder au &sap; OSS,
vous avez également besoin de l'entrée
99, comme le port 3299 est
généralement utilisé par le processus
SAProuter sur le système
cible:
sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number
sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number
sapsp00 3400/tcp # 3400 + Instance-Number
sapms00 3500/tcp # 3500 + Instance-Number
sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number
sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-Number“Locales” nécessaireslocale&sap; nécessite au moins
deux “locales” qui ne font pas partie de
l'installation RedHat par défaut. SAP propose les
RPMs nécessaires en téléchargement
à partir de leur serveur FTP (qui est uniquement
accessible si vous êtes un client avec un accès
OSS). Consultez la note 0171356 pour la liste des RPMs dont
vous avez besoin.Il est également possible de créer just
les appropriés (par exemple à partir de
de_DE et en_US),
mais nous ne recommandons pas cela pour un système
destiné à la production (bien que cela a
fonctionné sans problème avec le
système IDES). Les “locales” suivantes
sont nécessaires:de_DE.ISO-8859-1
en_US.ISO-8859-1Créez les liens comme suit:&prompt.root; cd /compat/linux/usr/share/locale
&prompt.root; ln -s de_DE de_DE.ISO-8859-1
&prompt.root; ln -s en_US en_US.ISO-8859-1S'ils n'existent pas, des problèmes apparaîtrons
lors de l'installation. Si ces problèmes sont
intentionnellement ignorés (en fixant la valeur
de la variable STATUS
des étapes pour lesquelles les problèmes sont
apparus à la valeur OK dans le
fichier CENTRDB.R3S), il sera
impossible d'ouvrir une session sur le système
&sap; sans effort
supplémentaire.Optimisation du noyauoptimisation du noyauLes systèmes &sap.r3;
demandent beaucoup de ressources. Nous avons donc
ajouté les paramètres suivants au fichier de
configuration du noyau:# Set these for memory pigs (SAP and Oracle):
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
# System V options needed.
options SYSVSHM #SYSV-style shared memory
options SHMMAXPGS=262144 #max amount of shared mem. pages
#options SHMMAXPGS=393216 #use this for the 46C inst.parameters
options SHMMNI=256 #max number of shared memory ident if.
options SHMSEG=100 #max shared mem.segs per process
options SYSVMSG #SYSV-style message queues
options MSGSEG=32767 #max num. of mes.segments in system
options MSGSSZ=32 #size of msg-seg. MUST be power of 2
options MSGMNB=65535 #max char. per message queue
options MSGTQL=2046 #max amount of msgs in system
options SYSVSEM #SYSV-style semaphores
options SEMMNU=256 #number of semaphore UNDO structures
options SEMMNS=1024 #number of semaphores in system
options SEMMNI=520 #number of semaphore identifiers
options SEMUME=100 #number of UNDO keysLes valeurs minimales sont précisées dans
la documentation en provenance de SAP. Comme il n'y a pas
d'éléments concernant Linux, consultez la section
sur HP-UX (32bits) pour plus d'information. Comme le
système utilisé pour l'installation de la
version 4.6C SR2 dispose de plus de mémoire principale,
les segments de mémoire partagée (“shared
segments”) peuvent être plus larges pour
&sap; et
&oracle;, cependant choisissez un
nombre plus important de page de mémoire
partagée.Avec l'installation par défaut de &os;
sur l'architecture &i386;, laissez MAXDSIZ
et DFLDSIZ à une valeur de
1 Go maximum. Sinon, des erreurs étranges comme
ORA-27102: out of memory et
Linux Error: 12: Cannot allocate memory
risquent d'apparaître.Installer &sap.r3;Préparer les CDROMs &sap;Il y a de nombreux CDROMs à monter et
démonter lors de l'installation. Si vous disposez de
suffisamment de lecteurs de CDROMs, vous pouvez tout
simplement les monter tous. Nous avons décidé
de copier le contenu des CDROMs dans les répertoires
correspondant:/oracle/SID/sapreorg/nom-du-cdoù nom-du-cd est un nom
parmi KERNEL,
RDBMS, EXPORT1,
EXPORT2, EXPORT3,
EXPORT4, EXPORT5 et
EXPORT6 pour l'installation de la version
4.6B/IDES, et KERNEL,
RDBMS, DISK1,
DISK2, DISK3,
DISK4 et LANG pour
l'installation de la version 4.6C SR2. Tous les noms
de fichiers sur les CDs montés devraient être en
majuscules, sinon utilisez l'option
pour le montage. Utilisez donc les commandes
suivantes:&prompt.root; mount_cd9660 -g /dev/cd0a /mnt
&prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/nom-du-cd
&prompt.root; umount /mntExécuter la procédure d'installationTout d'abord, vous devez préparer un répertoire
- install:
+ install:
&prompt.root; cd /oracle/SID/sapreorg
&prompt.root; mkdir install
&prompt.root; cd installEnsuite la procédure d'installation est
lancée, qui copiera tous fichiers correspondant dans
le répertoire install:
+ class='directory'>install:
&prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SHL'installation IDES (4.6B) est fournie avec un
système &sap.r3; de
démonstration complètement configuré,
il y a donc six CDs EXPORT au lieu de juste trois CDs
EXPORT. A ce point la configuration par défaut
d'installation CENTRDB.R3S est
destiné à l'installation d'une instance
centrale standard (&r3; et base de
données), et non pas l'instance centrale standard
IDES, on doit donc copier le fichier
CENTRDB.R3S correspondant du
répertoire EXPORT1, sinon
+ class='directory'>EXPORT1, sinon
R3SETUP ne demandera que trois CDs
EXPORT.La nouvelle version &sap; 4.6C
SR2 est fournie avec quatre CDs EXPORT. Le
fichier de paramètres qui contrôle les
étapes de l'installation est le fichier
CENTRAL.R3S. Contrairement aux
versions précédentes, il n'y a pas de
modèle de configuration d'installation
séparé pour une instance centrale avec ou sans
base de données. &sap;
utilise un modèle de configuration
séparé pour l'installation de base de
données. Pour relancer l'installation
postérieurement, il suffit de la relancer avec le
fichier d'origine.Pendant et après l'installation,
&sap; a besoin que la commande
hostname renvoie uniquement le nom de la
machine et non pas le nom complet de la machine. Fixez donc
le nom de la machine en fonction, ou créez un alias
avec alias hostname='hostname -s' pour
les utilisateurs
orasid et
sidadm (et
pour le super-utilisateur root au moins
durant les étapes de l'installation effectuées
en tant que root). Il est
également possible d'ajuster les fichiers
.profile et .login
des deux utilisateurs qui sont installés lors de
l'installation de &sap;.Exécuter R3SETUP 4.6BAssurez-vous que la variable LD_LIBRARY_PATH
est correctement positionnée:&prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/libLancez R3SETUP en tant que
root à partir du répertoire
d'installation:&prompt.root; cd /oracle/IDS/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRDB.R3SLa procédure pose ensuite un certain nombre de
questions (les valeurs par défaut sont entre crochets,
suivies par les entrées clavier):QuestionDéfautEntrée(s) clavierEnter SAP System ID[C11]IDSEntréeEnter SAP Instance Number[00]EntréeEnter SAPMOUNT Directory[/sapmnt]EntréeEnter name of SAP central host[troubadix.domain.de]EntréeEnter name of SAP db host[troubadix]EntréeSelect character set[1] (WE8DEC)EntréeEnter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.61EntréeExtract Oracle Client archive[1] (Yes, extract)EntréeEnter path to KERNEL CD[/sapcd]/oracle/IDS/sapreorg/KERNELEnter path to RDBMS CD[/sapcd]/oracle/IDS/sapreorg/RDBMSEnter path to EXPORT1 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT1Directory to copy EXPORT1 CD[/oracle/IDS/sapreorg/CD4_DIR]EntréeEnter path to EXPORT2 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT2Directory to copy EXPORT2 CD[/oracle/IDS/sapreorg/CD5_DIR]EntréeEnter path to EXPORT3 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT3Directory to copy EXPORT3 CD[/oracle/IDS/sapreorg/CD6_DIR]EntréeEnter path to EXPORT4 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT4Directory to copy EXPORT4 CD[/oracle/IDS/sapreorg/CD7_DIR]EntréeEnter path to EXPORT5 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT5Directory to copy EXPORT5 CD[/oracle/IDS/sapreorg/CD8_DIR]EntréeEnter path to EXPORT6 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT6Directory to copy EXPORT6 CD[/oracle/IDS/sapreorg/CD9_DIR]EntréeEnter amount of RAM for SAP + DB850Entrée (en mégaoctets)Service Entry Message Server[3600]EntréeEnter Group-ID of sapsys[101]EntréeEnter Group-ID of oper[102]EntréeEnter Group-ID of dba[100]EntréeEnter User-ID of sidadm[1000]EntréeEnter User-ID of orasid[1002]EntréeNumber of parallel procs[2]EntréeSi vous n'avez pas copié les CDs en différent
endroits, alors l'installeur &sap;
ne peut trouver le CD nécessaire (identifié par le
fichier LABEL.ASC sur le CD) et vous
demandera alors d'insérer, de monter le CD et de
confirmer ou d'entrer le chemin du point de montage.Le fichier CENTRDB.R3S peut ne pas
être exempt de problème. Dans notre cas, il demanda
à nouveau le CD EXPORT4 mais indiqua la clé
correcte (6_LOCATION, puis 7_LOCATION, etc.), on peut donc
juste continuer à saisir les bonnes valeurs.En dehors des problèmes mentionnés plus
bas, tout devrait être assez direct jusqu'au moment
où la base de données
&oracle; doit être
installée.Exécuter R3SETUP 4.6C SR2Assurez-vous que la variable LD_LIBRARY_PATH
est correctement positionnée. La valeur est
différente de l'installation 4.6B avec
&oracle; 8.0.5:&prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/libLancez R3SETUP en tant que
root à partir du répertoire
d'installation:&prompt.root; cd /oracle/PRD/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRAL.R3SLa procédure pose ensuite un certain nombre de
questions (les valeurs par défaut sont entre crochets,
suivies par les entrées clavier):QuestionDéfautEntrée(s) clavierEnter SAP System ID[C11]PRDEntréeEnter SAP Instance Number[00]EntréeEnter SAPMOUNT Directory[/sapmnt]EntréeEnter name of SAP central host[majestix]EntréeEnter Database System ID[PRD]PRDEntréeEnter name of SAP db host[majestix]EntréeSelect character set[1] (WE8DEC)EntréeEnter Oracle server version (2) Oracle 8.1.72EntréeExtract Oracle Client archive[1] (Yes, extract)EntréeEnter path to KERNEL CD[/sapcd]/oracle/PRD/sapreorg/KERNELEnter amount of RAM for SAP + DB20441800Entrée (en mégaoctets)Service Entry Message Server[3600]EntréeEnter Group-ID of sapsys[100]EntréeEnter Group-ID of oper[101]EntréeEnter Group-ID of dba[102]EntréeEnter User-ID of oraprd[1002]EntréeEnter User-ID of prdadm[1000]EntréeLDAP support3Entrée (pas de support)Installation step completed[1] (continue)EntréeChoose installation service[1] (DB inst,file)EntréeJusqu'ici, la création d'utilisateurs donne une
erreur durant l'installation lors des phases
OSUSERDBSID_IND_ORA (pour la création de
l'utilisateur
orasid) et
OSUSERSIDADM_IND_ORA (création de l'utilisateur
sidadm).En dehors des problèmes mentionnés plus
bas, tout devrait être assez direct jusqu'au moment
où la base de données
&oracle; doit être
installée.Installer &oracle; 8.0.5Consultez les notes &sap; et les
Readmes d'&oracle; concernant Linux et la
base de données &oracle; pour
de possibles problèmes. La plupart, si ce n'est pas
tous, de ces problèmes proviennent de
bibliothèques incompatibles.Pour plus d'informations au sujet de l'installation
d'&oracle;,
référez-vous au chapitre sur l'installation d'&oracle;.Installer &oracle; 8.0.5 avec orainstSi &oracle; 8.0.5 doit
être utilisée, des bibliothèques
supplémentaires sont nécessaires pour une
édition de liens couronnée de succès,
comme &oracle; 8.0.5 est
liée avec une ancienne bibliothèque glibc
(RedHat 6.0), cependant RedHat 6.1 utilise
déjà une nouvelle version de la
bibliothèque glibc. Vous devez donc installer les
“packages” suivants pour s'assurer que
l'édition de liens fonctionnera:compat-libs-5.2-2.i386.rpmcompat-glibc-5.2-2.0.7.2.i386.rpmcompat-egcs-5.2-1.0.3a.1.i386.rpmcompat-egcs-c++-5.2-1.0.3a.1.i386.rpmcompat-binutils-5.2-2.9.1.0.23.1.i386.rpmConsultez les notes &sap; et les
Readmes d'&oracle; pour plus
d'informations. On pourra utiliser les binaires d'origine
(au moment de l'installation, nous n'avons pas eu le temps
de contrôler cela), ou utiliser directement les binaires
fraichement liés d'un système RedHat.Pour la compilation de l'agent intelligent, la
version RedHat de Tcl doit être installée.
Si vous ne pouvez vous procurer
tcl-8.0.3-20.i386.rpm, un fichier plus
récent comme tcl-8.0.5-30.i386.rpm pour
RedHat 6.1 fera l'affaire.En dehors de ce problème de liens, l'installation est
relativement directe:&prompt.root; su - oraids
&prompt.root; export TERM=xterm
&prompt.root; export ORACLE_TERM=xterm
&prompt.root; export ORACLE_HOME=/oracle/IDS
&prompt.root; cd $ORACLE_HOME/orainst_sap
&prompt.root; ./orainstConfirmez tous les écrans en appuyant sur
Entrée jusqu'à l'installation
complète du logiciel, à l'exception de celui
qui permet de déselectionner la “visionneuse de
texte &oracle;” (&oracle; On-Line Text
Viewer), comme cette dernière n'est pas
disponible pour Linux. Ensuite
&oracle; veut faire
l'édition de liens avec
i386-glibc20-linux-gcc à la place
des gcc, egcs ou
i386-redhat-linux-gcc disponibles.En raison d'un manque de temps, nous avons
décidé d'utiliser les binaires d'une version
&oracle; 8.0.5 PreProduction,
après que la première tentative d'obtenir
à partir du CD RDBMS une version fonctionnant eut
échoué, et que nous avons trouvé
qu'accéder aux bons RPMs était alors un
véritable cauchemar.Installer la version &oracle; 8.0.5 Pre-production pour
Linux (noyau 2.0.33)Cette installation est simple. Montez le CD, lancez
l'installeur. Il vous demandera l'emplacement du
répertoire utilisateur
&oracle;, et y copiera tous les
binaires. Nous n'avions, cependant, pas effacé les
restes de nos précédentes tentatives
d'installation RDBMS.Après cela, la base de données
&oracle; put être
installée sans encombres.Installer l'archive tar d'&oracle; 8.1.7 pour LinuxPrennez l'archive tar que vous
avez produite à partir du répertoire
d'installation sur un système Linux, et
désarchivez-la dans le répertoire /oracle/SID/817_32/.
+ class='directory'>/oracle/SID/817_32/.
Poursuivre l'installation de &sap.r3;Tout d'abord vérifiez le paramétrage des
environnements des utilisateurs idsamd
(sidadm) et
oraids
(orasid). Ils devraient avoir,
tous les deux, des fichiers .profile,
.login et .cshrc qui
utilisent la directement la commande
hostname. Si le nom de machine du
système est un nom complet d'hôte, vous devez
modifier hostname pour hostname
-s dans ces trois fichiers.Chargement de la base de donnéesEnsuite, R3SETUP peut être soit
relancé ou poursuivi (tout dépend si le
programme a été quitté ou non).
R3SETUP créé ensuite les
tables pour les données et charge ces données
(pour 46B IDES, à partir des disques EXPORT1 à
EXPORT6, pour 46C à partir des disques DISK1 à
DISK4) avec R3load dans la base de
données.Quand le chargement de la base de données
est achevé (cela peut prendre plusieurs heures), des
mots de passe sont demandés. Pour les installations
de tests, on peut utiliser les mots de passe
par défauts connus (utilisez-en des différents
si la sécurité est importante):QuestionEntrée(s) clavierEnter Password for sapr3sapEntréeConfirum Password for sapr3sapEntréeEnter Password for syschange_on_installEntréeConfirm Password for syschange_on_installEntréeEnter Password for systemmanagerEntréeConfirm Password for systemmanagerEntréeA ce point, nous avons eut quelques problèmes
avec dipgntab durant l'installation de la
version 4.6B.Programme d'écouteDémarrer le programme d'écoute
(“listener”) d'&oracle;
sous l'utilisateur
orasid comme
suit:&prompt.user; umask 0; lsnrctl startSinon vous risquez d'obtenir l'erreur
ORA-12546 comme les
“sockets” n'auront pas les bonnes permissions.
Consultez la note &sap; 072984.Mettre à jour les tables MNLSSi vous projetez d'importer des données utilisant
des langues non latin-1 dans le système
&sap;, vous devez mettre à
jour les tables de support des langues internationales
(“Multi National Language Support” —
MNLS). Ceci est décrit dans les notes &sap; OSS 15023
et 45619. Sinon, vous pouvez ignorer cette question lors de
l'installation de &sap;.Si vous n'avez pas besoin des tables MNLS, il est
toujours nécessaire de contrôler la table TCPDB
et l'initialiser si cela n'a pas déjà
été fait. Consultez les notes 0015023 et
0045619 pour plus d'information.Etapes de post-installationDemander une clé licence pour &sap.r3;Vous devez demander votre clé
&sap.r3;. Cette clé est indispensable
étant donné que la licence temporaire qui a
été installée lors de l'installation
n'est valide que pendant quatre semaines. Tout d'abord
récupérez la clé matérielle.
Ouvrez une session sous l'utilisateur
idsadm et lancez la commande
saplicense:&prompt.root; /sapmnt/IDS/exe/saplicense
-getAppeler saplicense sans
paramètres affiche la liste des options disponibles.
Après la réception de la clé, elle peut
être installée en utilisant:&prompt.root; /sapmnt/IDS/exe/saplicense -installVous devez ensuite entrer les valeurs suivantes:SAP SYSTEM ID = SID, 3 chars
CUSTOMER KEY = hardware key, 11 chars
INSTALLATION NO = installation, 10 digits
EXPIRATION DATE = yyyymmdd, usually "99991231"
LICENSE KEY = license key, 24 charsCréer les utilisateursCréez un utilisateur sous le client 000
(certaines tâches doivent être effectuées
sous le client 000, mais avec un utilisateur
différent de sap* et
ddic). Comme nom d'utilisateur, nous
choisissons généralement
wartung (ou
service en français). Les
profiles nécessaires sont sap_new
et sap_all. Pour plus de
sécurité les mots de passe des utilisateurs
par défaut à l'intérieur de tous les
clients devraient être modifiés (cela inclut
les utilisateurs sap* et
ddic).Configurer le système de transport, les profils,
les modes d'opération, etc.Dans le client 000, avec un utilisateur autre que
ddic et sap*,
faire, au moins, ce qui suit:TâcheTransactionConfigurez le système de transport, par
exemple entité autonome de domaine
de transport (Stand-Alone
Transport Domain Entity)STMSCréez / Editez le profil systèmeRZ10Maintenez les modes d'opération et les
instancesRZ04Cela et toutes les autres étapes de
post-installation sont intégralement décrites
dans les guides d'installation
&sap;.Editer
initsid.sap
(initIDS.sap)Le fichier
/oracle/IDS/dbs/initIDS.sap contient le
profil de sauvegarde &sap;. Ici la
taille de la bande à utiliser, le type de compression
et ainsi de suite doivent être définis. Pour
garantir un fonctionnement avec les commandes
sapdba/brbackup, nous
avons modifié les valeurs suivantes:compress = hardware
archive_function = copy_delete_save
cpio_flags = "-ov --format=newc --block-size=128 --quiet"
cpio_in_flags = "-iuv --block-size=128 --quiet"
tape_size = 38000M
tape_address = /dev/nsa0
tape_address_rew = /dev/sa0Explications:compress: la bande que nous utilisons
est une HP DLT1 qui fournie une compression
matérielle.archive_function: définie le
comportement par défaut en ce qui concerne
l'archivage des fichiers journaux
d'&oracle;: les nouveaux journaux
sont sauvegardés sur la bande, ceux
déjà sauvegardés le sont à
nouveau et sont ensuite effacés. Cela évite
de nombreux problèmes si vous devez rétablir
la base de données, et qu'une des bandes de
sauvegarde est endommagée.cpio_flags: l'indicateur par
défaut est qui fixe la taille
d'un bloc à 5120 octets. Pour les bande DLT, HP
recommande une taille de bloc d'au moins 32Ko, aussi nous
avons utilisé pour
64Ko. L'option est
nécessaire car nous avons un nombre d'inodes
supérieur à 65535. La dernière option,
, est nécessaire sinon
brbackup se plaint dès que
cpio donne le nombre de blocs
sauvés.cpio_in_flags: indicateurs
nécessaires pour charger les données à
partir de bandes. Le format est reconnu
automatiquement.tape_size: cette variable donne la
capacité brute de la bande. Pour des raisons de
sécurité (nous utilisons une compression
matérielle), la valeur est légèrement
inférieure à la valeur réelle.tape_address: le
périphérique non rembobinable devant
être utilisé avec
cpio.tape_address_rew: le
périphérique rembobinable à utiliser
avec cpio.Problèmes de configuration après
l'installationLes paramètres &sap;
suivants devraient être optimisés après
l'installation (exemples pour IDES 46B, 1 Go de
mémoire):NomValeurztta/roll_extension250000000abap/heap_area_dia300000000abap/heap_area_nondia400000000em/initial_size_MB256em/blocksize_kB1024ipc/shm_psize_4070000000Note &sap; 0013026:NomValeurztta/dynpro_area2500000Note &sap; 0157246:NomValeurrdisp/ROLL_MAXFS16000rdisp/PG_MAXFS30000Avec les paramètres donnés ci-dessus,
sur un système avec 1Go de mémoire, on pourra
avoir une utilisation de la mémoire similaire
à:Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K FreeProblèmes lors de l'installationRelancer R3SETUP après la correction
d'un problèmeR3SETUP s'arrête s'il rencontre
une erreur. Si vous avez examiné les fichiers
journaux correspondants et corrigé l'erreur, vous
devez relancer R3SETUP à nouveau,
habituellement en sélectionnant
comme option de la dernière
étape pour laquelle R3SETUP avait
rencontré un problème.Pour relancer R3SETUP,
exécutez-le avec le fichier R3S
correspondant:&prompt.root; ./R3SETUP -f CENTRDB.R3Spour la version 4.6B, ou avec&prompt.root; ./R3SETUP -f CENTRAL.R3Spour la version 4.6C, peu importe si l'erreur est
apparue avec CENTRAL.R3S ou
DATABASE.R3S.A certains points, R3SETUP suppose
que la base de données et le processus
&sap; sont en fonctionnement (comme
s'il avait déjà complété ces
étapes). Au cas où les erreurs se
produiraient et que par exemple la base de données ne
peut être lancée, vous devez lancer la base de
données et &sap; à la
main après avoir corrigé les erreurs et avant
d'exécuter à nouveau
R3SETUP.N'oubliez pas également de démarrer le
programme d'écoute
d'&oracle; à nouveau (en
tant que
orasid
avec umask 0; lsnrctl start) s'il a
également été stoppé (par
exemple en raison d'un redémarrage du
système).Etape OSUSERSIDADM_IND_ORA lors de l'utilisation de
R3SETUPSi R3SETUP se plaint à ce stade,
éditez le fichier modèle utilisé par
R3SETUP à ce moment
(CENTRDB.R3S (4.6B) ou
CENTRAL.R3S ou
DATABASE.R3S (4.6C)). Localisez la
ligne [OSUSERSIDADM_IND_ORA] ou cherchez
l'unique entrée STATUS=ERROR et
éditez les valeurs suivantes:HOME=/home/sidadm (was empty)
STATUS=OK (had status ERROR)Vous pouvez ensuite relancer
R3SETUP.Etape OSUSERDBSID_IND_ORA lors de l'utilisation de
R3SETUPIl est possible que R3SETUP se
plaigne également à ce stade. L'erreur ici
est similaire à celle durant la phase
OSUSERSIDADM_IND_ORA. Editez juste le fichier modèle
utilisé par R3SETUP à ce
moment (CENTRDB.R3S (4.6B) ou
CENTRAL.R3S ou
DATABASE.R3S (4.6C)). Localisez la
ligne [OSUSERDBSID_IND_ORA] ou cherchez
l'unique entrée STATUS=ERROR et
éditez la valeur suivante dans la section:STATUS=OKPuis relancez R3SETUP.Erreur oraview.vrf FILE NOT FOUND
lors de l'installation d'&oracle;Vous n'avez pas désélectionné la
visionneuse de texte en ligne d'&oracle;
avant de débuter l'installation. Elle est
sélectionnée par défaut même si
cette option n'est actuellement pas disponible pour Linux.
Désélectionnez cet élément dans
le menu d'installation d'&oracle;
et relancez l'installation.Erreur TEXTENV_INVALID lors du
lancement de R3SETUP, RFC ou SAPguiSi cette erreur apparaît, la “locale”
correcte n'est pas présente. La note &sap; 0171356
liste les RPMs nécessaires (e.g.
saplocales-1.0-3,
saposcheck-1.0-1 pour RedHat 6.1).
Dans le cas où vous avez ignoré toutes les
erreurs en rapport et modifié la valeur du
STATUS correspondant de la valeur
ERROR vers la valeur
OK (dans
CENTRDB.R3S) à chaque fois que
R3SETUP s'est plaint et que vous avez
relancé R3SETUP, le système
&sap; ne sera pas correctement
configuré et vous ne serez pas en mesure de vous
connecter au système avec
SAPgui, même si le
système peut être lancé. Tenter de se
connecter avec l'ancien SAPgui
Linux donna les messages suivants:Sat May 5 14:23:14 2001
*** ERROR => no valid userarea given [trgmsgo. 0401]
Sat May 5 14:23:22 2001
*** ERROR => ERROR NR 24 occured [trgmsgi. 0410]
*** ERROR => Error when generating text environment. [trgmsgi. 0435]
*** ERROR => function failed [trgmsgi. 0447]
*** ERROR => no socket operation allowed [trxio.c 3363]
SpeicherzugriffsfehlerCe comportement est dû au fait que
&sap.r3; est incapable d'assigner
correctement une “locale” et n'est
lui-même pas correctement configuré
(entrées manquantes dans certaines tables de la base
de données). Pour être en mesure de se
connecter à &sap;, ajoutez
les entrées suivantes au fichier
DEFAULT.PFL (voir la note
0043288):abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0BRedémarrer le système
&sap;. Vous pouvez maintenant vous
connecter au système, même si les
paramétrages spécifiques à certaines
langues peuvent ne pas fonctionner comme attendu.
Après la correction des paramétrages de langue
(et après avoir fourni les “locales”
correctes), ces entrées peuvent être
supprimées du fichier
DEFAULT.PFL et le système
&sap; peut être
relancé.Erreur ORA-00001Cette erreur s'est produite uniquement avec
&oracle; 8.1.7 sous &os;.
La raison était que la base de données
&oracle; ne pouvait pas
s'initialiser correctement et plantait, laissant des
sémaphores et de la mémoire partagée
sur le système. La tentative suivante de
démarrer la base de données retourna alors
l'erreur ORA-00001.Retrouvez-les avec la commande ipcs
-a et détruisez-les avec
ipcrm.Erreur ORA-00445
(le processus en tâche de fond PMON n'a pas
démarré — “Background Process PMON Did Not
Start”)Cette erreur s'est produite avec &oracle;
8.1.7. Cette erreur est rapportée si
la base de données est démarrée avec la
procédure startsap habituelle (par
exemple startsap_majestix_00) en tant
qu'utilisateur prdadm.Une solution possible est de démarrer la base de
données sous l'utilisateur
oraprd avec la commande
svrmgrl:&prompt.user; svrmgrl
SVRMGR> connect internal;
SVRMGR> startup;
SVRMGR> exitErreur ORA-12546 (Lancez le
programme d'écoute avec les droits corrects —
“Start Listener with Correct
Permissions”)Démarrez le programme d'écoute
(“listener”) d'&oracle;
sous l'utilisateur oraids avec les
commandes suivantes:&prompt.root; umask 0; lsnrctl startSinon vous pourrez obtenir l'erreur
ORA-12546 étant donné que les
“sockets” n'auront pas les bonnes permissions.
Consultez la note &sap; 0072984.Erreur ORA-27102 (Mémoire
épuisée — “Out of Memory”)Cette erreur s'est produite quand nous avons essayé
des valeurs pour MAXDSIZ et
DFLDSIZ supérieures à 1 Go
(1024x1024x1024). De plus, nous avons eu l'erreur
Linux Error 12: Cannot allocate
memory.Erreur [DIPGNTAB_IND_IND] lors de l'utilisation de
R3SETUPEn général, vous devez consulter la note &sap;
0130581 (“R3SETUP step
DIPGNTAB terminates”). Lors de
l'installation d'IDES, pour certaines raisons le processus
d'installation n'a pas utilisé le nom correct pour le
système &sap; “IDS”,
mais la chaîne de caractère ""
à la place. Cela conduit à des problèmes
mineurs d'accès aux répertoires, comme les chemins
sont générés dynamiquement en utilisant
l'identifiant système
SID (dans ce cas IDS). Aussi
au lieu d'accéder par:/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00les chemins suivants ont été
utilisé:/usr/sap//SYS/...
/usr/sap/D00Afin de poursuivre l'installation, nous avons
créé un lien et un répertoire
supplémentaire:&prompt.root; pwd
/compat/linux/usr/sap
&prompt.root; ls -l
total 4
drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00
drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS
lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 transNous avons également trouvé des notes &sap;
(0029227 et 0008401) décrivant ce comportement. Nous
n'avons pas rencontré un seul de ces problèmes
lors de l'installation de SAP
4.6C.Erreur [RFCRSWBOINI_IND_IND] lors de l'utilisation de
R3SETUPLors de l'installation de
SAP 4.6C, cette erreur est juste
une conséquence d'une autre erreur survenant plus
tôt dans l'installation. Dans ce cas, vous devez
consulter les fichiers journaux correspondant et corriger
le véritable problème.Si après avoir cherché dans les fichiers
journaux cette erreur est confirmée (consultez les
notes &sap;), vous pouvez modifier la valeur du
STATUS de l'étape posant
problème de la valeur ERROR
à la valeur OK. Après
l'installation, vous devez exécuter le report
RSWBOINS à partir de la
transaction SE38. Lire la note &sap; 0162266 pour des
informations supplémentaires au sujet des phases
RFCRSWBOINI et
RFCRADDBDIF.Erreur [RFCRADDBDIF_IND_IND] lors de l'utilisation de
R3SETUPIci les même restrictions s'appliquent:
assurez-vous en consultant les fichiers journaux, que cette
erreur n'est pas causée par d'autres problèmes
apparus précédemment.Si vous avez confirmation que la note &sap; 0162266
s'applique, modifiez juste la valeur du
STATUS de l'étape posant
problème de la valeur ERROR
à la valeur OK (fichier
CENTRDB.R3S) et relancez
R3SETUP. Après l'installation,
vous devez exécuter le report
RADDBDIF à partir de la
transaction SE38.Erreur sigaction sig31: File size limit
exceededCette erreur s'est produite lors du lancement des
processus &sap;disp+work. Si
&sap; est démarré
avec la procédure startsap, les
sous-processus sont alors lancés, et lancent les
autres processus &sap;. Cela a
pour résultat le fait que la procédure ne
remarquera pas si quelque chose se passe mal.Pour contrôler si les processus
&sap; ont démarré
correctement, consultez l'état des processus avec la
commande ps ax | grep
SID, qui vous donnera
une liste de tous les processus
&oracle; et
&sap;. S'il semble que certains
processus sont manquant ou que vous ne pouvez pas vous
connecter au système &sap;,
consultez les fichiers journaux correspondants qui peuvent
être trouvés dans le répertoire
/usr/sap/SID/DVEBMGSnr/work/.
+ class='directory'>/usr/sap/SID/DVEBMGSnr/work/.
Les fichiers à consulter sont
dev_ms et
dev_disp.Le signal 31 se produit ici si la quantité de
mémoire partagée utilisée par
&oracle; et
&sap; dépasse celle
définie dans le fichier de configuration du noyau et
ce problème peut être résolu en
utilisant une valeur plus grande:# larger value for 46C production systems:
options SHMMAXPGS=393216
# smaller value sufficient for 46B:
#options SHMMAXPGS=262144Le lancement de saposcol
échoueIl y a quelques problèmes avec le programme
saposcol (version 4.6D). Le
système &sap; utilise saposcol pour
collecter les données concernant les performances du
système. Ce programme n'est pas nécessaire
pour utiliser le système &sap;, aussi ce
problème peut être considéré
comme mineur. Les anciennes versions (4.6B) fonctionnent,
mais ne récupèrent pas toutes les
données (nombreux sont les appels qui retournent
juste 0, par exemple pour l'utilisation du CPU).Sujets avancésSi vous êtes curieux de savoir comment la
compatibilité binaire avec Linux fonctionne, cette
section est faite pour vous. La plupart de ce qui suit est
principalement basé sur un courrier électronique
de Terry Lambert tlambert@primenet.com
envoyé à la &a.chat; (Message ID:
<199906020108.SAA07001@usr09.primenet.com>).Comme ça marche?chargeur de classe d'exécution&os; possède une abstraction appelée
“chargeur de classe d'exécution”. C'est
une portion de l'appel système &man.execve.2;.Ce qui se passe est que &os; dispose d'une liste de
chargeurs, à la place d'un simple chargeur avec retour
(“fallback”) vers le chargeur
#! pour exécuter n'importe quel
interpréteur de commandes ou procédure.Historiquement, l'unique chargeur sur les plate-formes
&unix; examinait le nombre magique (généralement
les 4 ou 8 premiers octets du fichier) pour voir si
c'était un binaire connu par le système, et si
c'était le cas, invoquait le chargeur binaire.Si ce n'était pas le type de binaire du
système, l'appel &man.execve.2; retournait un
échec, et l'interpréteur de commandes tentait de
l'exécuter comme une commande
d'interpréteur.Cette hypothèse est celle par défaut quelque
soit l'interpréteur de commandes actuel.Plus tard, une modification a été faite sur
&man.sh.1; pour examiner les deux premiers caractères,
et s'ils étaient :\n, alors elle
invoquait l'interpréteur de commandes &man.csh.1;
à la place (nous pensons que l'entreprise SCO fut la
première à faire cette modification).Ce que fait maintenant &os; est de parcourir une liste de
chargeurs, avec un chargeur #!
générique qui reconnaît les noms des
interpréteurs qui se trouvent après le
caractère espace suivant, puis avec un retour possible
vers /bin/sh.ELFPour le support de l'ABI Linux, &os; voit le nombre
magique comme un binaire ELF (il ne fait pas la
différence à ce niveau entre &os;, &solaris;,
Linux, ou tout autre système d'exploitation qui dispose
d'un type d'image ELF).SolarisLe chargeur ELF recherche une marque
spécifique, qui se trouve dans une section de commentaire
dans l'image ELF, et qui n'est pas présente dans les
binaires SVR4/&solaris; ELF.Pour que les binaires Linux puissent fonctionner, ils
doivent être marqués sous le
type Linux avec &man.brandelf.1;:&prompt.root; brandelf -t Linux fileQuand cela est fait, le chargeur ELF verra le marquage
Linux sur le fichier.ELFmarquageLorsque le chargeur ELF voit le marquage
Linux, le chargeur remplace un pointeur
dans la structure proc. Tous les appels
système sont indéxés par
l'intermédiaire de ce pointeur (dans un système
&unix; traditionnel, cela serait la structure
sysent[], contenant les appels
système). De plus, le processus est marqué pour
une gestion spéciale du vecteur d'interruption
(“trap”) pour le signal de code
“trampoline”, et plusieurs autres corrections
(mineures) qui sont gérées par le noyau
Linux.Le vecteur d'appel système Linux contient, entre
autres, une liste des entrées
sysent[] dont les adresses résident
dans le noyau.Quand un appel système est effectué par le
binaire Linux, le code “trap”
déréférence de la structure
proc le pointeur de la fonction de l'appel
système, et utilise les points d'entrée Linux,
et non pas &os;, de d'appel système.De plus, le mode Linux redéfinit dynamiquement
l'origine des requêtes; c'est, en effet, ce qu'effectue
l'option (pas le
type de système de fichiers
unionfs!) de montage des systèmes de
fichiers. Tout d'abord, une tentative est faite pour
rechercher le fichier dans le répertoire /compat/linux/chemin-origine,
+ class='directory'>/compat/linux/chemin-origine,
puis uniquement si cela échoue, la
recherche est effectuée dans le répertoire
/chemin-origine.
+ class='directory'>/chemin-origine.
Cela permet de s'assurer que les binaires nécessitant
d'autres binaires puissent s'exécuter (par exemple,
l'ensemble des outils Linux peuvent tourner sous l'ABI Linux).
Cela signifie également que les binaires Linux peuvent
charger et exécuter les binaires &os;, s'il n'y a pas
de binaires Linux correspondant présents, et vous
pourriez placer une commande &man.uname.1; dans l'arborescence
- /compat/linux pour vous
+ /compat/linux pour vous
assurer que les binaires Linux ne puissent pas dire qu'ils ne
tournent pas sous Linux.En effet, il y a un noyau Linux dans le noyau &os;; les
diverses fonctions sous-jacentes qui implémentent tous
les services fournis par le noyau sont identiques entre les
deux tables d'entrées des appels systèmes &os;
et Linux: les opérations sur les systèmes de
fichiers, les opérations sur la mémoire
virtuelle, la gestion des signaux, l'IPC System V, etc. La
seule différence est que les binaires &os; utilisent
les fonctions glue de &os;, et les
binaires Linux celles de Linux (les plus anciens
systèmes d'exploitation avaient uniquement leurs
propres fonctions de glue: les adresses
des fonctions dans une structure sysent[]
statique globale, au lieu des adresses des fonctions
déréférencées d'un pointeur
initialisé dynamiquement pointant vers la structure
proc du processus faisant l'appel).Laquelle est l'ABI native &os;? Cela n'a pas
d'importance. Basiquement, la seule différence est que
(actuellement, cela pourrait facilement changer dans les
versions futures, et probablement après cela) les
fonctions glue de &os; sont liées
en statique dans le noyau, les fonctions
glue Linux peuvent être
liées statiquement, ou l'on peut y accéder via
un module du noyau.Oui, mais est-ce vraiment de l'émulation? Non.
C'est l'implémentation d'une interface binaire pour les
applications (ABI). Il n'y a pas d'émulateur (ou de
simulateur, pour couper court aux prochaines questions)
impliqué.Mais pourquoi appelle-t-on parfois cela
“émulation Linux”? Pour rendre difficile
la vente des versions de &os;! Sérieusement, c'est
dû au fait que l'implémentation historique a
été faite à une époque où
il n'y avait pas vraiment d'autres mots pour décrire ce
qui était en développement; dire que &os;
exécutait les binaires Linux n'était pas vrai si
vous n'aviez pas compilé le code ou chargé un
module, aussi un terme était nécessaire pour
qualifier ce qui était chargé — donc
l'“émulateur Linux”.