4.4. Nastavení prostředí

Nastavte správně pracovní prostředí vytvořením dvou nových startovacích souborů pro shell bash. Když se přihlásíte jako uživatel lfs, spusťe následující příkaz k vytvoření nového souboru .bash_profile:

cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF

Když se přihlásíte jako uživatel lfs, první shell je obvykle přihlašovací shell, který čte hostitelský soubor /etc/profile a poté .bash_profile. Příkaz exec env -i.../bin/bash v souboru .bash_profile změní právě běžící shell za nový s kompletně prázdným prostředím s vyjímkou proměnných HOME, TERM a PS1. Tímto zajistíte,že žádné nechtěné a potenciálně ohrožující proměnné neovlivní kompilační prostředí. Zde použitou technikou dosáhnete čistého prostředí.

Nová instance shellu je nepřihlašovací shell, který nečte soubory /etc/profile nebo .bash_profile, ale místo toho čte soubor .bashrc. Soubor .bashrc nyní vytvořte:

cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL PATH
EOF

Příkaz set +h vypíná bashovou hashovací funkci. Hashování je běžně užitečná funkce — bash používá hashovací tabulku, aby si zapamatoval celou cestu ke spustitelným souborů, nemusel stále prohledávat proměnnou PATHa hledat stále stejný program. Jakékoliv nové nástroje by měly být použity jakmile jsou nainstalované. Vypnutím hashovací funkce bude shell při každém spuštění programu prohledávat proměnnou PATH. Tak shell najde nově zkompilovaný nástroj v adresáři $LFS/tools hned jak bude nainstalovaný a nebude si pamatovat stejný program umístěný jinde.

Nastavením uživatelské masky (user file-creation mask—umask) na 022 zajistíme, že nově vytvořené soubory a adresáře budou zapisovatelné pouze jejich vlastnky, ale čitelné a spustitelné pro kohokoliv (předpokládáme, že výchozí módy jsou použité systémovým voláním open(2), nové soubory skončí s oprávněními 644 a složky s 755).

Proměnná LFS má být nastavena na vybraný přípojný bod.

Proměnná LC_ALL nastavuje lokalizaci několika programů. Umožňuje, aby výstup zpráv odpovídal konvencím odpovídající země. Pokud hostitelský systém používá Glibc starší než 2.2.4 a máte přoměnnou LC_ALL nastavenou na něco jiného než “POSIX” nebo “C” (během této kapitoly), můžete se dočkat problémů, když opustíte chrootové prostředí a později se do něj navrátíte. Nastavením LC_ALL na “POSIX” nebo “C” (tyto volby jsou ekvivalentní) zajistíte, že v chrootovém prostředí bude všechno pracovat jak se očekává.

Nastavení /tools/bin před standardní PATH zajistíte, že všechny programy nainstalované v Chapter 5 budou rozpoznány shellem ihned po jejich instalaci. Toto v kombinaci s vypnutým hashování, snižuje riziko, že budou použity staré programy ve chvíli, kdy již jsou k dispozici nové v prostředí 5.kapitoly.

Nakonec, abychom měli prostředí plně připraveno pro kompilaci dočasných nástrojů, načtěte právě vytvořený profil:

source ~/.bash_profile