Rev 1344 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
475 | gleu | 1 | <?xml version="1.0" encoding="ISO-8859-1"?> |
589 | gleu | 2 | <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" |
3 | "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ |
||
475 | gleu | 4 | <!ENTITY % general-entities SYSTEM "../general.ent"> |
5 | %general-entities; |
||
6 | ]> |
||
589 | gleu | 7 | |
475 | gleu | 8 | <sect1 id="ch-tools-settingenviron"> |
589 | gleu | 9 | <?dbhtml filename="settingenvironment.html"?> |
475 | gleu | 10 | |
589 | gleu | 11 | <title>Configurer l'environnement</title> |
475 | gleu | 12 | |
589 | gleu | 13 | <para>Configurez un bon environnement de travail en créant deux |
14 | nouveaux fichiers de démarrage pour le shell <command>bash</command>. |
||
15 | En étant connecté en tant qu'utilisateur |
||
1347 | jmengual | 16 | <systemitem class="username">hlfs</systemitem>, lancez la commande |
589 | gleu | 17 | suivante pour créer un nouveau |
18 | <filename>.bash_profile</filename> :</para> |
||
19 | |||
517 | gleu | 20 | <screen><userinput>cat > ~/.bash_profile << "EOF" |
21 | <literal>exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash</literal> |
||
22 | EOF</userinput></screen> |
||
475 | gleu | 23 | |
589 | gleu | 24 | <para>Lorsque vous êtes connecté en tant que |
1347 | jmengual | 25 | <systemitem class="username">hlfs</systemitem>, le shell |
589 | gleu | 26 | initial est habituellement un shell de <emphasis>login</emphasis> qui lit |
27 | le fichier |
||
28 | <filename>/etc/profile</filename> de l'hôte (contenant probablement |
||
29 | quelques configurations et variables d'environnement) et puis |
||
30 | <filename>.bash_profile</filename>. La commande |
||
475 | gleu | 31 | |
589 | gleu | 32 | <command>exec env -i.../bin/bash</command> dans le fichier |
33 | <filename>.bash_profile</filename> remplace le shell en cours avec un |
||
34 | nouveau ayant un environnement complètement vide sauf pour les |
||
35 | variables <envar>HOME</envar>, <envar>TERM</envar>, et |
||
36 | <envar>PS1</envar>. Ceci nous assure qu'aucune variable |
||
37 | d'environnement non souhaitée et potentiellement dangereuse, provenant |
||
38 | du système hôte, ne parvienne dans l'environnement de construction. La |
||
39 | technique utilisée ici s'assure de ce but d'environnement |
||
40 | propre.</para> |
||
41 | |||
42 | <para>La nouvelle instance du shell est un shell |
||
43 | <emphasis>non-login</emphasis>, qui ne lit donc pas les fichiers |
||
44 | <filename>/etc/profile</filename> ou |
||
45 | <filename>.bash_profile</filename>, mais plutôt le fichier |
||
46 | <filename>.bashrc</filename> file. Créez maintenant le fichier |
||
47 | <filename>.bashrc</filename> :</para> |
||
48 | |||
517 | gleu | 49 | <screen><userinput>cat > ~/.bashrc << "EOF" |
50 | <literal>set +h |
||
475 | gleu | 51 | umask 022 |
1347 | jmengual | 52 | HLFS=/mnt/hlfs |
475 | gleu | 53 | LC_ALL=POSIX |
1347 | jmengual | 54 | HLFS_TGT=$(uname -m)-lfs-linux-gnu |
475 | gleu | 55 | PATH=/tools/bin:/bin:/usr/bin |
1347 | jmengual | 56 | export HLFS LC_ALL HLFS_TGT PATH</literal> |
517 | gleu | 57 | EOF</userinput></screen> |
475 | gleu | 58 | |
589 | gleu | 59 | <para>La commande <command>set +h</command> désactive la fonction de |
60 | hachage de <command>bash</command>. D'habitude, le hachage est une |
||
61 | fonctionnalité utile—<command>bash</command> utilise une table |
||
62 | de hachage pour se rappeler le chemin complet des fichiers exécutables |
||
63 | pour éviter d'avoir à chercher dans <envar>PATH</envar> à chaque fois |
||
64 | qu'il doit trouver le même exécutable. Néanmoins, les nouveaux outils |
||
65 | devraient être utilisés dès leur installation. En désactivant la |
||
66 | fonction de hachage, le shell cherchera en permanence dans |
||
67 | <envar>PATH</envar> lorsqu'un programme doit être exécuté. Ainsi, le |
||
68 | shell |
||
69 | trouvera les nouveaux outils compilés dans |
||
1347 | jmengual | 70 | <filename class="directory">$HLFS/tools</filename> dès qu'ils sont |
589 | gleu | 71 | disponibles et sans se rappeler de la version précédente du même |
72 | programme mais dans un autre emplacement.</para> |
||
475 | gleu | 73 | |
589 | gleu | 74 | <para>Configurer le masque de création de fichier (umask) à 022 nous |
75 | assure que les nouveaux fichiers et répertoires créés sont modifiables |
||
76 | uniquement par leurs propriétaires mais lisibles et exécutables par |
||
77 | tout le monde (en supposant que les modes par défaut sont utilisés par |
||
78 | l'appel système <function>open(2)</function> les nouveaux fichiers |
||
79 | finiront avec les droits 644 et les répertoires avec ceux 755).</para> |
||
475 | gleu | 80 | |
1347 | jmengual | 81 | <para>La variable <envar>HLFS</envar> devrait être configurée avec le |
589 | gleu | 82 | point de montage choisi.</para> |
475 | gleu | 83 | |
589 | gleu | 84 | <para>La variable <envar>LC_ALL</envar> contrôle la localisation de |
85 | certains programmes, faisant que leurs messages suivent les |
||
86 | conventions d'un pays spécifié. Si le système hôte utilise une version |
||
87 | de Glibc plus ancienne que la 2.2.4, avoir <envar>LC_ALL</envar> |
||
88 | initialisé à quelque chose d'autre que <quote>POSIX</quote> ou |
||
89 | <quote>C</quote> (pendant ce chapitre) pourrait poser des problèmes si |
||
90 | vous quittez l'environnement chroot et souhaitez y retourner plus |
||
91 | tard. Initialiser <envar>LC_ALL</envar> à <quote>POSIX</quote> ou |
||
92 | <quote>C</quote> (les deux sont équivalents) nous assure que tout |
||
93 | fonctionnera comme attendu dans l'environnement chroot.</para> |
||
731 | texou | 94 | |
1347 | jmengual | 95 | <para>La variable <envar>HLFS_TGT</envar> initialise une description de |
986 | jmengual | 96 | machine compatible mais par défaut lors de la construction de notre |
731 | texou | 97 | compilateur et de notre éditeur de liens croisés et lors de la compilation |
1111 | jmengual | 98 | de notre chaîne d'outils temporaire. Vous trouverez plus d'informations dans |
731 | texou | 99 | <xref linkend="ch-tools-toolchaintechnotes" role=""/>.</para> |
555 | gleu | 100 | |
589 | gleu | 101 | <para>En plaçant <filename class="directory">/tools/bin</filename> au |
667 | texou | 102 | début du <envar>PATH</envar> standard, tous les programmes installés |
589 | gleu | 103 | dans <xref linkend="chapter-temporary-tools"/> sont récupérés par le |
104 | shell immédiatement après leur installation. Ceci, combiné avec la |
||
105 | désactivation du hachage, limite le risque que d'anciens programmes de |
||
106 | l'hôte soient utilisés alors que les mêmes programmes sont disponibles |
||
107 | depuis l'environnement du chapitre 5.</para> |
||
475 | gleu | 108 | |
589 | gleu | 109 | <para>Enfin, pour avoir un environnement complètement préparé pour la |
667 | texou | 110 | construction des outils temporaires, chargez le profil de l'utilisateur |
111 | tout juste créé :</para> |
||
589 | gleu | 112 | |
475 | gleu | 113 | <screen><userinput>source ~/.bash_profile</userinput></screen> |
114 | |||
115 | </sect1> |