libxml2 パッケージは、XML ファイルを解析するライブラリやユーティリティーを提供します。
LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS 開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。
ダウンロード (HTTP): https://download.gnome.org/sources/libxml2/2.12/libxml2-2.12.3.tar.xz
ダウンロード MD5 sum: 13871e7cf2137b4b9b9da753ffef538c
ダウンロードサイズ: 2.5 MB
必要ディスク容量: 103 MB (テスト込み)
概算ビルド時間: 0.6 SBU (parallelism=4 利用; テスト込み)
任意のテストスイート: https://www.w3.org/XML/Test/xmlts20130923.tar.gz - これを利用すると make check により完全なテストを行うことができます。
ICU-74.1 (下記参照), Valgrind-3.22.0 (テスト内で利用)
以下のコマンドを実行して libxml2 をビルドします。
./configure --prefix=/usr \ --sysconfdir=/etc \ --disable-static \ --with-history \ PYTHON=/usr/bin/python3 \ --docdir=/usr/share/doc/libxml2-2.12.3 && make
テストスイート用のファイルをダウンロードしている場合は以下を実行します。
tar xf ../xmlts20130923.tar.gz
ビルド結果をテストする場合は make check >
check.log を実行します。 このコマンドを実行すると「Failed to
parse xstc/...
」といったエラーメッセージがいくつか出力されます。
ただしこれはテストファイルが一部に不足しているからであって、このエラーメッセージは無視してかまいません。 grep -E '^Total|expected|Ran'
check.log を実行して結果を確認することができます。 Valgrind-3.22.0
をインストールしていてメモリリークをチェックしたい場合は check ではなく check-valgrind に置き換えて実行します。
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
root
ユーザーになって以下を実行します。
make install
--disable-static
:
このスイッチはスタティックライブラリをインストールしないようにします。
--with-history
: このスイッチは
xmlcatalog や
xmllint
をシェルモードで実行する際に Readline
サポートを有効にします。
PYTHON=/usr/bin/python3
:
libxml2 が Python2 でなく Python3 を利用するようにしたいときに指定します。
--with-icu
: Add this switch if you have
built ICU-74.1, for better unicode support.
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