Introduction to libxml2
The libxml2 package contains libraries
and utilities used for parsing XML files.
Note
Development versions of BLFS may not build or run
some packages properly if LFS or dependencies have been updated
since the most recent stable versions of the books.
Package Information
Additional Downloads
libxml2 Dependencies
Optional
ICU-74.1 (see below) and
Valgrind-3.22.0 (may be used in the tests)
Installation of libxml2
Install libxml2 by running the following
commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-static \
--with-history \
PYTHON=/usr/bin/python3 \
--docdir=/usr/share/doc/libxml2-2.12.1 &&
make
If you downloaded the test suite, issue the following command:
tar xf ../xmlts20130923.tar.gz
To test the results, issue: make check > check.log.
This command will print several lines of error messages like
“Failed to parse
xstc/...
” because some test files are missing
and these messages can be safely ignored.
A summary of the results can be obtained with grep -E
'^Total|expected|Ran' check.log. If Valgrind-3.22.0 is
installed and you want to check for memory leaks, replace
check with check-valgrind.
Note
The tests use http://localhost/
to test parsing of external entities. If the machine where you run the
tests serves as a web site, the tests may hang, depending on the
content of the file served. It is therefore recommended to shut down
the server during the tests, as the root
user:
systemctl stop httpd.service
Now, as the root
user:
make install
Command Explanations
--disable-static
: This switch prevents
installation of static versions of the libraries.
--with-history
: This switch enables
Readline support when running
xmlcatalog or xmllint in shell mode.
PYTHON=/usr/bin/python3
: Allows building
the libxml2 module with Python3 instead of Python2.
--with-icu
: Add this switch if you have built
ICU-74.1, for better unicode support.
Note
If the --with-icu
switch is used, the BLFS editors
recommend removing unneeded references to the ICU libraries. This
will prevent many packages that use libxml2 from unnecessarily linking
to the ICU libraries. This, in turn, will prevent the need for
rebuilding many packages when upgrading ICU to a new major version.
After installing libxml2, as the root
user, issue:
rm -vf /usr/lib/libxml2.la &&
sed '/libs=/s/xml2.*/xml2"/' -i /usr/bin/xml2-config