diff --git a/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml index 9ccbe1da2d..b309c24d76 100644 --- a/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/cutting-edge/chapter.sgml @@ -1,2058 +1,2058 @@ Jim Mock Restructuré, réorganisé, et en partie mis à jour par Jordan Hubbard Travail original de Poul-Henning Kamp John Polstra Nik Clayton Questions avancées &trans.a.fonvieille; Synopsis &os; est en constant développement entre deux versions. Pour ceux désirant toujours être à jour, il existe plusieurs mécanismes simples pour maintenir votre système synchronisé avec les derniers développements. Soyez prévenus—cela ne s'adresse pas à tout le monde! Ce chapitre vous aidera à décider si vous voulez suivre les développements, ou vous en tenir aux versions publiées. Après la lecture de ce chapitre, vous connaîtrez: La différence entre les deux branches de développement: &os.stable; et &os.current;. Comment maintenir votre système à jour avec CVSup, CVS, ou CTM. 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 (). &os.current; contre &os.stable; -CURRENT -STABLE Il 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 <emphasis>n'est pas</emphasis> &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; -CURRENT utilisation Inscrivez-vous à la &a.current; et la &a.cvsall;. 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.cvsall.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. Récupérez les sources sur un site miroir &os;. Vous pouvez le faire de deux manières: cvsup cron -CURRENT Synchronisation avec CVSup Utilisez le programme cvsup avec le fichier supfile nommé standard-supfile disponible dans le répertoire /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. -CURRENT Synchroniser avec CTM Utilisez 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. -CURRENT compilation Avant 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; -STABLE utilisation Inscrivez-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. La liste &a.cvsall.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 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: cvsup cron -STABLE Synchronisation avec CVSup Utilisez le programme cvsup avec le fichier supfile nommé stable-supfile disponible dans le répertoire /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. -STABLE Synchroniser avec CTM Utilisez 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. -STABLE compilation Avant 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 sources Il 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. CVS anonyme CVS 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. CTM CTM, à 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ème recompiler le système Une 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 sauvegarde On 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 diffusion liste de diffusion Les 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 <command>make world</command> De 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ème Pour 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; make buildworld &prompt.root; make buildkernel &prompt.root; make installkernel &prompt.root; reboot Dans 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; mergemaster -p &prompt.root; make installworld &prompt.root; mergemaster &prompt.root; reboot Lisez les explications supplémentaires La 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 <filename>/usr/src/UPDATING</filename> Avant 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 <filename>/etc/make.conf</filename> make.conf Contrô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 <filename>/etc</filename> Le 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 -p Si 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 -print affichera 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-utilisateur mode mono-utilisateur Il 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-utilisateurs Une 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 now sur 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 -a Cela 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 -i Cela 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 <filename>/usr/obj</filename> Au 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 base Enregistrer la sortie C'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ème Vous 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). make Pour 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 -DVARIABLE cible Dans 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 cible est 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 libraries dans /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 cible 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 buildworld Il 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ée compilation du système durée De 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 noyau noyau compilation Pour 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 recompilé 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=MONNOYAU Notez 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-utilisateur mode mono-utilisateur Vous 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ème Si 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 installworld Si 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 buildworld vous devrez ensuite installer les résultats avec: &prompt.root; make -DNO_PROFILE installworld sinon 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 <command>make installworld</command> La 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. Tom Rhodes Contribution de <command>mergemaster</command> mergemaster L'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 manuelle Si 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 <filename>/etc</filename> actuel Bien 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.old conviendra; 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 distribution Cela 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/null Ceci 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/shells Cela 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 (<filename>/var/tmp/root</filename>) un nom qui inclue une date, pour pouvoir facilement comparer les différentes versions Si 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 distribution Reporter 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-19980221 Gé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-19980214 Ré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émarrer Vous 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 now C'est fini Vous 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 install Questions Dois-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.c src/games/sail/pl_main.c src/release/sysinstall/config.c src/release/sysinstall/media.c src/share/mk/bsd.port.mk cela 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 11 Cela 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 all Cela 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/src Cet 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/obj Comme 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 cleandir En 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! Mike Meyer Contribution de Suivre les mises à jour pour plusieurs machines NFS installation de multiples machines Si 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éliminaires Premiè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 sur toutes les machines de l'ensemble de compilation est 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 base Maintenant 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és La 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. diff --git a/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml index a89c79552c..730edbfbc7 100644 --- a/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml @@ -1,1054 +1,1054 @@ Jim Mock Restructuré, réorganisé, et parties réécrites par Introduction &trans.a.fonvieille; Synopsis Merci de votre intérêt pour FreeBSD! Le chapitre suivant traite de divers aspects concernant le projet FreeBSD, comme son histoire, ses objectifs, son mode de développement, et d'autres. Après la lecture de ce chapitre, vous connaîtrez: Comment FreeBSD est lié aux autres systèmes d'exploitation. L'histoire du Projet FreeBSD. Les objectifs du Projet FreeBSD. Les bases du mode de développement open-source de FreeBSD. Et bien sûr: l'origine du nom “FreeBSD”. Bienvenue à FreeBSD! 4.4BSD-Lite FreeBSD est une système d'exploitation basé sur 4.4BSD-Lite2 pour les ordinateurs à base d'architecture Intel (x86 et &itanium;), AMD64, les ordinateurs DEC Alpha, et Sun &ultrasparc;. Le portage pour d'autres architectures est également en cours. Pour connaître l'histoire du projet, lisez Un court historique de FreeBSD. Pour avoir une description de la version la plus récente, allez à la section A propos de cette version. Si vous voulez contribuer d'une façon ou d'une autre au projet FreeBSD (code, matériel, chèques en blanc), voyez s'il vous plaît à la section Contribuer à FreeBSD. Que peut faire FreeBSD? FreeBSD dispose de nombreuses caractéristiques remarquables. Parmi lesquelles: multi-tâche préemptif Multi-tâche préemptif avec ajustement dynamique des priorités pour garantir un partage équilibré et fluide de l'ordinateur entre les applications et les utilisateurs et cela même sous les charges les plus importantes. accès multi-utilisateurs Accès multi-utilisateurs qui permet à de nombreuses personnes d'utiliser en même temps un système FreeBSD à des fins très différentes. Cela signifie, par exemple, que des périphériques tels que les imprimantes ou les lecteurs de bandes peuvent être partagés entre tous les utilisateurs sur le système ou sur le réseau et que des limitations d'utilisation des ressources peuvent être appliquées à des utilisateurs ou groupes d'utilisateurs, protégeant ainsi les ressources systèmes critiques d'une sur-utilisation. Réseau TCP/IP Réseau TCP/IP complet dont le - support de standards industriels comme SLIP, PPP, NFS, DHCP, - et NIS. Cela signifie que votre machine FreeBSD peut + support de standards industriels comme SCTP, DHCP, NFS, + NIS, PPP et SLIP. Cela signifie que votre machine FreeBSD peut coopérer facilement avec d'autres systèmes ou être utilisée comme serveur d'entreprise, fournissant des fonctions essentielles comme NFS (accès aux fichiers en réseau) et le service de courrier électronique, ou encore l'accès de votre entreprise à l'Internet grâce aux services WWW, FTP, et aux fonctionnalités de routage et de coupe-feu (sécurité). protection de la mémoire La protection de la mémoire garantit que les applications (ou les utilisateurs) ne peuvent interférer entre eux. Une application qui plante n'affectera en rien les autres. FreeBSD est un système d'exploitation 32-bits (64-bits sur l'architecture Alpha, &itanium;, AMD64, et &ultrasparc;) et a été conçu comme tel dès le début. système X Window XFree86 Le Système X Window (X11R6), standard industriel, fournit une interface graphique à l'utilisateur (Graphical User Interface - GUI), moyennant l'achat d'une carte VGA ordinaire et d'un moniteur, et est livré avec l'intégralité de son code source. Compatibilité binaire Linux Compatibilité binaire SCO Compatibilité binaire SVR4 Compatibilité binaire BSD/OS Compatibilité binaire NetBSD Compatibilité binaire avec de nombreux programmes compilés pour Linux, SCO, SVR4, BSDI et NetBSD. Des milliers d'applications prêtes à l'emploi sont disponibles grâce au catalogue des logiciels portés (ports) et au catalogue des logiciels pré-compilés (packages). Pourquoi chercher sur l'Internet alors que tout est là?. Des milliers d'applications faciles à porter sont disponibles sur l'Internet. FreeBSD est compatible au niveau du code source avec les systèmes &unix; commerciaux les plus répandus et donc la plupart des applications exigent peu, sinon aucune modification, pour les compiler. mémoire virtuelle Mémoire virtuelle à la demande et “cache unifié pour les disques et la mémoire virtuelle” cela permet de répondre aux besoins des applications gourmandes en mémoire tout en garantissant le temps de réponse aux autres utilisateurs. Traitement symétrique multiprocesseurs (SMP) Support du traitement symétrique multiprocesseurs (SMP). compilateurs C compilateurs C++ compilateurs Fortran Des outils complets de développement C, C++, et Fortran. De nombreux autres langages pour la recherche de pointe et le développement sont aussi disponibles dans les catalogues des logiciels portés et pré-compilés. code source La disponibilité Code source de l'intégralité du système vous donne un contrôle total sur votre environnement. Pourquoi être prisonnier d'une solution propriétaire et dépendant de votre fournisseur alors que vous pouvez avoir un véritable système ouvert? Une documentation en ligne très complète. Et beaucoup d'autres choses encore! 4.4BSD-Lite Computer Systems Research Group (CSRG) U.C. Berkeley FreeBSD est basé sur la version 4.4BSD-Lite2 du “Computer Systems Research Group” (CSRG) de l'Université de Californie à Berkeley et continue la tradition de développement renommée des systèmes BSD. En plus de l'excellent travail fourni par le CSRG, le Projet FreeBSD a investi des milliers d'heures de travail pour optimiser le système pour arriver aux meilleures performances et au maximum de fiabilité sous la charge d'un environnement de production. Alors que la plupart des géants dans le domaine des systèmes d'exploitation pour PC s'acharnent encore à obtenir de telles possibilités, performances et fiabilité, FreeBSD peut les offrir dès maintenant! La seule limite aux domaines d'application auxquels FreeBSD peut satisfaire est votre propre imagination. Du développement de logiciels à la production robotisée, de la gestion de stocks à la correction d'azimut pour les antennes satellites; si un &unix; commercial peut le faire, il y a de très fortes chances que FreeBSD le puisse aussi! FreeBSD bénéficie aussi de centaines d'applications de haute qualité développées par les centres de recherche et les universités du monde entier, souvent disponibles gratuitement ou presque. Il existe aussi des applications commerciales et leur nombre croît de jour en jour. Comme le code source de FreeBSD lui-même est globalement disponible, le système peut aussi être adapté sur mesure à un point pratiquement jamais atteint pour des applications ou des projets particuliers, d'une façon qui serait habituellement impossible avec les systèmes d'exploitation commerciaux de la plupart des principaux fournisseurs. Voici juste quelques exemples d'applications pour lesquelles FreeBSD est utilisé: Services Internet: les fonctionnalités réseau TCP/IP robustes qu'inclut FreeBSD en font la plate-forme idéale pour un éventail de services Internet, tels que: serveurs FTP Serveurs FTP serveurs web Serveurs World Wide Web (standard ou sécurisé [SSL]) coupe-feu IP masquerading NAT Coupe-feux et passerelles de traduction d'adresses (“IP masquerading”) email Serveurs de courrier électronique USENET Serveurs de News USENET (forums de discussion) ou Bulletin Board Systems (BBS) Et plus... Avec FreeBSD, vous pouvez facilement commencer petit avec un PC 386 à bas prix et évoluer jusqu'à un quadri-processeurs Xeon avec stockage RAID au fur et à mesure que votre entreprise s'agrandit. Education: Etes-vous étudiant en informatique ou dans un domaine d'ingénierie apparenté? Il n'y a pas de meilleur moyen pour étudier les systèmes d'exploitation, l'architecture des ordinateurs et les réseaux que l'expérience directe et de “derrière la coulisse” que FreeBSD peut vous apporter. Il y a aussi un grand nombre d'outils mathématiques, graphiques et de Conception Assistée par Ordinateur qui en font un outil très utile pour ceux qui s'intéressent aux ordinateurs essentiellement pour faire un autre travail! Recherche: Avec le code source de la totalité du système disponible, FreeBSD est un excellent outil de recherche sur les systèmes d'exploitation tout autant que pour d'autres branches de l'informatique. Le fait que FreeBSD soit librement disponible rend aussi possible l'échange d'idées et le développement partagé entre groupes éloignés sans avoir à se préoccuper de problèmes de licence particulières ou de restrictions à ce qui pourrait être discuté sur des forums ouverts. routeur serveur DNS Réseau: Il vous faut un nouveau routeur? Un serveur de domaine (DNS)? Un coupe-feu pour tenir les gens à l'écart de votre réseau interne? FreeBSD peut facilement faire de votre vieux 386 ou 486 inutilisé qui traîne dans un coin un routeur évolué avec des fonctionnalités sophistiquées de filtrage de paquets. système X Window XFree86 système X Window Accelerated-X Station de travail X Window: FreeBSD est un excellent choix pour faire un terminal X peu coûteux,i en utilisant le serveur X11 librement disponible. Au contraire d'un terminal X, FreeBSD permet d'exécuter localement, si désiré, un grand nombre d'applications, déchargeant ainsi le serveur central. FreeBSD peut même démarrer “sans disque”, ce qui permet de concevoir des postes de travail individuels moins chers et plus faciles à administrer. Compilateur GNU Développement de logiciel: Le système FreeBSD de base inclut un environnement de développement complet dont les compilateur et débogueur GNU C/C++ réputés. FreeBSD est disponible sous forme de code source ou binaire sur CDROM, DVD ou par ftp anonyme, Voyez pour plus de détails. Qui utilise FreeBSD? utilisateurs les sites importants utilisant FreeBSD FreeBSD est utilisé par certains des plus importants sites sur l'Internet, parmi lesquels: Yahoo! Yahoo! Apache Apache Blue Mountain Arts Blue Mountain Arts Pair Networks Pair Networks Sony Japan Sony Japan Netcraft Netcraft Weathernews Weathernews Supervalu Supervalu TELEHOUSE America TELEHOUSE America Sophos Anti-Virus Sophos Anti-Virus JMA Wired JMA Wired et de nombreux autres. A propos du Projet FreeBSD La section suivante fournit des informations générales sur le projet, dont un court historique, les objectifs du projet, et le mode de développement du projet. Jordan Hubbard Contribution de Un court historique de FreeBSD 386BSD Patchkit Hubbard, Jordan Williams, Nate Grimes, Rod Projet FreeBSD historique Le projet FreeBSD a vu le jour au début de 1993, en partie comme extension du “Kit de mise à jour non officiel de 386BSD” des trois derniers coordinateurs du kit de mise à jour : Nate Williams, Rod Grimes et moi-même. 386BSD Notre objectif de départ était de fournir une distribution intermédiaire de 386BSD pour corriger un certain nombre de problèmes que le mécanisme du kit de mise à jour ne permettait pas de résoudre. Certains d'entre vous se rappellent peut-être que l'intitulé de travail d'origine du projet était “386 BSD 0.5” ou “386BSD Interim” en référence à ce problème. Jolitz, Bill 386BSD était le système d'exploitation de Bill Jolitz, qui souffrait assez sévèrement à ce moment-là d'avoir été négligé pendant presque un an. Comme le kit de mise à jour enflait de plus en plus inconfortablement au fil des jours, nous avons décidé à l'unanimité qu'il fallait faire quelque chose et aider Bill en fournissant cette distribution provisoire de “remise à plat”. Ces projets se sont brutalement interrompus lorsque Bill a décidé de retirer son aval au projet sans dire clairement ce qui serait fait à la place. Greenman, David Walnut Creek CDROM Il ne nous a pas fallu longtemps pour décider que l'objectif restait valable, même sans l'adhésion de Bill, et nous avons donc adopté le nom “FreeBSD”, une proposition de David Greenman. Nos objectifs de départ ont été définis après avoir consulté les utilisateurs du moment du système et, dès qu'il est devenu clair que le projet était parti pour devenir un jour éventuellement réalité, nous avons contacté Walnut Creek CDROM dans l'optique d'améliorer la distribution de FreeBSD pour le grand nombre de ceux qui n'avaient pas la chance de pouvoir accéder facilement à l'Internet. Non seulement Walnut Creek CDROM a adopté l'idée de distribuer FreeBSD sur CDROM, mais a été jusqu'à fournir au projet une machine pour travailler et une connexion rapide à l'Internet. Sans le degré pratiquement sans précédent de confiance de Walnut Creek CDROM en ce qui n'était alors qu'un projet totalement inconnu, il y a peu de chance que FreeBSD ait été aussi loin, aussi vite, que là où il en est aujourd'hui. 4.3BSD-Lite Net/2 U.C. Berkeley 386BSD Free Software Foundation La première version sur CDROM (et sur l'ensemble du Net) fut FreeBSD 1.0, parue en Décembre 1993. Elle reposait sur la bande 4.3BSD-Lite (“Net/2”) de l'Université de Californie à Berkeley, avec de nombreux composants venant aussi de 386BSD et de la “Free Software Foundation”. Ce fut un succès honnête pour une version initiale, qui fut suivi par le franc succès de la version 1.1 de FreeBSD, publiée en Mai 1994. Novell U.C. Berkeley Net/2 AT&T A peu près à cette époque, des nuages menaçants et inattendus apparurent lorsque commença la bataille juridique entre Novell et l'U.C. Berkeley autour du statut légal de la bande Net/2 de Berkeley. Dans les termes de l'accord, l'U.C. Berkeley concédait qu'une grande partie de Net/2 était du code “protégé” et propriété de Novell, qui l'avait à son tour racheté à AT&T quelque temps auparavant. Berkeley obtint en retour la “bénédiction” de Novell que 4.4BSD-Lite soit, lorsqu'il vit finalement le jour, déclaré non protégé et que tous les utilisateurs de Net/2 soit fortement incités à migrer. Cela incluait FreeBSD, et l'on donna au projet jusqu'à Juillet 1994 pour mettre un terme à son propre produit basé sur Net/2. Selon les termes de cet accord, une dernière livraison était autorisée avant le délai final; ce fut FreeBSD 1.1.5.1. FreeBSD s'attela alors à la tâche difficile de littéralement se réinventer à partir de fragments totalement nouveaux et assez incomplets de 4.4BSD-Lite. Les versions “Lite” étaient légères (“light”) en partie parce que le CSRG avait retiré de gros morceaux du code nécessaires pour que l'on puisse effectivement en faire un système qui démarre (pour différentes raisons légales) et parce que le portage pour Intel de la version 4.4 était très partiel. Il fallu au projet jusqu'à Novembre 1994 pour terminer cette étape de transition et que FreeBSD 2.0 paraisse sur l'Internet et sur CDROM (fin Décembre). Bien qu'elle fut encore assez rugueuse aux angles, cette livraison obtint un succès significatif et fut suivie par la version 2.0.5 de FreeBSD, plus fiable et facile à installer, en Juin 1995. Nous avons publié FreeBSD 2.1.5 en Août 1996, et il s'avéra suffisamment populaire chez les fournisseurs d'accès et les utilisateurs professionnels pour qu'une nouvelle version sur la branche 2.1-STABLE soit justifiée. Ce fut la version FreeBSD 2.1.7.1, parue en Février 1997 et qui marque la fin de 2.1-STABLE comme branche principale de développement. Dès lors, il n'y aurait plus que des améliorations quant à la sécurité et autres corrections de bogues critiques sur cette branche, (RELENG_2_1_0), passée en phase de maintenance. La branche FreeBSD 2.2 fut créée à partir de la branche principale de développement (“-CURRENT”) en Novembre 1996 en tant que branche RELENG_2_2, et la première version complète (2.2.1) parut en Avril 1997. Il y eut d'autres versions sur la branche 2.2 à l'été et à l'automne 97, la dernière (2.2.8) parut en Novembre 1998. La première version officielle 3.0 sortira en Octobre 1998 et annoncera le début de la fin pour la branche 2.2. Il y eut la création de nouvelles branches le 20 Janvier 1999, donnant une branche 4.0-CURRENT et une branche 3.X-STABLE. De cette dernière il y eut la version 3.1 livrée le 15 Février 1999, la version 3.2 livrée le 15 Mai 1999, la 3.3 le 16 Septembre 1999, la 3.4 le 20 Décembre 1999 et la 3.5 le 24 Juin 2000, qui fut suivit quelques jours plus tard par une mise à jour mineure 3.5.1 pour rajouter quelques correctifs de sécurité de dernière minute sur Kerberos. Cela sera la dernière version de la la branche 3.X à paraître. Le 13 Mars 2000 a vu l'apparition d'une nouvelle branche: la branche 4.X-STABLE. Il y a eu plusieurs versions jusqu'ici: la 4.0-RELEASE est sortie en Mars 2000, et la dernière version, la 4.11-RELEASE est sortie en Janvier 2005. La tant attendue 5.0-RELEASE a été annoncée le 19 Janvier 2003. Etant le point culminant de près de trois ans de travail, cette version a engagé &os; sur la voie d'un support avancé des systèmes multiprocesseurs et des “threads”, et a introduit le support des plateformes &ultrasparc; et ia64. Cette version fut suivie de la 5.1 en Juin 2003. La dernier version 5.X issue de la branche -CURRENT fut la 5.2.1-RELEASE présentée en Février 2004. La branche RELENG_5 créée en Août 2004, suivie par la 5.3-RELEASE, marque le début de la branche 5-STABLE. La version la plus récente, la &rel2.current;-RELEASE, est sortie en &rel2.current.date;. Il n'est pas prévu de publier d'autres versions de la branche RELENG_5. La branche RELENG_6 a été créée en Juillet 2005. La version 6.0-RELEASE, la première version issue de la branche 6.X a été rendue publique en Novembre 2005. La version la plus récente, la &rel.current;-RELEASE, est sortie en &rel.current.date;. De nouvelles versions sont prévues pour la branche RELENG_6. Pour le moment, les projets de développement à long terme continuent à se faire dans la branche (tronc) 7.X-CURRENT, et des “instantanées” de la 7.X sur CDROM (et, bien sûr, sur le net) sont continuellement mises à disposition sur le serveur d'instantané pendant l'avancement des travaux. Jordan Hubbard Contribution de Les objectifs du projet FreeBSD Projet FreeBSD objectifs L'objectif du projet FreeBSD est de fournir du logiciel qui puisse être utilisé à n'importe quelle fin et sans aucun restriction. Nombre d'entre nous sont impliqués de façon significative dans le code (et dans le projet) et ne refuseraient certainement pas une petite compensation financière de temps à autre, mais ce n'est certainement pas dans nos intentions d'insister là dessus. Nous croyons que notre première et principale “mission” est de fournir du code à tout le monde, pour n'importe quel projet, de façon à ce qu'il soit utilisé le plus possible et avec le maximum d'avantages. C'est, nous le pensons, l'un des objectifs les plus fondamentaux du Logiciel Libre et l'un de ceux que nous soutenons avec enthousiasme. GNU General Public License (GPL) GNU Lesser General Public License (LGPL) BSD Copyright Le code de l'arborescence des sources, qui est régi par la Licence Publique GNU (“GNU Public License” - GPL) ou la Licence Publique GNU pour les Bibliothèques (“GNU Library Public License” - GLPL) impose légèrement plus de contraintes, bien que plutôt liées à une disponibilité plus grande qu'au contraire, comme c'est généralement le cas. En raison des complications supplémentaires qui peuvent résulter de l'utilisation commerciale de logiciels GPL, nous essayons, cependant de remplacer ces derniers par des logiciels soumis à la licence BSD qui est plus souple, chaque fois que c'est possible. Satoshi Asami Contribution de Le mode de développement de FreeBSD Projet FreeBSD mode de développement Le développement de FreeBSD est un processus très ouvert et très souple, c'est littéralement le résultat de contributions de centaines de personnes dans le monde entier, ce que reflète notre liste des participants. L'infrastructure de développement de &os; permet à ces centaines de développeurs de collaborer via l'Internet. Nous sommes toujours à l'affût de nouveaux développeurs et de nouvelles idées, et ceux que s'impliquer de plus près intéresse n'ont besoin que de contacter la &a.hackers;. La &a.announce; est aussi disponible pour ceux qui veulent faire connaître aux autres utilisateurs de FreeBSD les principaux domaines de développement en cours. Quelques points utiles à connaître à propos du projet FreeBSD et de son processus de développement, que vous travailliez indépendamment ou en collaboration étroite: Les archives CVS CVS archives Concurrent Versions System CVS L'arborescence centrale des sources de FreeBSD est gérée sous CVS (Concurrent Version System), un système librement disponible de gestion de version des sources qui est livré avec FreeBSD. Les archives CVS principales sont sur une machine à Santa Clara CA, USA, d'où elles sont répliquées sur de nombreuses machines miroir à travers le monde. L'arborescence CVS qui contient les branches -CURRENT et -STABLE peut facilement être dupliquée sur votre propre machine. Reportez-vous à la section Synchroniser votre arborescence des sources pour plus d'informations sur la façon de procéder. La liste des personnes autorisées, les “committers” personnes autorisées, “committers” Les personnes autorisées (committers) sont celles qui ont les droits en écriture sur l'arborescence CVS, et sont autorisées à faire des modifications dans les sources de FreeBSD (le terme “committer” vient de la commande &man.cvs.1; commit, que l'on utilise pour reporter des modifications dans les archives CVS). La meilleure façon de proposer des modifications pour qu'elles soient validées par les “committers” est d'utiliser la commande &man.send-pr.1;. S'il semble y avoir un problème dans ce système, vous pouvez aussi les joindre en envoyant un courrier électronique à &a.committers;. L'équipe de base de FreeBSD équipe de base de FreeBSD L'équipe de base de FreeBSD serait l'équivalent du comité de direction si le Projet FreeBSD était une entreprise. La responsabilité principale de l'équipe de base est de s'assurer que le projet, dans son ensemble, fonctionne correctement et va dans la bonne direction. Proposer à des développeurs impliqués et responsables de rejoindre notre groupe de personnes autorisées est une des fonctions de l'équipe de base, ainsi que le recrutement de nouveaux membres de l'équipe de base quand d'autres s'en vont. L'actuelle équipe de base a été élu à partir d'un ensemble de “committers” candidats en Juillet 2006. Des élections ont lieu tous les 2 ans. Certains membres de l'équipe de base ont aussi leur propre domaine de responsabilité, ce qui signifie qu'il leur est dévolu de veiller à ce qu'une partie significative du système satisfasse aux fonctionnalités annoncées. Pour une liste complète des développeurs FreeBSD et de leurs domaines de responsabilité, veuillez consulter la liste des participants au projet. La plupart des membres de l'équipe de base sont volontaires en ce qui concerne le développement de FreeBSD et ne retirent aucun profit financier du projet, donc “implication” ne doit pas être compris “support garanti”. La comparaison précédente avec un comité directeur n'est pas tout à fait exacte, et il serait plus juste de dire que ce sont des gens qui ont sacrifié leur vie à FreeBSD contre toute raison! Contributions extérieures contributions Enfin, mais certainement pas des moindres, le groupe le plus important de développeurs est constitué par les utilisateurs eux-mêmes qui nous fournissent de façon quasi régulière leur retour d'expérience et leurs corrections de bogues. Le principal moyen d'entrer en contact avec le développement plus décentralisé de FreeBSD est de s'inscrire sur la &a.hackers; où ces questions sont abordées. Voyez pour plus d'informations concernant les diverses listes de discussion &os;. La liste de ceux qui ont contribué au projet est longue et en augmentation, pourquoi donc ne pas vous y joindre et contribuer à quelque chose en retour dès aujourd'hui? Fournir du code n'est pas la seule manière de contribuer au projet; pour avoir une liste plus complète de ce qu'il y a à faire, voyez s'il vous plaît le site du projet FreeBSD. En résumé, notre modèle de développement est organisé comme un ensemble relâché de cercles concentriques. Ce modèle centralisé est en place pour la commodité des utilisateurs de FreeBSD, qui disposent ainsi d'un moyen facile de suivre l'évolution d'une base de code centrale, et non pour tenir à l'écart d'éventuels participants! Nous souhaitons fournir un système d'exploitation stable avec un nombre conséquent de programmes d'application cohérents que les utilisateurs puissent facilement installer et employer — c'est un modèle qui fonctionne très bien pour cela. Tout ce que nous attendons de ceux qui se joindraient à nous pour développer FreeBSD est un peu de la même implication que les développeurs actuels ont vis-à-vis de sa réussite continue! A propos de cette version NetBSD OpenBSD 386BSD Free Software Foundation U.C. Berkeley Computer Systems Research Group (CSRG) FreeBSD est une version librement disponible et incluant tout le code source basé sur 4.4BSD-Lite2 pour les ordinateurs à architectures Intel &i386;, &i486;, &pentium;, &pentium; Pro, &celeron;, &pentium; II, &pentium; III, &pentium; 4 (ou compatible), &xeon;, DEC Alpha et systèmes basés sur &ultrasparc; de Sun. Il est basé essentiellement sur du logiciel du groupe CSRG de l'Université de Californie à Berkeley, avec des additions venant de NetBSD, OpenBSD, 386BSD, et de la “Free Software Foundation”. - Depuis la publication de FreeBSD 2.0 en Janvier 95, les + Depuis la publication de FreeBSD 2.0 fin 1994, les performances, fonctionnalités et la stabilité de FreeBSD ont été améliorées de façon spectaculaire. La plus grosse modification est un gestionnaire de mémoire virtuelle totalement revu qui comprend un cache commun au disque et à la mémoire virtuelle, qui n'améliore pas seulement les performances, mais diminue aussi l'occupation de la mémoire, de telle sorte qu'une configuration avec 5 MO devienne un minimum acceptable. D'autres ajouts concernent le support intégral des clients et serveurs NIS, le support des transactions TCP, les connexions PPP à la demande, le support intégré DHCP, un sous-système SCSI amélioré, support ISDN, support pour l'ATM, FDDI, les cartes “Fast et Gigabit Ethernet” (1000 Mbit), un meilleur support des derniers contrôleurs Adaptec et des milliers de corrections de bogues. En plus du système lui-même, FreeBSD offre un nouveau catalogue de logiciels portés (“ports”) qui inclut des milliers de programmes habituellement demandés. A l'heure où sont écrites ces lignes il y avait plus de &os.numports; logiciels portés! La liste va des serveurs HTTP (WWW) aux jeux, langages, éditeurs et presque tout ce qui existe entre. Le catalogue complet des logiciels demande près de &ports.size; d'espace disque, les portages se présentant sous forme de “delta” avec les sources d'origine. Cela rend leur mise à jour bien plus facile, et diminue de façon sensible l'espace nécessaire par rapport à l'ancien catalogue 1.0. Pour compiler un logiciel porté, il vous suffit d'aller dans le répertoire du programme que vous désirez installer, de taper make install, et de laisser le système faire le reste. La distribution originale complète de chaque logiciel est chargée dynamiquement depuis le CDROM ou un site FTP proche, il vous suffit de disposer de suffisamment d'espace disque pour compiler le logiciel que vous voulez. Presque tous les logiciels sont aussi fournis sous forme pré-compilée (“package”—paquetage) qui peut être installé avec une seule commande (pkg_add), si vous ne voulez pas les compiler à partir des sources. Plus d'information sur les paquetages et les logiciels portés peut être trouvée dans le . Il y a un certain nombre d'autres documents qui vous serons peut-être très utiles à l'installation et à l'utilisation de FreeBSD, que vous pouvez maintenant trouver dans le répertoire /usr/share/doc de n'importe quelle machine sous une version récente de &os;. Vous pouvez consulter les manuels localement disponibles avec n'importe quel navigateur HTML aux URLs suivantes: Le Manuel FreeBSD /usr/share/doc/handbook/index.html La FAQ de FreeBSD /usr/share/doc/faq/index.html Vous pouvez aussi consulter les exemplaires originaux (et les plus souvent mis à jour) sur http://www.FreeBSD.org. diff --git a/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml index 241fd2d3a5..f348aae9ac 100644 --- a/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/linuxemu/chapter.sgml @@ -1,3928 +1,3928 @@ Jim Mock Restructuré et en partie mis à jour par Brian N. Handy Contribution originelle de Rich Murphey Compatibilité binaire avec Linux &trans.a.fonvieille; Synopsis compatibilité binaire avec Linux compatibilité binaire Linux &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, + &realplayer;, VMware, &oracle;, - WordPerfect, Doom, + &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 (). Installation KLD (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 linux Si 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.ko options du noyau LINUX Si 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 Linux Linux installer les bibliothèques Linux Cela 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_base catalogue des logiciels portés C'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 distclean La 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 main Si 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émentaires bibliothèques partagées Que 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.29 liens symboliques Vous 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.27 et 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.29 Si 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 ELF Linux binaires ELF Une é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 Abort Pour 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-linux outils GNU Les 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 domaines Si le DNS ne fonctionne pas, ou si vous avez les messages: resolv+: "bind" is an invalid keyword resolv+: "hosts" is an invalid keyword Vous devrez configurer un fichier /compat/linux/etc/host.conf contenant: order hosts, bind multi on Où 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.
Boris Hollas Mis à jour pour &mathematica; 5.X par Installer &mathematica; applications Mathematica Ce 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=3 Avec 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 done Obtenir votre mot de passe pour &mathematica; Ethernet adresse MAC Quand 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; mkfontdir Maintenant 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 rehash Si 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ères Si 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. Aaron Kaplan Contribution de Robert Getschmann Remerciements à Installer &maple; applications Maple &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; ./xmaple Cela devrait fonctionner. Assurez-vous d'écrire à Maplesoft pour leur indiquer que vous désirez une version native pour &os;! Pièges courants Le 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=XXXXXXXXX Le 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). Dan Pelleg Contribution de Installer &matlab; applications MATLAB Ce 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/install Le 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/matlab Editez 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 licence Cré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_TMW Cré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 0 Le fichier doit être rendu exécutable: &prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.sh Vous 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 start Lier 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 ./jre Cré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; then Cré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 0 Rendez le fichier exécutable: &prompt.root; chmod +x $MATLAB/bin/finish.sh Utilisation de &matlab; A ce point, vous êtes prêt à taper la commande matlab et à commencer à l'utiliser. Marcel Moolenaar Contribution de Installer &oracle; applications Oracle Préface Ce 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 Linux Assurez-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 package L'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 noyau optimisation du noyau Comme 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=61 Configurez 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 communication Compte &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. Environnement En plus des variables d'environnement normales d'&oracle; comme ORACLE_HOME et ORACLE_SID vous devez fixer les variables d'environnement suivantes: Variable Valeur LD_LIBRARY_PATH $ORACLE_HOME/lib CLASSPATH $ORACLE_HOME/jdbc/lib/classes111.zip PATH /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/bin Il 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 PATH Installer &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 install N'oubliez pas de lancer à nouveau root.sh! Appliquer un correctif au fichier root.sh Quand 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 script Quand 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 genclntsh La 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.lst Exé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. Holger Kipp Contribution de Valentino Vaschetto Conversion 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éface Ce 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-STABLE Mê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. Logiciels Les CD-ROMs suivants ont été utilisés pour les installations de &sap;: &sap.r3; 4.6B, &oracle; 8.0.5 Nom Numéro Description KERNEL 51009113 Noyau SAP Oracle / Installation / AIX, Linux, Solaris RDBMS 51007558 Oracle / RDBMS 8.0.5.X / Linux EXPORT1 51010208 IDES / DB-Export / Disque 1 sur 6 EXPORT2 51010209 IDES / DB-Export / Disque 2 sur 6 EXPORT3 51010210 IDES / DB-Export / Disque 3 sur 6 EXPORT4 51010211 IDES / DB-Export / Disque 4 sur 6 EXPORT5 51010212 IDES / DB-Export / Disque 5 sur 6 EXPORT6 51010213 IDES / DB-Export / Disque 6 sur 6 De 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.7 Nom Numéro Description KERNEL 51014004 Noyau SAP Oracle / Noyau SAP Version 4.6D / DEC, Linux RDBMS 51012930 Oracle 8.1.7/ RDBMS / Linux EXPORT1 51013953 Version 4.6C SR2 / Export / Disque 1 sur 4 EXPORT1 51013953 Version 4.6C SR2 / Export / Disque 2 sur 4 EXPORT1 51013953 Version 4.6C SR2 / Export / Disque 3 sur 4 EXPORT1 51013953 Version 4.6C SR2 / Export / Disque 4 sur 4 LANG1 51013954 Version 4.6C SR2 / Langue / DE, EN, FR / Disque 1 sur 3 En 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.5 Numéro Titre 0171356 SAP sous Linux: Remarques importantes 0201147 INST: 4.6C R/3 Inst. sur UNIX - Oracle 0373203 Mise à jour / Migration Oracle 8.0.5 --> 8.0.6/8.1.6 LINUX 0072984 Digital UNIX 4.0B pour Oracle 0130581 Fin de l'étape DIPGNTAB de R3SETUP 0144978 Votre système n'a pas été installé correctement 0162266 Questions et conseils pour R3SETUP sous Windows NT / W2K &sap.r3; 4.6C, &oracle; 8.1.7 Numéro Titre 0015023 Initialisation de la table TCPDB (RSXP0004) (EBCDIC) 0045619 R/3 avec plusieurs langues ou languages or typefaces 0171356 SAP sous Linux: Remarques importantes 0195603 RedHat 6.1 version entreprise: problèmes connus 0212876 Le nouvel outil d'archivage SAPCAR 0300900 Linux: matériel DELL 0377187 RedHat 6.2: remarques importantes 0387074 INST: R/3 4.6C SR2 Installation sous UNIX 0387077 INST: R/3 4.6C SR2 Inst. sous UNIX - Oracle 0387078 SAP sous UNIX: Dépendances 4.6C SR2 Matériel nécessaire L'é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: Composant 4.6B 4.6C Processeur 2 x 800MHz &pentium; III 2 x 800MHz &pentium; III Mémoire 1Go ECC 2Go ECC Espace disque 50-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.5 Le 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.7 Pour 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 disques Pour 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 fichiers Taille (blocs de 1k) Taille (Go) Monté sous /dev/da0s1a 1.016.303 1 / /dev/da0s1b 6 swap /dev/da0s1e 2.032.623 2 /var /dev/da0s1f 8.205.339 8 /usr /dev/da1s1e 45.734.361 45 /compat/linux/oracle /dev/da1s1f 2.032.623 2 /compat/linux/sapmnt /dev/da1s1g 2.032.623 2 /compat/linux/usr/sap Configurez 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 <command>make world</command> et compiler un nouveau noyau Té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 Linux Installer le système de base Linux Tout 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 distclean Installer l'environnement de développement Linux L'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 distclean L'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écessaires RPMs Pour 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.rpm Pour 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émentaires Cela 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/R3 Créer les systèmes de fichiers et points de montage nécessaires Pour une simple installation, il est suffisant de créer les systèmes de fichiers suivants: point de montage taille en Go /compat/linux/oracle 45 Go /compat/linux/sapmnt 2 Go /compat/linux/usr/sap 2 Go Il 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/sap Un 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 ID nom du groupe description 100 dba Administrateur de la base de données 101 sapsys Système &sap; 102 oper Opérateur de la base de données Pour 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 utilisateur nom d'utilisateur nom générique groupe groupes supplémentaires description 1000 idsadm/prdadm sidadm sapsys oper Administrateur &sap; 1002 oraids/oraprd orasid dba oper Administrateur 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épertoires Ces 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/sap Ensuite nous crérons les répertoires en tant qu'utilisateur orasid. Ce seront tous les répertoires du type /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; exit Pour 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_32 Le répertoire 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; exit Entrées dans <filename>/etc/services</filename> &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écessaires locale &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-1 Cré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-1 S'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 noyau optimisation du noyau Les 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 keys Les 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-cd 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 /mnt Exécuter la procédure d'installation Tout d'abord, vous devez préparer un répertoire install: &prompt.root; cd /oracle/SID/sapreorg &prompt.root; mkdir install &prompt.root; cd install Ensuite la procédure d'installation est lancée, qui copiera tous fichiers correspondant dans le répertoire install: &prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SH L'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 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 <command>R3SETUP</command> 4.6B Assurez-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/lib Lancez R3SETUP en tant que root à partir du répertoire d'installation: &prompt.root; cd /oracle/IDS/sapreorg/install &prompt.root; ./R3SETUP -f CENTRDB.R3S La procédure pose ensuite un certain nombre de questions (les valeurs par défaut sont entre crochets, suivies par les entrées clavier): Question Défaut Entrée(s) clavier Enter SAP System ID [C11] IDSEntrée Enter SAP Instance Number [00] Entrée Enter SAPMOUNT Directory [/sapmnt] Entrée Enter name of SAP central host [troubadix.domain.de] Entrée Enter name of SAP db host [troubadix] Entrée Select character set [1] (WE8DEC) Entrée Enter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.6 1Entrée Extract Oracle Client archive [1] (Yes, extract) Entrée Enter path to KERNEL CD [/sapcd] /oracle/IDS/sapreorg/KERNEL Enter path to RDBMS CD [/sapcd] /oracle/IDS/sapreorg/RDBMS Enter path to EXPORT1 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT1 Directory to copy EXPORT1 CD [/oracle/IDS/sapreorg/CD4_DIR] Entrée Enter path to EXPORT2 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT2 Directory to copy EXPORT2 CD [/oracle/IDS/sapreorg/CD5_DIR] Entrée Enter path to EXPORT3 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT3 Directory to copy EXPORT3 CD [/oracle/IDS/sapreorg/CD6_DIR] Entrée Enter path to EXPORT4 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT4 Directory to copy EXPORT4 CD [/oracle/IDS/sapreorg/CD7_DIR] Entrée Enter path to EXPORT5 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT5 Directory to copy EXPORT5 CD [/oracle/IDS/sapreorg/CD8_DIR] Entrée Enter path to EXPORT6 CD [/sapcd] /oracle/IDS/sapreorg/EXPORT6 Directory to copy EXPORT6 CD [/oracle/IDS/sapreorg/CD9_DIR] Entrée Enter amount of RAM for SAP + DB 850Entrée (en mégaoctets) Service Entry Message Server [3600] Entrée Enter Group-ID of sapsys [101] Entrée Enter Group-ID of oper [102] Entrée Enter Group-ID of dba [100] Entrée Enter User-ID of sidadm [1000] Entrée Enter User-ID of orasid [1002] Entrée Number of parallel procs [2] Entrée Si 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 <command>R3SETUP</command> 4.6C SR2 Assurez-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/lib Lancez R3SETUP en tant que root à partir du répertoire d'installation: &prompt.root; cd /oracle/PRD/sapreorg/install &prompt.root; ./R3SETUP -f CENTRAL.R3S La procédure pose ensuite un certain nombre de questions (les valeurs par défaut sont entre crochets, suivies par les entrées clavier): Question Défaut Entrée(s) clavier Enter SAP System ID [C11] PRDEntrée Enter SAP Instance Number [00] Entrée Enter SAPMOUNT Directory [/sapmnt] Entrée Enter name of SAP central host [majestix] Entrée Enter Database System ID [PRD] PRDEntrée Enter name of SAP db host [majestix] Entrée Select character set [1] (WE8DEC) Entrée Enter Oracle server version (2) Oracle 8.1.7 2Entrée Extract Oracle Client archive [1] (Yes, extract) Entrée Enter path to KERNEL CD [/sapcd] /oracle/PRD/sapreorg/KERNEL Enter amount of RAM for SAP + DB 2044 1800Entrée (en mégaoctets) Service Entry Message Server [3600] Entrée Enter Group-ID of sapsys [100] Entrée Enter Group-ID of oper [101] Entrée Enter Group-ID of dba [102] Entrée Enter User-ID of oraprd [1002] Entrée Enter User-ID of prdadm [1000] Entrée LDAP support 3Entrée (pas de support) Installation step completed [1] (continue) Entrée Choose installation service [1] (DB inst,file) Entrée Jusqu'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.5 Consultez 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 <command>orainst</command> Si &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.rpm compat-glibc-5.2-2.0.7.2.i386.rpm compat-egcs-5.2-1.0.3a.1.i386.rpm compat-egcs-c++-5.2-1.0.3a.1.i386.rpm compat-binutils-5.2-2.9.1.0.23.1.i386.rpm Consultez 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; ./orainst Confirmez 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 Linux Prennez 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/. 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ées Ensuite, 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): Question Entrée(s) clavier Enter Password for sapr3 sapEntrée Confirum Password for sapr3 sapEntrée Enter Password for sys change_on_installEntrée Confirm Password for sys change_on_installEntrée Enter Password for system managerEntrée Confirm Password for system managerEntrée A ce point, nous avons eut quelques problèmes avec dipgntab durant l'installation de la version 4.6B. Programme d'écoute Démarrer le programme d'écoute (“listener”) d'&oracle; sous l'utilisateur orasid comme suit: &prompt.user; umask 0; lsnrctl start Sinon 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 MNLS Si 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-installation Demander 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 -get Appeler 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 -install Vous 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 chars Créer les utilisateurs Cré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âche Transaction Configurez le système de transport, par exemple entité autonome de domaine de transport (Stand-Alone Transport Domain Entity) STMS Créez / Editez le profil système RZ10 Maintenez les modes d'opération et les instances RZ04 Cela et toutes les autres étapes de post-installation sont intégralement décrites dans les guides d'installation &sap;. Editer <filename>init<replaceable>sid</replaceable>.sap</filename> (<filename>initIDS.sap</filename>) 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/sa0 Explications: 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'installation Les paramètres &sap; suivants devraient être optimisés après l'installation (exemples pour IDES 46B, 1 Go de mémoire): Nom Valeur ztta/roll_extension 250000000 abap/heap_area_dia 300000000 abap/heap_area_nondia 400000000 em/initial_size_MB 256 em/blocksize_kB 1024 ipc/shm_psize_40 70000000 Note &sap; 0013026: Nom Valeur ztta/dynpro_area 2500000 Note &sap; 0157246: Nom Valeur rdisp/ROLL_MAXFS 16000 rdisp/PG_MAXFS 30000 Avec 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 Free Problèmes lors de l'installation Relancer <command>R3SETUP</command> après la correction d'un problème R3SETUP 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.R3S pour la version 4.6B, ou avec &prompt.root; ./R3SETUP -f CENTRAL.R3S pour 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 <command>R3SETUP</command> Si 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 <command>R3SETUP</command> Il 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=OK Puis relancez R3SETUP. Erreur <errorname>oraview.vrf FILE NOT FOUND</errorname> 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 <errorname>TEXTENV_INVALID</errorname> lors du lancement de <command>R3SETUP</command>, RFC ou SAPgui Si 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] Speicherzugriffsfehler Ce 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 = TCP0B Redé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 <errorcode>ORA-00001</errorcode> Cette 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 <errorcode>ORA-00445</errorcode> (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> exit Erreur <errorcode>ORA-12546</errorcode> (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 start Sinon vous pourrez obtenir l'erreur ORA-12546 étant donné que les “sockets” n'auront pas les bonnes permissions. Consultez la note &sap; 0072984. Erreur <errorcode>ORA-27102</errorcode> (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 <command>R3SETUP</command> En 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/DVMGS00 les chemins suivants ont été utilisé: /usr/sap//SYS/... /usr/sap/D00 Afin 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 trans Nous 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 <command>R3SETUP</command> Lors 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 <command>R3SETUP</command> Ici 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 <errorcode>sigaction sig31: File size limit exceeded</errorcode> Cette 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/. 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=262144 Le lancement de <command>saposcol</command> échoue Il 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és Si 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. ELF Pour 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). Solaris Le 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 file Quand cela est fait, le chargeur ELF verra le marquage Linux sur le fichier. ELF marquage Lorsque 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, puis uniquement si cela échoue, la recherche est effectuée dans le répertoire /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 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”.
diff --git a/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml index afff0ed1a9..6d98f1b4c4 100644 --- a/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/ports/chapter.sgml @@ -1,1713 +1,1727 @@ Installer des applications: les logiciels pré-compilés et les logiciels portés &trans.a.fonvieille; Synopsis logiciels portés logiciels pré-compilés FreeBSD est livré avec une riche collection d'outils en tant que partie du système de base. Beaucoup de choses peuvent être faites avant d'avoir besoin de recourir à l'installation d'une application tiers pour effectuer un travail précis. FreeBSD fournit deux technologies complémentaires pour installer des logiciels tiers sur votre système: le Catalogue des logiciels portés de FreeBSD (pour une installation à partir des sources), et les logiciels pré-compilés ou paquetages (pour installer des binaires pré-compilés). N'importe laquelle de ces deux méthodes peut être utilisée pour installer les nouvelles versions de vos applications favorites à partir d'un support local ou directement depuis le réseau. Après la lecture de ce chapitre, vous saurez: Comment installer des logiciels tiers pré-compilés. Comment compiler des logiciels tiers à partir des sources en utilisant le catalogue de logiciels portés. Comment effacer les logiciels pré-compilés ou portés précédemment installés. Comment modifier les paramètres par défaut utilisés par le catalogue des logiciels portés. Comment trouver l'application recherchée. Comment mettre à jour vos applications. Généralités sur l'installation de logiciels Si vous avez utilisé auparavant un système &unix; vous saurez que la procédure typique pour installer les logiciels tiers ressemble à ceci: Télécharger le logiciel, qui peut être distribué sous forme de code source, ou sous forme d'un binaire. Extraire le logiciel de son format de distribution (généralement une archive tar compressée soit avec &man.compress.1;, soit avec &man.gzip.1;, ou encore &man.bzip2.1;). Recherchez la documentation (peut être un fichier INSTALL ou README, ou des fichiers dans un sous répertoire doc/) et lisez les informations sur comment installer le logiciel. Si le logiciel était distribué sous forme de sources, compilez-le. Cela peut impliquer l'édition d'un Makefile, ou l'exécution d'une procédure configure, et d'autres activités. Tester et installer le logiciel. Et cela si seulement tout se passe bien. Si vous installez un logiciel qui n'a pas été spécialement porté pour FreeBSD, il se peut que vous deviez éditer le code source pour le faire fonctionner correctement. Si vous le voulez, vous pouvez continuer d'installer des logiciels suivant la méthode “traditionnelle” sous FreeBSD. Cependant, FreeBSD fournit deux technologies avec lesquelles vous pouvez vous économiser beaucoup d'efforts: les logiciels pré-compilés et le catalogue des logiciels portés. A l'heure de l'écriture de ces lignes, plus de &os.numports; applications tierces sont ainsi mises à disposition. Pour n'importe quelle application donnée, le logiciel pré-compilé FreeBSD pour cette application est un unique fichier à télécharger. Il contient les copies pré-compilées de toutes les commandes de l'application, ainsi que tous fichiers de configuration et documentation. Un logiciel pré-compilé téléchargé peut être manipulé avec les commandes FreeBSD de gestion des logiciels pré-compilés, comme &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1;, et ainsi de suite. L'installation d'une nouvelle application peut être effectuée grâce à une unique commande. Un logiciel porté pour FreeBSD est un ensemble de fichiers conçus pour automatiser le processus de compilation d'une application à partir du code source. Rappelez-vous qu'il y a un certain nombre d'étapes que vous effectueriez si vous compiliez un programme vous-même (téléchargement, extraction, application de correctifs, compilation, installation). Les fichiers qui composent un logiciel porté contiennent toute l'information nécessaire pour permettre au système de faire cela pour vous. Vous lancez une poignée de commandes simples et le code source de l'application est automatiquement téléchargé, extrait, corrigé, compilé, et installé pour vous. En fait, le catalogue des logiciels portés peut être utilisé pour générer ce qui pourra plus tard être manipulé avec pkg_add et d'autres commandes de gestion des logiciels pré-compilés qui seront présentés sous peu. Les logiciels pré-compilés et le catalogue des logiciels portés comprennent la notion de dépendances. Supposez que vous voulez installer une application qui dépend de l'installation d'une bibliothèque particulière. L'application et la bibliothèque ont été toutes deux rendues disponibles sous forme de logiciel porté pour FreeBSD ou de logiciel pré-compilé. Si vous utilisez la commande pkg_add ou le catalogue des logiciels portés pour ajouter l'application, tous les deux remarqueront que la bibliothèque n'a pas été installée, et installeront automatiquement en premier la bibliothèque. Etant donné que les deux technologies sont presque semblables, vous pourriez vous demander pourquoi FreeBSD s'ennuie avec les deux. Les logiciels pré-compilés et le catalogue de logiciels portés ont chacun leurs propres forces, et celle que vous emploierez dépendra de votre préférence. Avantages des logiciels pré-compilés L'archive compressée d'un logiciel pré-compilé est généralement plus petite que l'archive compressée contenant le code source de l'application. Les logiciels pré-compilés ne nécessitent pas de compilation supplémentaire. Pour les grosses applications, comme Mozilla, KDE, ou GNOME cela peut s'avérer important, particulièrement si vous êtes sur un système lent. Les logiciels pré-compilés ne demandent pas une compréhension du processus impliqué dans la compilation de logiciels sous FreeBSD. Avantages du catalogue des logiciels portés Les logiciels pré-compilés sont normalement compilés avec des options conservatrices, parce qu'ils doivent pouvoir tourner sur le plus grand nombre de systèmes. En installant à partir du catalogue des logiciels portés, vous pouvez ajuster les options de compilation pour (par exemple) générer du code - spécifique au Pentium IV ou à l'Athlon. + spécifique au Pentium 4 ou à l'Athlon. Certaines applications ont des options de compilation concernant ce qu'elles peuvent faire et ne pas faire. Par exemple, Apache peut être configuré avec une très large variété d'options intégrées différentes. En compilant à partir du catalogue des logiciels portés vous n'avez pas à accepter les options par défaut, et vous pouvez les configurez vous-même. Dans certains cas, de multiples logiciels pré-compilés existeront pour la même application pour spécifier certaines configurations. Par exemple, Ghostscript est disponible comme logiciel pré-compilé ghostscript et ghostscript-nox11 , en fonction de si vous avez installé ou non un serveur X11. Ce type d'arrangement est possible avec les logiciels pré-compilés, mais devient rapidement impossible si une application a plus d'une ou deux options de compilation. Les licences de certains logiciels interdisent les distributions binaires. Ils doivent être distribués sous forme de code source. Certaines personnes ne font pas confiance aux distributions binaires. Au moins avec le code source, vous pouvez (en théorie) le parcourir et chercher les problèmes potentiels par vous-même. Si vous avez des correctifs locaux, vous aurez besoin du code source afin de les appliquer. Certaines personnes aiment avoir le code source à portée de main, ainsi elles peuvent le lire si elles s'ennuient, le modifier, y faire des emprunts (si la licence le permet bien sûr), etc... Pour suivre les mises à jour du catalogue des logiciels portés, inscrivez-vous à la &a.ports; et la &a.ports-bugs;. Avant d'installer une application, vous devriez consulter à la recherche de problème de sécurité concernant votre application. Vous pouvez également installer ports-mgmt/portaudit qui contrôlera automatiquement toutes les applications installées à la recherche de vulnérabilités connues, un contrôle sera également effectué avant toute compilation de logiciel porté. De même, vous pouvez utiliser la commande portaudit -F -a après avoir installé des logiciels pré-compilés. Le reste de ce chapitre expliquera comment utiliser les logiciels pré-compilés et le catalogue des logiciels portés et la gestion des logiciels tiers sous FreeBSD. Trouver votre application Avant que vous puissiez installer des applications vous devez savoir ce que vous voulez, et comment se nomment les applications. La liste des applications disponibles pour FreeBSD augmente de jours en jours. Heureusement, il y a plusieurs façons de trouver ce que vous désirez: Le site web de FreeBSD maintient à jour une liste, dans laquelle on peut effectuer des recherches, de toutes les applications disponibles à l'adresse http://www.FreeBSD.org/ports/. Le catalogue des logiciels portés est divisé en catégories, et vous pouvez soit chercher une application par son nom (si vous le connaissez), soit lister toutes les applications disponibles dans une catégorie. FreshPorts Dan Langille maintient FreshPorts, à l'adresse . FreshPorts suit les modifications des applications dans le catalogue des logiciels portés, vous permet de “surveiller” un ou plusieurs logiciels portés, et peut vous envoyer un courrier électronique quand ils sont mis à jour. FreshMeat Si vous ne connaissez pas le nom de l'application que vous voulez, essayez d'utiliser un site comme FreshMeat () pour trouver une application, ensuite vérifiez sur le site de FreeBSD si l'application a déjà été portée. Si vous connaissez le nom exact du logiciel, vous devez juste déterminer dans quelle catégorie il se trouve, vous pouvez utiliser la commande &man.whereis.1; pour cela. Tapez simplement whereis filefile est le programme que vous voulez installer. S'il est trouvé sur le système, on vous indiquera où il se trouve, de la manière suivante: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Cela nous indique que lsof (un utilitaire système) peut être trouvé dans le répertoire /usr/ports/sysutils/lsof. Encore une autre façon de trouver un logiciel porté particulier est d'utiliser le mécanisme de recherche interne du catalogue des logiciels portés. Pour utiliser la fonction de recherche, vous devrez vous trouver dans le répertoire /usr/ports. Une fois dans ce répertoire, lancez make search name=program-nameprogram-name représente le nom du programme que vous voulez localiser. Par exemple, si vous recherchiez lsof: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: La partie du message de sortie à laquelle vous devez prêter attention est la ligne “Path:”, car cela vous indique où trouver le logiciel porté. Les autres informations ne sont pas nécessaires afin d'installer le logiciel porté, aussi on en parlera pas ici. Pour une recherche plus en profondeur vous pouvez également utiliser make search key=stringstring est le texte à rechercher. Cela recherche les noms de logiciels portés, les commentaires, les descriptions et les dépendances et peut être utilisé pour trouver des logiciels portés se rapportant à un sujet particulier si vous ne connaissez pas le nom du programme que vous cherchez. Dans les deux cas, la chaîne de caractère de recherche n'est pas sensible à la casse des caractères. Rechercher “LSOF” mènera aux même résultats que la recherche de “lsof”. Chern Lee Contribution de Utiliser le système des logiciels pré-compilés Installation d'un logiciel pré-compilé logiciels pré-compilés installation pkg_add Vous pouvez utiliser l'utilitaire &man.pkg.add.1; pour installer un logiciel pré-compilé FreeBSD à partir d'un fichier local ou d'un serveur sur le réseau. Télécharger un logiciel pré-compilé à la main puis l'installer localement &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Si vous ne disposez pas d'une source locale de logiciels pré-compilés (comme l'ensemble de CDROM de FreeBSD) alors il sera probablement plus facile d'utiliser l'option de &man.pkg.add.1;. Cela fera déterminer automatiquement à l'utilitaire le format objet et la version corrects et ensuite récupérer et installer le logiciel pré-compilé à partir d'un site FTP. pkg_add &prompt.root; pkg_add -r lsof L'exemple ci-dessus téléchargera le logiciel pré-compilé correct sans plus d'intervention de l'utilisateur. Si vous désirez indiquer un autre miroir &os; pour les logiciels pré-compilés à la place du site de distribution principal, vous devez positionner en conséquence la variable d'environnement PACKAGESITE, pour remplacer les paramètres par défaut. &man.pkg.add.1; utilise &man.fetch.3; pour télécharger les fichiers, qui respecte diverses variables d'environnement, dont FTP_PASSIVE_MODE, FTP_PROXY, et FTP_PASSWORD. Il se peut que vous ayez besoin de configurer une ou plusieurs de ces dernières si vous êtes derrière un coupe-feu, ou devez utiliser un proxy FTP/HTTP. Consultez la page de manuel &man.fetch.3; pour la liste complète des variables. Vous pouvez également remarquer que dans l'exemple ci-dessus lsof est utilisé au lieu de lsof-4.56.4. Quand la fonction de récupération à distance est utilisée, le numéro de version doit être retiré. &man.pkg.add.1; téléchargera automatiquement la toute dernière version de l'application. &man.pkg.add.1; téléchargera la dernière version de votre application si vous êtes sous &os.current; ou &os.stable;. Si vous utilisez une version -RELEASE, il récupérera la version compilée avec votre version lors de sa publication. Il est possible de modifier ce comportement en surchargeant la variable d'environnement PACKAGESITE. Par exemple, si vous utilisez un système &os; 5.4-RELEASE, par défaut &man.pkg.add.1; tentera de récupérer les applications pré-compilées à partir de ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/. Si vous désirez forcer &man.pkg.add.1; à télécharger les versions des logiciels pré-compilés pour &os; 5-STABLE, positionnez la variable PACKAGESITE à ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/. Les logiciels pré-compilés sont distribués dans les formats .tgz et .tbz. Vous pouvez les trouver sur , ou sur le CDROM de distribution de FreeBSD. Chaque CD de l'ensemble de 4-CD de FreeBSD (et le PowerPak, etc...) contient des logiciels pré-compilés dans le répertoire /packages. L'organisation des logiciels pré-compilés est semblable à celle de l'arborescence /usr/ports. Chaque catégorie possède son propre répertoire, et chaque logiciel pré-compilé peut être trouvé dans le répertoire All. La structure de répertoires du système de logiciels pré-compilés correspond à celle du catalogue des logiciels portés; ils travaillent ensemble pour former l'intégralité du système de logiciels pré-compilés/portés. Gestion des logiciels pré-compilés logiciels pré-compilés gestion &man.pkg.info.1; est un utilitaire qui liste et décrit les divers logiciels pré-compilés installés. pkg_info &prompt.root; pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ... &man.pkg.version.1; est un utilitaire qui récapitule les versions de tous les logiciels pré-compilés installés. Il compare la version du logiciel pré-compilé avec la version actuelle trouvée dans le catalogue des logiciels portés. pkg_version &prompt.root; pkg_version cvsup = docbook = ... Les symboles dans la seconde colonne indiquent l'âge relatif de la version installée et de la version disponible dans le catalogue des logiciels portés local. Symbole Signification = La version du logiciel pré-compilé installée est équivalente à celle de celui trouvé dans le catalogue des logiciels portés local. < La version installée est plus ancienne que celle disponible dans le catalogue des logiciels portés. >La version installée est plus récente que celle trouvée dans le catalogue local des logiciels portés. (le catalogue local des logiciels portés est probablement ancien) ?Le logiciel pré-compilé ne peut être trouvé dans l'index du catalogue des logiciels portés. (Cela peut se produire quand, par exemple, un logiciel installé est supprimé du catalogue des logiciels portés ou renommé.) *Il y a de multiples versions de ce logiciel pré-compilé. Effacer un logiciel pré-compilé pkg_delete logiciels pré-compilés effacer Pour désinstaller un logiciel pré-compilé précédemment installé, utilisez l'utilitaire &man.pkg.delete.1;. &prompt.root; pkg_delete xchat-1.7.1 + + Notez que &man.pkg.delete.1; a besoin du nom complet du + paquetage et du numéro de version; la commande + précédente n'aurait pas fonctionné avec + xchat à la place de + xchat-1.7.1. It est cependant + facile de retrouver la version du paquetage installé + à l'aide de la commande &man.pkg.version.1;. Vous + pouvez à la place simplement utiliser un joker: + + &prompt.root; pkg_delete xchat\* + + dans ce cas, tous les logiciels dont le nom commence par + xchat seront supprimés. Divers Toute l'information sur les logiciels pré-compilés est stockée dans le répertoire /var/db/pkg. La liste des fichiers installés pour chaque logiciel pré-compilé peut être trouvée dans des fichiers de ce répertoire. Utiliser le catalogue des logiciels portés Les sections suivantes fournissent des instructions de base sur l'utilisation du catalogue des logiciels portés pour installer et désinstaller des programmes sur votre système. Une description détaillée des cibles make et de variables d'environnement est disponible dans la page de manuel &man.ports.7;. Obtenir le catalogue des logiciels portés Avant que vous puissiez installer des logiciels portés, vous devez d'abord récupérer le catalogue des logiciels portés— qui est essentiellement un ensemble de Makefiles, de correctifs, et de fichiers de description habituellement placés dans /usr/ports. Quand vous avez installé votre système FreeBSD, sysinstall vous a demandé si vous aimeriez installer le catalogue des logiciels portés. Si vous avez choisi non, vous pouvez suivre ces instructions pour obtenir le catalogue des logiciels portés: La méthode CVSup C'est une méthode rapide pour récupérer le catalogue des logiciels portés en utilisant CVSup. Si vous voulez en apprendre plus au sujet de CVSup, lisez la section Utiliser CVSup. L'utilitaire csup est une réécriture en C du programme CVSup et est disponible sous &os; 6.2 et versions suivantes. Vous pouvez utiliser csup, qui est présent dans le système de base, et passer l'étape 1 puis remplacer la commande cvsup par csup. Pour les versions plus anciennes de &os;, pouvez installer csup par l'intermédiaire du logiciel porté ou du paquetage net/csup. Assurez-vous que le répertoire /usr/ports est vide avant d'utiliser CVSup pour la première fois. Si vous avez déjà un catalogue des logiciels portés, obtenu à partir d'une autre source, CVSup n'effacera pas les correctifs qui ont été supprimés. Installer le logiciel porté net/cvsup-without-gui: &prompt.root; pkg_add -r cvsup-without-gui Voir Installation de CVSup () pour plus de details. Lancez cvsup: &prompt.root; cvsup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile Remplacez cvsup.FreeBSD.org avec un serveur CVSup proche de vous. Voir Sites CVSup () pour une liste complète des sites miroirs. Certains peuvent vouloir utiliser leur propre ports-supfile, par exemple pour éviter d'avoir à passer le serveur CVSup sur la ligne de commande. Dans ce cas, en tant que root, copier /usr/share/examples/cvsup/ports-supfile à un nouvel emplacement, comme /root ou votre répertoire d'utilisateur. Editez ports-supfile. Remplacez CHANGE_THIS.FreeBSD.org avec un serveur CVSup proche de vous. Voir Sites CVSup () pour une liste complète des sites miroirs. Maintenant pour lancer cvsup, utilisez ce qui suit: &prompt.root; cvsup -L 2 /root/ports-supfile L'exécution ultérieure de &man.cvsup.1; téléchargera et appliquera tous les changements récents à votre catalogue des logiciels portés sans pour autant recompiler vos logiciels. La méthode Portsnap Portsnap est un système alternatif de distribution du catalogue des logiciels portés. Il a été fourni pour la première fois avec &os; 6.0. Sur les systèmes plus anciens vous pouvez l'installer à partir du logiciel pré-compilé ports-mgmt/portsnap: &prompt.root; pkg_add -r portsnap Veuillez vous reporter à la section Utiliser Portsnap pour une description détaillée de toutes les caractéristiques de Portsnap. Depuis &os; 6.1-RELEASE et avec les versions récentes pré-compilées ou portées de Portsnap, vous pouvez sans risque passer cette étape. Le répertoire /usr/ports sera créé automatiquement à la première utilisation de la commande &man.portsnap.8;. Avec les versions précédentes de Portsnap, vous devrez créé un répertoire /usr/ports s'il n'existe pas: &prompt.root; mkdir /usr/ports Téléchargez un instantané compressé du catalogue des logiciels portés dans le répertoire /var/db/portsnap. Vous pouvez vous déconnecter de l'Internet, si vous le désirez, après cette opération: &prompt.root; portsnap fetch Si vous exécutez Portsnap pour la première fois, il faut extraire l'instantané dans le répertoire /usr/ports: &prompt.root; portsnap extract Si votre répertoire /usr/ports contient déjà une version du catalogue des logiciels portés et que vous désirez juste mettre à jour, utilisez plutôt la commande: &prompt.root; portsnap update La méthode Sysinstall Cette méthode implique l'utilisation de sysinstall pour installer le catalogue des logiciels portés à partir du disque d'installation. Il faut noter que la version du catalogue qui sera installée est la version datant de la publication de votre disque d'installation. Si vous disposez d'un accès à l'Internet, vous devriez toujours utiliser une des méthodes précédemment exposées. En tant que root, lancez sysinstall (/stand/sysinstall dans les versions de &os; antérieure à 5.2) comme montré ci-dessous: &prompt.root; sysinstall Faites défiler l'écran vers le bas et sélectionnez Configure, appuyez sur Entrée. Faites défiler l'écran vers le bas et sélectionnez Distributions, appuyez sur Entrée. Faites défiler l'écran vers le bas jusqu'à ports, appuyez sur Espace. Remontez jusqu'à Exit, appuyez sur Entrée. Choisissez le support d'installation désiré, comme un CDROM, par FTP, etc. Remontez jusqu'à Exit et appuyez sur Enter. Appuyez sur la touche X pour quitter sysinstall. Installation de logiciels portés logiciels portés installation La première chose qui devrait être expliquée quand on aborde le catalogue des logiciels portés est ce que l'on entend par “squelette”. En bref, un squelette est un ensemble minimal de fichiers qui indique à votre système FreeBSD comment compiler et installer proprement un programme. Chaque squelette contient: Un fichier Makefile. Le fichier Makefile contient les diverses déclarations qui indiquent comment l'application devrait être compilée et où elle devrait être installée sur votre système. Un fichier distinfo. Ce fichier contient l'information à propos des fichiers qui doivent être téléchargés pour compiler le logiciel, et leurs sommes de contrôle, pour s'assurer que ces fichiers n'ont pas été corrompus durant le téléchargement en utilisant &man.md5.1;. Un répertoire files. Ce répertoire contient les correctifs pour permettre la compilation et l'installation du programme sur votre système FreeBSD. Les correctifs sont à la base de petits fichiers qui indiquent des modifications sur des fichiers particuliers. Ils sont sous forme de fichiers texte, qui disent “Effacer la ligne 10” ou “Modifier la ligne 26 par...”. Les correctifs sont également connus sous le nom de “diffs” car ils sont générés par le programme &man.diff.1;. Ce répertoire peut également contenir d'autres fichiers utilisés pour la compilation du logiciel porté. Un fichier pkg-descr. C'est une description plus détaillée du programme, souvent en plusieurs lignes. Un fichier pkg-plist. C'est une liste de tous les fichiers qui seront installés par le logiciel porté. Il indique également au système des logiciels portés quels fichiers sont à effacer lors d'une désinstallation. Certains logiciels portés utilisent d'autres fichiers, comme pkg-message. Le catalogue des logiciels portés utilise ces fichiers pour faire face à certaines situations spéciales. Si vous désirez plus de détails au sujet de ces fichiers, et sur les logiciels portés en général, consultez le Manuel du développeur de logiciels portés. Le logiciel porté contient les instructions pour compiler le code source, mais ne contient pas le code source. Vous pouvez obtenir le code source à partie d'un CDROM ou de l'Internet. Le code source est distribué de la façon dont l'auteur le désire. Fréquemment c'est une archive tar compressée avec gzip, mais elle pourra être compressée avec un autre outil ou même non compressée. Le code source d'un programme, peu importe la forme sous laquelle il est distribué, est appelé un fichier “distfile”. Les deux méthodes pour l'installation d'un logiciel porté pour &os; sont décrites ci-dessous. Vous devez avoir ouvert une session sous l'utilisateur root pour installer des logiciels portés. Avant d'installer un logiciel porté, vous devez vous assurer d'avoir un catalogue des logiciels portés à jour et vous devez consulter pour les problèmes de sécurité relatifs à votre logiciel. Un contrôle des problèmes de sécurité peut être effectué automatiquement par portaudit avant toute nouvelle installation d'application. Cet outil peut être trouvé dans le catalogue des logiciels porté (security/portaudit). Vous pouvez lancer portaudit -F avant l'installation d'un nouveau logiciel porté, pour télécharger la base de données actualisée des vulnérabilités. Un audit de sécurité et une mise à jour de la base de données sera effectuée lors du contrôle quotidien de sécurité de la machine. Pour plus d'informations, lisez les pages de manuel &man.portaudit.1; et &man.periodic.8;. Le catalogue des logiciels portés suppose que vous disposez d'une connection active à l'Internet. Si ce n'est pas le cas, vous devez placer manuellement une copie du distfile dans le répertoire /usr/ports/distfiles. Pour commencer, rendez-vous dans le répertoire du logiciel porté que vous voulez installer: &prompt.root; cd /usr/ports/sysutils/lsof Une fois à l'intérieur du répertoire lsof vous verrez le squelette du logiciel porté. L'étape suivante est de compiler (également appelé la “construction”) le logiciel porté. Cela est fait en tapant simplement make à l'invite. Une fois que c'est fait, vous devriez voir quelque chose comme ceci: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ... &prompt.root; Notez qu'une fois la compilation terminée, vous vous retrouvez face à l'invite. L'étape suivante est d'installer le logiciel porté. Afin de l'installer, vous devez juste ajouter un mot à la commande make, et ce mot est install: &prompt.root; make install ===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Une fois de retour à l'invite, vous devriez être en mesure d'exécuter l'application que vous venez juste d'installer. Comme lsof est un programme qui tourne avec des privilèges accrus, un avertissement sur la sécurité est affiché. Durant la compilation et l'installation de logiciels portés, vous devriez faire attention à tout avertissement qui pourrait apparaître. Il est conseillé de supprimer le sous-répertoire de travail, qui contient tous les fichiers temporaires utilisés lors de la compilation. Non seulement cela consomme de l'espace disque, mais cela posera problème plus tard lors de la mise à jour vers une nouvelle version du logiciel porté. &prompt.root; make clean ===> Cleaning for lsof-4.57 &prompt.root; Vous pouvez vous économiser deux étapes supplémentaires en lançant juste make install clean à la place de make, make install et make clean sous la forme de trois étapes séparées. Certains interpréteurs de commandes maintiennent un cache des commandes qui sont disponibles dans les répertoires listés dans la variable d'environnement PATH, pour accélérer les opérations de recherche des fichiers exécutables de ces commandes. Si vous utilisez un de ces interpréteurs de commandes, vous pourrez avoir à utiliser la commande rehash après l'installation d'un logiciel porté, avant que la commande fraîchement installée ne puisse être utilisée. Cette commande fonctionnera pour les interpréteurs de commandes comme tcsh. Utilisez la commande hash -r pour les interpréteurs tels que sh. Consultez la documentation de votre interpréteur de commandes pour plus d'information. Certains DVD-ROMs comme le &os; Toolkit de FreeBSD Mall contiennent des distfiles. Ils peuvent être utilisés avec le catalogue des logiciels portés. Montez le DVD-ROM sous /cdrom. Si vous utilisez un point de montage différent, positionnez la variable &man.make.1; CD_MOUNTPTS. Les distfiles nécessaires seront automatiquement utilisés s'ils sont présent sur le disque. Soyez conscient que les licences de quelques logiciels portés n'autorisent pas leur présence sur le CD-ROM. Cela peut être dû à la nécessité de remplir un formulaire d'enregistrement avant le téléchargement, ou que la redistribution n'est pas permise, ou toute autre raison. Si vous désirez installer un logiciel porté qui n'est pas disponible sur le CD-ROM, vous devrez vous connecter afin de récupérer les fichiers nécessaires. Le catalogue des logiciels portés utilise &man.fetch.1; pour télécharger les fichiers, qui respecte diverses variables d'environnement, dont FTP_PASSIVE_MODE, FTP_PROXY, et FTP_PASSWORD. Il se peut que vous ayez besoin de configurer une ou plusieurs de ces dernières si vous êtes derrière un coupe-feu, ou devez utiliser un proxy FTP/HTTP. Consultez la page de manuel &man.fetch.3; pour la liste complète des variables. Pour les utilisateurs qui ne peuvent rester connectés à l'Internet indéfiniment, il existe la commande make fetch. Exécutez cette commande à la base du catalogue des logiciels portés (/usr/ports) et les fichiers nécessaires seront téléchargés. Cette commande fonctionnera également dans les sous-répertoires du catalogue, par exemple: /usr/ports/net. Notez que si un logiciel porté dépend de bibliothèques particulières ou d'autres logiciels portés, cette commande de récupérera pas les sources de ces logiciels. Remplacez fetch par fetch-recursive si vous voulez récupérer également les sources des logiciels dont dépend un logiciel porté. Vous pouvez compiler tous les logiciels d'une catégorie ou de l'ensemble du catalogue en exécutant la commande make dans un répertoire de base, juste comme la commande make fetch précédente. C'est, cependant, une idée dangereuse étant donné que certains logiciels portés ne peuvent coexister. Dans d'autres cas, certains logiciels portés peuvent installer des fichiers différents ayant le même nom. Dans de rares cas les utilisateurs peuvent vouloir récupérer les archives à partir d'un site différent du MASTER_SITES par défaut (l'emplacement par défaut à partir duquel les fichiers sont téléchargés). Vous pouvez surcharger l'option MASTER_SITES avec la commande suivante: &prompt.root; cd /usr/ports/répertoire &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch Dans cet exemple nous modifions la valeur par défaut de l'option MASTER_SITES pour ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Certains logiciels portés autorisent (ou même nécessitent) des options de compilation qui permettent l'activation/désactivation de parties de l'application qui ne sont pas nécessaires, de certaines options de sécurité, et autres personnalisations. Quelques noms de logiciels viennent immédiatement à l'esprit: www/mozilla, security/gpgme, et mail/sylpheed-claws. Un message sera affiché quand de telles options sont disponibles. Modifier les répertoires par défaut des logiciels portés Il est parfois utile (ou obligatoire) d'utiliser des répertoires de travail ou cible différents. Les variables WRKDIRPREFIX et PREFIX permettent de modifier les répertoires par défaut. Par exemple: &prompt.root; make WRKDIRPREFIX=/usr/home/example/ports install compilera le logiciel dans le répertoire /usr/home/example/ports et installera tout dans /usr/local. &prompt.root; make PREFIX=/usr/home/example/local install le compilera dans /usr/ports et l'installera dans /usr/home/example/local. Et bien sûr &prompt.root; make WRKDIRPREFIX=../ports PREFIX=../local install combinera les deux (c'est trop long pour tenir sur cette page, mais cela devrait vous donner une idée générale). Alternativement, ces variables peuvent également être configurées dans votre environnement. Consultez la page de manuel de votre interpréteur de commandes pour des instructions sur la procédure à suivre. Travailler avec <command>imake</command> Certains logiciels portés qui utilisent imake (une partie du système X Window) ne fonctionnent pas correctement avec la variable PREFIX, et insisteront pour s'installer sous /usr/X11R6. De façon similaire, certains logiciels Perl ignorent PREFIX et s'installent dans l'arborescence Perl. Faire en sorte que ces logiciels portés respectent PREFIX est une tâche difficile voire impossible. Supprimer des logiciels portés installés logiciels portés désinstallation Maintenant que vous savez comment installer des logiciels portés, vous vous demandez probablement comment les effacer, juste au cas où vous en installez un et plus tard vous vous apercevez que vous n'avez pas installé le bon logiciel porté. Nous désinstallerons notre exemple précédent (qui était lsof pour ceux d'entre vous qui n'ont pas suivi). Les logiciels portés sont supprimés de la même manière que pour les logiciels pré-compilés (comme décrit dans la section Utiliser le système des logiciels pré-compilés) en utilisant la commande &man.pkg.delete.1;: &prompt.root; pkg_delete lsof-4.57 Mise à jour des logiciels portés logiciels portés mise à jour Tout d'abord, listez les logiciels portés périmés dont une nouvelle version est disponible dans le catalogue des logiciels portés à l'aide de la commande &man.pkg.version.1;: &prompt.root; pkg_version -v <filename>/usr/ports/UPDATING</filename> Une fois que vous avez mis à jour le catalogue des logiciels portés, avant de tenter la mise à jour d'un logiciel porté, vous devrez consulter le fichier /usr/ports/UPDATING. Ce fichier décrit les divers problèmes et les étapes supplémentaires que les utilisateurs pourront rencontrer ou devront effectuer lors de la mise à jour un logiciel porté, comme la modification de format de fichiers, le changement des emplacements des fichiers de configuration, ou des incompabilités avec les versions antérieures. Si le contenu du fichier UPDATING prime même s'il est en est en contradiction avec des informations présentées ici. Mise à jour des logiciels portés à l'aide de portupgrade portupgrade Le logiciel portupgrade a été conçu pour une mise à jour aisée des logiciels portés installés. Il est disponible via le logiciel porté ports-mgmt/portupgrade. Installez-le de la même manière que pour n'importe quel autre logiciel en employant la commande make install clean: &prompt.root; cd /usr/ports/ports-mgmt/portupgrade &prompt.root; make install clean Ensuite, parcourez la liste des logiciels installés avec la commande pkgdb -F et corrigez toutes les inconsistances qu'il signale. C'est une bonne idée d'effectuer ce contrôle régulièrement avant chaque mise à jour. En lançant portupgrade -a, portupgrade mettra à jour tous les logiciels portés périmés installés sur votre système. Ajoutez l'indicateur si vous voulez être consulté pour confirmer chaque mise à jour individuelle. &prompt.root; portupgrade -ai Si vous désirez mettre à jour qu'une seule application bien particulière et non pas l'intégralité des applications, utilisez la commande: portupgrade nom_du_logiciel_porté. Ajoutez l'option si portupgrade doit mettre à jour en premier lieu tous les logiciels portés nécessaires à l'application. &prompt.root; portupgrade -R firefox Pour utiliser les versions pré-compilées plutôt que les logiciels portés pour l'installation, utilisez l'option . Avec cette option portupgrade cherche les répertoires locaux listé dans la variable PKG_PATH, ou récupère les paquetages à partir d'un site distant s'ils ne sont pas trouvés localement. Si les paquetages ne peuvent pas être trouvés localement ou récupérés à distance, portupgrade utilisera les logiciels portés. Pour éviter l'usage des logiciels portés, spécifiez l'option . &prompt.root; portupgrade -PR gnome2 Pour juste récupérer les sources (ou les paquetages, si l'option est utilisée) sans compiler ni installer quelque chose, utilisez . Pour plus d'informations consultez la page de manuel &man.portupgrade.1;. Mise à jour des logiciels portés à l'aide de Portmanager portmanager Portmanager est un autre utilitaire de mise à jour aisée des logiciels portés installés. Il est disponible via le logiciel portés ports-mgmt/portmanager: &prompt.root; cd /usr/ports/ports-mgmt/portmanager &prompt.root; make install clean Tous les logiciels portés installés peuvent être mis à jour en utilisant cette simple commande: &prompt.root; portmanager -u Vous pouvez ajouter l'option pour être sollicité pour une confirmation à chaque opération qu'effectuera Portmanager. Portmanager peut également être employé pour installer de nouveaux logiciels portés sur le système. Contrairement à la commande make install clean habituelle, il mettra à jour toutes les dépendances avant de compiler et d'installer le logiciel sélectionné. &prompt.root; portmanager x11/gnome2 Si des problèmes concernant les dépendances du logiciel porté sélectionné apparaissent, vous pouvez utiliser Portmanager pour toutes les recompiler dans le bon ordre. Cette recompilation achevée, le logiciel porté en question peut alors être à son tour recompilé. &prompt.root; portmanager graphics/gimp -f Pour plus d'information, consultez la page de manuel de Portmanager. Logiciels portés et espace disque logiciels portés espace disque A la longue, l'utilisation du catalogue des logiciels portés consommera rapidement votre espace disque. Après la compilation et l'installation de logiciels à partir du catalogue des logiciels portés, vous devriez toujours penser à supprimer les répertoires de travail temporaires, work, en utilisant la commande make clean. Vous pouvez balayer l'intégralité du catalogue des logiciels portés pour supprimer tous les répertoires temporaires oubliés précédement, employez alors la commande suivante: &prompt.root; portsclean -C Avec le temps, vous accumulerez beaucoup de fichiers sources obsolètes dans le répertoire distfiles. Vous pouvez les supprimer manuellement, ou vous pouvez utiliser la commande suivante pour effacer toutes les sources qui ne correspondent plus à des logiciels portés d'actualité: &prompt.root; portsclean -D Ou pour supprimer les fichiers sources ne correspondant à aucun logiciel installé sur votre systèmes. L'utilitaire portsclean fait partie de la suite portupgrade. Pensez à supprimer les logiciels portés installés que vous n'utilisez plus. Un outil qui permet d'automatiser cette tâche est disponible via le logiciel porté ports-mgmt/pkg_cutleaves. Activités de post-installation Après l'installation d'une nouvelle application vous voudrez normalement lire la documentation qui a pu être également installée, éditer les fichiers de configuration nécessaires, vérifier que l'application est lancée au démarrage (si c'est un daemon), et ainsi de suite. Les étapes que vous devez suivre pour configurer chaque application seront bien évidemment différentes. Cependant, si vous venez juste d'installer une nouvelle application et que vous vous demandez “Et maintenant?” les astuces suivantes pourront vous aider: Utilisez &man.pkg.info.1; pour déterminer quels fichiers ont été installés et à quel endroit. Par exemple, si vous venez juste d'installer FooPackage version 1.0.0, alors la commande &prompt.root; pkg_info -L foopackage-1.0.0 | less affichera tous les fichiers installés par le logiciel pré-compilé. Portez une attention toute particulière aux fichiers dans les répertoires man/, qui seront des pages de manuel, dans les répertoires etc/ , qui seront des fichiers de configuration, et dans doc/ qui seront de la documentation plus complète. Si vous n'êtes pas sûr de la version de l'application qui vient juste d'être installée, une commande comme &prompt.root; pkg_info | grep -i foopackage déterminera tous les logiciels pré-compilés installés qui ont foopackage dans leur nom. Remplacez foopackage dans votre ligne de commande par ce qui convient. Une fois que vous avez identifié où les pages de manuel de l'application ont été installées, consultez-les en utilisant la commande &man.man.1;. De même, jetez un coup d'oeil aux exemples de fichiers de configuration, et toute autre documentation additionnelle qui peut avoir été fournie. Si l'application a un site web, consultez-le pour de la documentation supplémentaire, des listes de questions fréquemment posées, etc. Si vous n'êtes pas sûr de l'adresse du site web, elle peut être affichée dans le résultat de la commande: &prompt.root; pkg_info foopackage-1.0.0 La ligne WWW:, si elle est présente, devrait donner l'URL du site web de l'application. Les logiciels qui doivent être lancés au démarrage (comme les serveurs Internet) installent généralement un exemple de procédure de lancement dans le répertoire /usr/local/etc/rc.d. Vous devriez contrôler si ce fichier est correct et l'éditer ou le renommer si nécessaire. Consultez la section Démarrer des services pour plus d'informations. Que faire avec les logiciels portés ne fonctionnant pas? Si vous rencontrez un portage qui ne fonctionne pas, il y a certaines choses que vous pouvez faire: Vérifiez s'il n'y a pas de correctif en attente pour le logiciel porté dans la base des rapports de bogue. Si c'est le cas, il se peut que vous puissiez utiliser le correctif proposé. Demandez l'aide du responsable du logiciel porté. Tapez la commande make maintainer ou lisez le fichier Makefile pour trouver l'adresse électronique du responsable. Pensez à préciser le nom et la version du logiciel porté (envoyer la ligne $FreeBSD: du fichier Makefile) et les messages d'erreurs quand vous écrivez au responsable. Certains logiciels portés ne sont pas maintenus par une personne mais par une liste de diffusion. Plusieurs, si ce n'est toutes, les adresses de ces listes ressemblent à freebsd-listname@FreeBSD.org. Veuillez prendre cela en compte en rédigeant vos questions. En particulier, les logiciels portés apparaissant comme maintenus par freebsd-ports@FreeBSD.org ne sont en fait maintenus par personne. Correctifs et aide, s'ils y en a, provient de la communauté qui est abonnée à cette liste de diffusion. Des volontaires supplémentaires sont toujours les bienvenus! Si vous n'obtenez pas de réponse, vous pouvez utiliser &man.send-pr.1; pour soumettre un rapport de bogue (consultez Ecrire des rapports de bogue pour &os;). Corrigez le problème! Le Manuel du développeur de logiciels portés inclut des informations détaillées sur l'infrastructure des logiciels portés vous permettant de corriger le portage éventuellement défectueux ou même soumettre le votre! Récupérez la version pré-compilée sur un serveur FTP proche de vous. Le catalogue de “référence” des logiciels pré-compilés se trouve sur ftp.FreeBSD.org dans le répertoire packages, mais vérifiez d'abord votre miroir local! Il y a globalement plus de chances que cela marche, que d'essayez de compiler à partir des sources, et cela va également beaucoup plus vite. Utilisez le programme &man.pkg.add.1; pour installer le logiciel pré-compilé sur votre système.