Subversion Repositories svn LFS-FR

Rev

Rev 1176 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1176 jmengual 1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4
  <!ENTITY % general-entities SYSTEM "../general.ent">
5
  %general-entities;
6
]>
7
 
8
<sect1 id="ch-final-preps-settingenviron">
9
  <?dbhtml filename="settingenvironment.html"?>
10
 
11
  <title>Setting Up the Environment</title>
12
 
1205 jmengual 13
  <para os="a">Configurez un bon environnement de travail en créant deux nouveaux fichiers de démarrage pour le shell <command>bash</command>.
14
  En étant connecté en tant qu'utilisateur <systemitem class="username">clfs</systemitem> lancez la commande suivante pour créer un nouveau
15
  <filename>.bash_profile</filename> :</para>
1176 jmengual 16
 
17
<screen os="b"><userinput>cat &gt; ~/.bash_profile &lt;&lt; "EOF"
18
<literal>exec env -i HOME=${HOME} TERM=${TERM} PS1='\u:\w\$ ' /bin/bash</literal>
19
EOF</userinput></screen>
20
 
1205 jmengual 21
  <para os="c">Lorsque vous êtes connecté en tant que <systemitem class="username">clfs</systemitem>,
22
  le shell initial est habituellement un shell de <emphasis>login</emphasis> qui lit le fichier
23
  <filename>/etc/profile</filename> de l'hôte, contenant probablement quelques configurations et variables d'environnement, et puis
24
  <filename>.bash_profile</filename>. La commande <command>exec env -i.../bin/bash</command> dans le fichier
25
  <filename>.bash_profile</filename> remplace le shell en cours avec un nouveau ayant un environnement complètement vide sauf pour les variables
26
  <envar>HOME</envar>, <envar>TERM</envar>, et <envar>PS1</envar>. Ceci nous assure qu'aucune variable d'environnement non souhaitée
27
  et potentiellement dangereuse, provenant du système hôte, ne parvienne dans l'environnement de construction.
28
  La technique utilisée ici réalise le but d'avoir un environnement propre. </para>
1176 jmengual 29
 
1205 jmengual 30
  <para os="d">La nouvelle instance du shell est un shell <emphasis>non-login</emphasis>
31
  qui ne lit donc pas les fichiers <filename>/etc/profile</filename> ou
32
  <filename>.bash_profile</filename>, mais plutôt le fichier
33
  <filename>.bashrc</filename>. Créez maintenant le fichier
34
  <filename>.bashrc</filename> :</para>
1176 jmengual 35
 
36
<screen os="e"><userinput>cat &gt; ~/.bashrc &lt;&lt; "EOF"
37
<literal>set +h
38
umask 022
39
CLFS=/mnt/clfs
40
LC_ALL=POSIX
41
PATH=${CLFS}/cross-tools/bin:/bin:/usr/bin
42
export CLFS LC_ALL PATH</literal>
43
EOF</userinput></screen>
44
 
1205 jmengual 45
  <para os="f">La commande <command>set +h</command> désactive la fonction de hachage de
46
  <command>bash</command>. D'habitude, le hachage est une fonctionnalité utile &mdash;
47
  <command>bash</command> utilise une table de hachage pour se rappeler le chemin complet
48
  des fichiers exécutables pour éviter d'avoir à chercher dans <envar>PATH</envar>
49
  à chaque fois qu'il doit trouver le même exécutable. Néanmoins,
50
  les nouveaux outils devraient être utilisés dès leur installation.
51
  En désactivant la fonction de hachage, le shell cherchera en permanence dans
52
  <envar>PATH</envar> lorsqu'un programme doit être exécuté. Ainsi, le shell
53
  trouvera les nouveaux outils compilés dans <filename class="directory">${CLFS}/cross-tools</filename>
54
  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>
1176 jmengual 55
 
1205 jmengual 56
  <para os="g">Configurer le masque de création de fichier (umask) à 022 nous assure que
57
  les nouveaux fichiers et répertoires créés sont modifiables uniquement par leurs propriétaires
58
  mais lisibles et exécutables par tout le monde (en supposant que les modes par défaut
59
  sont utilisés par l'appel système open(2) les nouveaux fichiers finiront avec les droits 644
60
  et les répertoires avec ceux 755).</para>
1176 jmengual 61
 
1205 jmengual 62
  <para os="h">La variable <envar>CLFS</envar> devrait être configurée avec le point de montage choisi.</para>
1176 jmengual 63
 
1205 jmengual 64
  <para os="i">La variable <envar>LC_ALL</envar> contrôle la localisation
65
  de certains programmes, faisant que leurs messages suivent les conventions
66
  d'un pays spécifié. Si le système hôte utilise une version de Glibc plus ancienne
67
  que la 2.2.4, avoir <envar>LC_ALL</envar> initialisé à autre chose que
68
  <quote>POSIX</quote> ou <quote>C</quote> (pendant ce chapitre) pourrait
69
  poser des problèmes si vous quittez l'environnement chroot et souhaitez
70
  y retourner plus tard. Initialiser <envar>LC_ALL</envar> à <quote>POSIX</quote> ou <quote>C</quote>
71
  (les deux sont équivalents) nous assure que tout fonctionnera comme attendu dans l'environnement chroot.</para>
1176 jmengual 72
 
1205 jmengual 73
  <para os="j">En plaçant <filename class="directory">${CLFS}/cross-tools/bin</filename>
74
  au début de <envar>PATH</envar>,le compilateur croisé construit dans
75
  <xref linkend="chapter-cross-tools"/> sera choisi par le procéssus de construction
76
  du système temporaire avant tout programme installé sur l'hôte. Ceci, combiné avec
77
  la désactivation du hachage, permet de s'assurer que vous utiliserez les outils
78
  de compilation croisée pour construire le système temporaire dans /tools.</para>
1176 jmengual 79
 
1205 jmengual 80
  <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>
1176 jmengual 81
 
82
<screen os="l"><userinput>source ~/.bash_profile</userinput></screen>
83
 
84
</sect1>