Subversion Repositories svn LFS-FR

Rev

Rev 1176 | 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-final-preps-settingenviron">
  <?dbhtml filename="settingenvironment.html"?>

  <title>Setting Up the Environment</title>

  <para os="a">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">clfs</systemitem> lancez la commande suivante pour créer un nouveau
  <filename>.bash_profile</filename> :</para>

<screen os="b"><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 os="c">Lorsque vous êtes connecté en tant que <systemitem class="username">clfs</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 réalise le but d'avoir un environnement propre. </para>

  <para os="d">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>. Créez maintenant le fichier
  <filename>.bashrc</filename> :</para>

<screen os="e"><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
<literal>set +h
umask 022
CLFS=/mnt/clfs
LC_ALL=POSIX
PATH=${CLFS}/cross-tools/bin:/bin:/usr/bin
export CLFS LC_ALL PATH</literal>
EOF</userinput></screen>

  <para os="f">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">${CLFS}/cross-tools</filename>
  dès qu'ils sont disponibles et sans se rappeler d'une version précédente du même programme mais dans un autre emplacement. </para>

  <para os="g">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 open(2) les nouveaux fichiers finiront avec les droits 644
  et les répertoires avec ceux 755).</para>

  <para os="h">La variable <envar>CLFS</envar> devrait être configurée avec le point de montage choisi.</para>

  <para os="i">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é à autre chose 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 os="j">En plaçant <filename class="directory">${CLFS}/cross-tools/bin</filename>
  au début de <envar>PATH</envar>,le compilateur croisé construit dans
  <xref linkend="chapter-cross-tools"/> sera choisi par le procéssus de construction
  du système temporaire avant tout programme installé sur l'hôte. Ceci, combiné avec
  la désactivation du hachage, permet de s'assurer que vous utiliserez les outils
  de compilation croisée pour construire le système temporaire dans /tools.</para>

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

<screen os="l"><userinput>source ~/.bash_profile</userinput></screen>

</sect1>