Subversion Repositories svn LFS-FR

Rev

Rev 1344 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-tools-settingenviron">
  <?dbhtml filename="settingenvironment.html"?>

  <title>Configurer l'environnement</title>

  <para>Configurez un bon environnement de travail en créant deux
  nouveaux fichiers de démarrage pour le shell <command>bash</command>.
  En étant connecté en tant qu'utilisateur
  <systemitem class="username">hlfs</systemitem>, lancez la commande
  suivante pour créer un nouveau
  <filename>.bash_profile</filename>&nbsp;:</para>

<screen><userinput>cat &gt; ~/.bash_profile &lt;&lt; "EOF"
<literal>exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash</literal>
EOF</userinput></screen>

  <para>Lorsque vous êtes connecté en tant que
  <systemitem class="username">hlfs</systemitem>, le shell
  initial est habituellement un shell de <emphasis>login</emphasis> qui lit
  le fichier
  <filename>/etc/profile</filename> de l'hôte (contenant probablement
  quelques configurations et variables d'environnement) et puis
  <filename>.bash_profile</filename>. La commande

  <command>exec env  -i.../bin/bash</command> dans le fichier
  <filename>.bash_profile</filename> remplace le shell en cours avec un
  nouveau ayant un environnement complètement vide sauf pour les
  variables <envar>HOME</envar>, <envar>TERM</envar>, et
  <envar>PS1</envar>. Ceci nous assure qu'aucune variable
  d'environnement non souhaitée et potentiellement dangereuse, provenant
  du système hôte, ne parvienne dans l'environnement de construction. La
  technique utilisée ici s'assure de ce but d'environnement
  propre.</para>

  <para>La nouvelle instance du shell est un shell
  <emphasis>non-login</emphasis>, qui ne lit donc pas les fichiers
  <filename>/etc/profile</filename> ou
  <filename>.bash_profile</filename>, mais plutôt le fichier
  <filename>.bashrc</filename> file. Créez maintenant le fichier
  <filename>.bashrc</filename>&nbsp;:</para>

<screen><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
<literal>set +h
umask 022
HLFS=/mnt/hlfs
LC_ALL=POSIX
HLFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export HLFS LC_ALL HLFS_TGT PATH</literal>
EOF</userinput></screen>

  <para>La commande <command>set +h</command> désactive la fonction de
  hachage de <command>bash</command>. D'habitude, le hachage est une
  fonctionnalité utile&mdash;<command>bash</command> utilise une table
  de hachage pour se rappeler le chemin complet des fichiers exécutables
  pour éviter d'avoir à chercher dans <envar>PATH</envar> à chaque fois
  qu'il doit trouver le même exécutable. Néanmoins, les nouveaux outils
  devraient être utilisés dès leur installation. En désactivant la
  fonction de hachage, le shell cherchera en permanence dans
  <envar>PATH</envar> lorsqu'un programme doit être exécuté. Ainsi, le
  shell
  trouvera les nouveaux outils compilés dans
  <filename class="directory">$HLFS/tools</filename> dès qu'ils sont
  disponibles et sans se rappeler de la version précédente du même
  programme mais dans un autre emplacement.</para>

  <para>Configurer le masque de création de fichier (umask) à 022 nous
  assure que les nouveaux fichiers et répertoires créés sont modifiables
  uniquement par leurs propriétaires mais lisibles et exécutables par
  tout le monde (en supposant que les modes par défaut sont utilisés par
  l'appel système <function>open(2)</function> les nouveaux fichiers
  finiront avec les droits 644 et les répertoires avec ceux 755).</para>

  <para>La variable <envar>HLFS</envar> devrait être configurée avec le
  point de montage choisi.</para>

  <para>La variable <envar>LC_ALL</envar>  contrôle la localisation de
  certains programmes, faisant que leurs messages suivent les
  conventions d'un pays spécifié. Si le système hôte utilise une version
  de Glibc plus ancienne que la 2.2.4, avoir <envar>LC_ALL</envar>
  initialisé à quelque chose d'autre que <quote>POSIX</quote> ou
  <quote>C</quote> (pendant ce chapitre) pourrait poser des problèmes si
  vous quittez l'environnement chroot et souhaitez y retourner plus
  tard. Initialiser <envar>LC_ALL</envar> à <quote>POSIX</quote> ou
  <quote>C</quote> (les deux sont équivalents) nous assure que tout
  fonctionnera comme attendu dans l'environnement chroot.</para>
 
  <para>La variable <envar>HLFS_TGT</envar> initialise une description de
  machine compatible mais par défaut lors de la construction  de notre
  compilateur et de notre éditeur de liens croisés et lors de la compilation
  de notre chaîne d'outils temporaire. Vous trouverez plus d'informations dans
  <xref linkend="ch-tools-toolchaintechnotes" role=""/>.</para>

  <para>En plaçant <filename class="directory">/tools/bin</filename> au
  début du <envar>PATH</envar> standard, tous les programmes installés
  dans <xref linkend="chapter-temporary-tools"/> sont récupérés par le
  shell immédiatement après leur installation. Ceci, combiné avec la
  désactivation du hachage, limite le risque que d'anciens programmes de
  l'hôte soient utilisés alors que les mêmes programmes sont disponibles
  depuis l'environnement du chapitre 5.</para>

  <para>Enfin, pour avoir un environnement complètement préparé pour la
  construction des outils temporaires, chargez le profil de l'utilisateur
  tout juste créé&nbsp;:</para>

<screen><userinput>source ~/.bash_profile</userinput></screen>

</sect1>