Viktig informasjon

BLFS har mer informasjon om kompilering, /usr vs /usr/local, oppstartsskript osv. på https://www.linuxfromscratch.org/blfs/view/svn/introduction/important.html. I motsetning til denne boken, ville dette vært et kapittel i BLFS. Mye av denne informasjonen er utelatt, ettersom denne boken er mer lineær og ikke følger hvordan BLFS følger. Vi vil imidlertid dekke noen grunnleggende elementer her.

Hvilke instruksjoner som skal følges

Denne boken er forskjellig fra de vanlige LFS og BLFS bøkene, ettersom den også har installasjonsinstruksjoner for lib32. Dette vil garantert føre til forvirring.

Når du ser «Installasjon av ...», disse instruksjonene bør følges hvis du trenger den pakken. Etter hvert som du går videre, kan du komme over et annet format, og boken vil instruere deg om hva du skal følge på det tidspunktet. Du bør lese Kapittel 2, Multilib først, og for det andre, må du sannsynligvis gjøre mer enn den vanlige installasjonen.

Det er her seksjonene merket «lib32 Installasjon av ...» kommer inn. Disse seksjonene gir 32-bits biblioteker for 32-bits programvarekompatibilitet, dvs. støtte for multilib. Hvis du ikke trenger 32-bits bibliotekene fra en gitt pakke, kan du hoppe over lib32 installasjonsinstruksjonene for den pakken.

Stabilitet

Denne boken, som er tilgjengelig på nett, er i konstant strøm av oppdateringer, og oppdateres omtrent like ofte som BLFS Git/SVN-versjonen. Selv om det ikke finnes en synlig nettversjon av den stabile utgivelsen, kan du enten gjengi den selv ved å følge https://github.com/glfs-book/glfs, eller du kan laste ned en release.

Init System

Denne versjonen av boken er ment for SysV LFS-systemer. Systemd versjonen av boken kan ikke vises på nett av The GLFS Development Team på grunn av begrensninger på Github Pages. Dermed må du laste ned eller gjengi boken selv. Følg instruksjonene GLFS rendering instructions for å kunne gjengi boken selv. Du trenger Git å klone depotet. Du kan laste ned boken her.

Bygge programvare

Å bygge programvare på GLFS er identisk med hvordan det gjøres i BLFS bøkene, i tillegg til at det finnes lib32 kompileringsinstruksjoner. Det sier seg selv at du først og fremst bør ha MAKEFLAGS satt for å spare deg mye tid. Dette er nyttig for make verktøyet for å bruke mengden tråder du både ønsker og har.

export MAKEFLAGS='-jx'

Erstatt x med antall tråder du har. Du kan sjekke antall tråder du har med:

grep processor /proc/cpuinfo
[Viktig]

Viktig

Sørg for at du har nok RAM til systemet ditt! En generell metode er å ha 2,5 G per tråd som du vil bruke for make. Hvis du for eksempel vil bruke 6 tråder, multipliser 6 med 2,5 (som er 15), og sørg for at du har 15 GB RAM. Hvis du ikke har den mengden RAM, kan du prøve å begrense antall tråder du bruker. make eller bruke vekselfil for å oppfylle det kravet.

Neste steg er kompilering for lib32. Det finnes mange pakker som vil ha en lib32 motpart. Hvis du nettopp er ferdig med en vanlig kompilering av en pakke og ønsker å gjøre en lib32 kompilering av den samme pakken, sørg for å rense mappen først:

make distclean

Eller, hvis du har laget en byggemappe, gjør dette i byggemappeen:

rm -rf *

Fortsett deretter med lib32 kompileringsinstruksjonene.

Vanligvis er formatet for målretting av lib32 slik:

For ./configure:

CC="gcc -m32" CXX="g++ -m32"                  \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig          \
./configure --prefix=/usr --libdir=/usr/lib32 \
            --host=i686-pc-linux-gnu &&

make &&

make DESTDIR=$PWD/DESTDIR install     &&
cp -vr DESTDIR/usr/lib32/* /usr/lib32 &&
rm -rf DESTDIR                        &&
ldconfig

For meson:

mkdir -v build &&
cd       build &&

CC="gcc -m32" CXX="g++ -m32"                     \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig             \
meson setup .. --prefix=/usr --libdir=/usr/lib32 &&

ninja &&

DESTDIR=$PWD/DESTDIR ninja install    &&
cp -vr DESTDIR/usr/lib32/* /usr/lib32 &&
rm -rf DESTDIR                        &&
ldconfig

For cmake:

mkdir -v build &&
cd       build &&

CC="gcc -m32" CXX="g++ -m32"           \
PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
cmake .. -DCMAKE_INSTALL_PREFIX=/usr   \
         -DCMAKE_INSTALL_LIBDIR=lib32 &&

make &&

make DESTDIR=$PWD/DESTDIR install     &&
cp -vr DESTDIR/usr/lib32/* /usr/lib32 &&
rm -rf DESTDIR                        &&
ldconfig
[Notat]

Notat

Etter at du har utført en DESTDIR installasjon, anbefales det å bruke file på et av bibliotekene i DESTDIR/usr/lib32. Utdata fra en slik kommando for en lib32 bygging av et bibliotek bør være sammenlignbar med følgende:

ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked

Merk 32-bit LSB shared object delen. Et 64-bits bibliotek ville vises som 64-bit LSB shared object.