4.4. Sette opp miljøet

Sett opp et godt arbeidsmiljø ved å lage to nye oppstartsfiler for bash shell. Når du er logget inn som bruker-lfs, kan du skrive følgende kommando for å opprette en ny .bash_profile:

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

Når du er logget på som bruker lfs, er det innledende skallet vanligvis et påloggingsskall som leser /etc/profile til verten (inneholder sannsynligvis noen innstillinger og miljøvariabler) og deretter .bash_profile. Exec env -i ... /bin/bash kommandoen i .bash_profile filen erstatter det løpende skallet med et nytt med et helt tomt miljø, bortsett fra HOME-, TERM- og PS1-variablene. Dette sikrer at ingen uønskede og potensielt farlige miljøvariabler fra vertssystemet lekker inn i bygningsmiljøet. Teknikken som brukes her oppnår målet om å sikre et rent miljø.

Den nye skallet er et ikke-påloggingsskall, som ikke leser /etc/profile eller .bash_profile filene, men heller leser .bashrc filen i stedet. Lag .bashrc filen nå:

cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF

Set + h kommandoen slår av bashs hashfunksjon. Hashing er vanligvis en nyttig funksjon -bash bruker en hashtabell for å huske hele banen til kjørbare filer for å unngå å søke på PATH gang på gang for å finne den samme kjørbare filen. Imidlertid bør de nye verktøyene brukes så snart de er installert. Ved å slå av hasjfunksjonen vil skallet alltid søke på PATH når et program skal kjøres. Som sådan vil skallet finne de nylig kompilerte verktøyene i $LFS/tools så snart de er tilgjengelige uten å huske en tidligere versjon av det samme programmet på et annet sted.

Innstilling av brukerfil opprettelsesmaske (umask) til 022 sikrer at nyopprettede filer og kataloger bare kan skrives av sin eier, men er lesbare og kjørbare av andre (forutsatt at standardmodus brukes av det åpne (2) systemanropet, nye filer vil ende opp med tillatelsesmodus 644 og kataloger med modus 755).

LFS-variabelen bør settes til det valgte monteringspunktet.

LC_ALL variabelen styrer lokaliseringen av visse programmer, slik at meldingene deres følger konvensjonene i et spesifisert land. Innstilling av LC_ALL til “POSIX” eller “C” (de to er likeverdige) sikrer at alt fungerer som forventet i chroot-miljøet.

LFS_TGT variabelen angir en ikke-standard, men kompatibel maskinbeskrivelse for bruk når du bygger vår tverrkompiler og linker og når du krysser sammen den midlertidige verktøykjeden vår. Mer informasjon finnes i avsnitt 5.2, “Tekniske merknader for verktøykjede”.

Ved å sette /tools/bin foran standard PATH, blir alle programmene installert i kapittel 5 plukket opp av skallet rett etter installasjonen. Dette, kombinert med å slå av hashing, begrenser risikoen for at gamle programmer brukes fra verten når de samme programmene er tilgjengelige i kapittel 5-miljøet.

Til slutt, for å ha miljøet fullt forberedt på å bygge de midlertidige verktøyene, kan du peke til den nettopp opprettede brukerprofilen:

source ~/.bash_profile
Forrige Hjem Neste