Installasjon av libxml2
Først, installer en oppdatering fra oppstrøms for å fikse en feil
som ikke analyserer normaliserte attributtverdier (for eksempel
kilden til BLFS og kilden til PostgreSQL-18.0 inneholder slike verdier):
patch -Np1 -i ../libxml2-2.15.0-upstream_fix-1.patch
Installer libxml2 ved å kjøre
følgende kommandoer:
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-static \
--with-history \
--with-icu \
--docdir=/usr/share/doc/libxml2-2.15.0 &&
make
Hvis du lastet ned testpakken, kjør følgende kommando:
tar xf ../xmlts20130923.tar.gz
For å teste resultatene, kjør: make
check > check.log. Denne kommandoen vil skrive
ut flere linjer med feilmeldinger som «Failed to
parse xstc/...
» fordi noen testfiler mangler
og disse meldingene kan trygt ignoreres. En oppsummering av
resultatene kan fås med grep -E
'^Total|expected|Ran' check.log. Hvis Valgrind-3.25.1 er installert og du vil se
etter minnelekkasjer, bytt ut check med check-valgrind.
Notat
Testene bruker http://localhost/ for å teste parsing av
eksterne enheter. Hvis maskinen der du kjører testene fungerer
som et nettsted, kan testene henge, avhengig av innholdet i filen
som vises. Det anbefales derfor å stenge serveren under testene,
som root
bruker:
systemctl stop httpd.service
Nå, som root
bruker:
make install
Til slutt, forhindre at noen pakker unødvendig kobles til ICU, bruk
følgende kommandoer som root
bruker:
rm -vf /usr/lib/libxml2.la &&
sed '/libs=/s/xml2.*/xml2"/' -i /usr/bin/xml2-config
Parameterforklaringer
--disable-static
: Denne
bryteren forhindrer installasjon av statiske versjoner av
bibliotekene.
--with-history
: Denne
bryteren aktiverer Readline støtte
når du kjører xmlcatalog eller xmllint i skallmodus.
--with-icu
: Denne bryteren
aktiverer støtte for ICU, som gir
ekstra Unicode støtte. Dette er nødvendig for noen pakker i BLFS,
for eksempel for QtWebEngine.
--with-python PYTHON=/usr/bin/python3
:
Denne kombinasjonen av brytere aktiverer libxml2 bindingene for
Python 3. Merk at disse bindingene er utdatert på grunn av feil i
API designet, og de vil bli fjernet i libxml2-2.16.