Skip to the content.

上一页      主目录      下一页

9. General Libraries


库包含多个程序通常需要的代码。这样做的好处是,每个程序都不需要复制代码(并冒引入bug的风险),它只需要调用系统上安装的库中的函数。一组库的最明显的例子是Glibc,它是在LFS书中安装的。它包含了程序使用的所有C库函数。

有两种类型的库:静态库和共享库。共享库(通常是libXXX.so)在运行时从共享副本加载到内存中(因此得名)。静态库(libXXX.a)实际上链接到程序可执行文件本身,从而使程序文件更大。您经常会在系统中发现同一库的静态副本和共享副本。

通常,只有在安装需要库提供的功能的软件时才需要安装库。在BLFS书中,每个包都提供了一个(已知的)依赖项列表。因此,您可以在安装该程序之前确定需要哪些库。如果你在没有使用BLFS指令的情况下安装一些东西,通常READMEINSTALL文件将包含程序需求的详细信息。

有一些库几乎每个人都会在某个时候用到。在本章中列出了这些和其他一些,并解释了为什么你可能想要安装它们。

9.1 Apr-1.7.2


简介Apr

Apache Portable Runtime (APR)是Apache web服务器的支持库。它提供了一组映射到底层操作系统的应用程序编程接口(api)。当操作系统不支持特定功能时,APR将提供模拟。因此,程序员可以使用APR使程序在不同的平台上可移植。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/apr

安装Apr

修复了在脚本模板中检查位置的问题:

sed -e '/^case "$0"/s;$0;$(readlink -f $0);' \
    -i apr-config.in

运行以下命令安装Apr:

./configure --prefix=/usr    \
            --disable-static \
            --with-installbuilddir=/usr/share/apr-1/build &&
make

要测试结果,执行: make test.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: apr-1-config

安装库: libapr-1.so

安装目录: /usr/include/apr-1 和 /usr/share/apr-1

简要描述

apr-1-config 是一个shell脚本,用于检索有关系统中apr库的信息。它通常用于对库进行编译和链接。

libapr-1.so 是Apache可移植运行时库。

9.2 Apr-Util-1.6.3


简介Apr Util

Apache Portable Runtime Utility Library为底层客户端库接口提供了一个可预测的、一致的接口。无论给定平台上有哪些库可用,这个应用程序编程接口都确保了可预测的(如果不是相同的)行为。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Apr Util 依赖

必要

Apr-1.7.2

可选

Berkeley DB-5.3.28, FreeTDS, MariaDB-10.6.12 or MySQL, OpenLDAP-2.6.4, PostgreSQL-15.2, SQLite-3.40.1unixODBC-2.3.11

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/apr-util

安装Apr Util

运行以下命令安装Apr Util:

./configure --prefix=/usr       \
            --with-apr=/usr     \
            --with-gdbm=/usr    \
            --with-openssl=/usr \
            --with-crypto &&
make

要测试结果,执行: make -j1 test. 已知有一个测试testdbm会失败。

现在,作为root用户:

make install

命令解释

--with-gdbm=/usr: 此开关启用apr_dbm_gdbm-1.so插件。

--with-openssl=/usr --with-crypto: 这些开关启用apr_crypto_openssl-1.so插件。

--with-berkeley-db=/usr: 如果您已经安装了Berkeley DB-5.3.28,请使用此开关编译apr_dbm_db-1.so插件。

--with-ldap: 如果你已经安装了OpenLDAP-2.6.4,使用这个开关来编译apr_ldap.so插件。

内容

安装程序: apu-1-config

安装库: libaprutil-1.so

安装目录: /usr/lib/apr-util-1

简要描述

apu-1-config 是一个APR-util脚本,旨在允许简单的命令行访问APR-util配置参数。

libaprutil-1.so 包含为底层客户端库接口提供可预测和一致接口的函数。

9.3 Aspell-0.60.8


简介Aspell

Aspell包包含一个交互式拼写检查程序和Aspell库。Aspell既可以用作库,也可以用作独立的拼写检查器。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

额外下载

你至少需要下载一本字典。下面的链接将带你进入一个包含多种语言词典链接的页面。

Aspell 依赖

必要

Which-2.21 (用于字典)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/aspell

安装Aspell

运行以下命令安装Aspell:

./configure --prefix=/usr &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install &&
ln -svfn aspell-0.60 /usr/lib/aspell &&

install -v -m755 -d /usr/share/doc/aspell-0.60.8/aspell{,-dev}.html &&

install -v -m644 manual/aspell.html/* \
    /usr/share/doc/aspell-0.60.8/aspell.html &&

install -v -m644 manual/aspell-dev.html/* \
    /usr/share/doc/aspell-0.60.8/aspell-dev.html

如果你不打算安装Ispell,那么复制包装器脚本ispell:

install -v -m 755 scripts/ispell /usr/bin/

如果你不打算安装Spell,那么复制包装脚本spell:

install -v -m 755 scripts/spell /usr/bin/

命令解释

ln -svfn aspell-0.60 /usr/lib/aspell: 该命令对于配置其他应用程序很有用,例如enchant-2.3.3.

配置 Aspell

配置信息

在安装Aspell之后,您必须设置至少一个字典。运行以下命令安装一个或多个字典:

./configure &&
make

现在,作为root用户:

make install

内容

安装程序: aspell, aspell-import, precat, preunzip, prezip, prezip-bin, pspell-config, run-with-aspell, word-list-compress 和 optionally, ispell 和 spell.

安装库: libaspell.so 和 libpspell.so

安装目录: /usr/include/pspell 和 /usr/lib/aspell-0.60

简要描述

aspell 是一个实用程序,可以作为一个ispell -a的替代品,作为一个独立的拼写检查器,作为一个测试实用程序来测试Aspell的特性,并作为一个管理字典的实用程序。

ispellaspell的包装器,以便以ispell兼容模式调用它。

spellaspell的包装器,以便在spell兼容模式下调用它。

aspell-import 将旧的个人字典导入Aspell。

precatprezip ped文件解压缩为标准输出。

preunzip 解压缩prezip ped文件。

prezip 是一个前缀增量压缩器,用于压缩排序的单词列表或其他类似的文本文件。

prezip-bin 由各种包装器脚本调用,以执行实际的压缩和解压缩。

pspell-config 显示有关libpspell安装的信息,主要用于构建脚本。

run-with-aspell 是一个脚本,帮助使用Aspell作为一个ispell的替代品。

word-list-compress 压缩或解压缩排序的单词列表,以便与Aspell拼写检查器一起使用。

libaspell.so 包含拼写检查API函数。

libpspell.solibaspell库的接口。所有的拼写检查功能现在都在libaspell中,但这个库是为了向后兼容而包含的。

9.4 Boost-1.81.0


简介Boost

Boost提供了一组免费的同行评审的可移植c++源库。它包括用于线性代数、伪随机数生成、多线程、图像处理、正则表达式和单元测试的库。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Boost 依赖

推荐

Which-2.21

可选

ICU-72.1Open MPI

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/boost

安装Boost

这个版本的boost中的一个变化打破了使用当前GCC编译时使用phoenix模块的少数包。在BLFS中,影响LibreOffice-7.5.0.3。用下面的命令修复这个问题:

sed -i '/#include.*phoenix.*tuple.hpp.*/d' \
  boost/phoenix/stl.hpp

这个包可以用并行运行的几个作业来构建。在下面的说明中,<N>表示作业的数量。运行以下命令安装Boost:

./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j<N> threading=multi link=shared

运行Boost。pushd tools/build/test; python3 test_all.py; popd。与python - 3.10。所有168个测试都应该通过。在Python-3.11.2中,有20个测试由于未确定的原因而失败。

要运行每个库的回归测试,发出pushd status; ../b2; popd。一些测试可能会失败。它们需要很长时间(在-j4时超过119个SBU),并且使用非常大的磁盘空间(46 GB)。你应该使用-jN开关来加速它们。

注意

Boost在/usr/lib/cmake中安装了许多版本目录如果新版本的Boost安装在旧版本之上,则需要显式删除旧的cmake目录。要做到这一点,以root用户运行:

rm -rf /usr/lib/cmake/[Bb]oost*

在安装新版本之前。

现在,作为root用户:

./b2 install threading=multi link=shared

命令解释

sed -i '/#include ...: 这将从这个头文件库中删除boost/phoenix/stl/tuple.hpp,允许使用它的应用程序使用最新的c++进行链接。另一种方法是编辑/usr/include/boost/phoenix/stl.hpp,如果这个版本的boost已经安装了,没有这个sed

threading=multi: 这个参数确保Boost是用多线程支持构建的。

link=shared: 此参数确保只创建共享库,libboost_exception和libboost_test_exec_monitor作为静态创建除外。大多数人不需要静态库,而且大多数使用Boost的程序只使用头文件。如果确实需要静态库,则省略此参数。

--with-python=python3: 此开关确保在安装Python2时使用Python3。

-jN: 这个开关可以添加到b2命令行中,以并行运行多达N个进程。

内容

安装程序: None

安装库: libboost_atomic.so, libboost_chrono.so, libboost_container.so, libboost_context.so, libboost_contract.so, libboost_coroutine.so, libboost_date_time.so, libboost_exception.a, libboost_fiber.so, libboost_filesystem.so, libboost_graph.so, libboost_iostreams.so, libboost_json.so, libboost_locale.so, libboost_log_setup.so, libboost_log.so, libboost_math_c99.so, libboost_math_c99f.so, libboost_math_c99l.so, libboost_math_tr1.so, libboost_math_tr1f.so, libboost_math_tr1l.so, libboost_nowide.so, libboost_numpy39.so, libboost_prg_exec_monitor.so, libboost_program_options.so, libboost_python311.so, libboost_random.so, libboost_regex.so, libboost_serialization.so, libboost_stacktrace_addr2line.so, libboost_stacktrace_basic.so, libboost_stacktrace_noop.so, libboost_system.so, libboost_test_exec_monitor.a, libboost_thread.so, libboost_timer.so, libboost_type_erasure.so, libboost_unit_test_framework.so, libboost_wave.so, 和 libboost_wserialization.so

安装目录: /usr/include/boost.

9.5 brotli-1.0.9


简介Brotli

Brotli提供了一种通用的无损压缩算法,该算法结合了LZ77算法的现代变体、霍夫曼编码和二阶上下文建模来压缩数据。它的库特别用于网页上的WOFF2字体。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Brotli 依赖

必要

CMake-3.25.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/brotli

安装Brotli

首先,修复pkg-config文件中的一个问题:

sed -i 's@-R..libdir.@@' scripts/*.pc.in

Install brotli 运行以下命令安装:

mkdir out &&
cd    out &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      ..  &&
make

要测试结果,执行: make test.

现在,作为root用户:

make install &&
cd ..

如果需要,以root用户构建和安装Python3绑定:

pip3 wheel -w dist --no-build-isolation --no-deps $PWD &&
pip3 install --no-index --find-links dist --no-cache-dir --no-user Brotli

内容

安装程序: brotli

安装库: libbrotlicommon{-static.a,.so}, libbrotlidec{,-static.a,.so}, 和 libbrotlienc{,-static.a,.so}

安装目录: /usr/include/brotli /usr/lib/python3.11/site-packages/Brotli-1.0.9.dist-info

简要描述

brotli 可以压缩或解压缩文件,或测试压缩文件的完整性。

libbrotlicommon{-static.a,.so}是Brotli公共字典库。

libbrotlidec{-static.a,.so} 是Brotli解码器库。

libbrotlienc{-static.a,.so} 是Brotli通用编码器库。

9.6 CLucene-2.3.3.4


简介CLucene

CLucene是Lucene的c++版本,Lucene是一个高性能的文本搜索引擎。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

额外下载

CLucene 依赖

必要

CMake-3.25.2

推荐

Boost-1.81.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/clucene

安装CLucene

运行以下命令安装CLucene:

patch -Np1 -i ../clucene-2.3.3.4-contribs_lib-1.patch &&

sed -i '/Misc.h/a #include <ctime>' src/core/CLucene/document/DateTools.cpp &&

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DBUILD_CONTRIBS_LIB=ON .. &&
make

现在,作为root用户:

make install

命令解释

-DBUILD_CONTRIBS_LIB=ON: 这个cmake变量允许构建CLucene贡献库,这是运行使用特定语言文本分析器(例如LibreOffice)的应用程序所必需的。

内容

安装程序: None

安装库: libclucene-contribs-lib.so, libclucene-core.so, 和 libclucene-shared.so

安装目录: /usr/include/CLucene 和 /usr/lib/CLuceneConfig.cmake

9.7 dbus-glib-0.112


简介D-Bus GLib

D-Bus GLib包包含到D-Bus API的GLib接口。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

D-Bus GLib 依赖

必要

dbus-1.14.6GLib-2.74.5

可选

GTK-Doc-1.33.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/dbus-glib

安装D-Bus GLib

Install D-Bus GLib 运行以下命令安装:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static &&
make

要测试结果,执行: make check. 请注意,可以按照D-Bus指令中使用的相同方法运行更全面的测试,这需要构建两次包。

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则使用此参数。

内容

安装程序: dbus-binding-tool

安装库: libdbus-glib-1.so

安装目录: /usr/share/gtk-doc/html/dbus-glib

简要描述

dbus-binding-tool 是一个用于与D-Bus API接口的工具。

libdbus-glib-1.so 包含到D-Bus API的GLib接口函数.

9.8 Double-conversion-3.2.1


简介Double-conversion

Double-conversion包包含一个库,用于IEEE双精度的二进制到十进制和十进制到二进制例程。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Double-conversion 依赖

必要

CMake-3.25.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/double-conversion

安装Double-conversion

运行以下命令安装Double-conversion:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DBUILD_SHARED_LIBS=ON      \
      -DBUILD_TESTING=ON          \
      ..                          &&
make

要测试结果,执行: make test.

现在,作为root用户:

make install

命令解释

-DBUILD_SHARED_LIBS=ON: 此开关强制cmake构建库的共享版本而不是静态版本。

-DBUILD_TESTING=ON: 这个开关构建测试程序。

内容

安装程序: None

安装库: libdouble-conversion.so

安装目录: /usr/include/double-conversion

简要描述

libdouble-conversion.so 为IEEE双精度提供了二进制到十进制和十进制到二进制的例程。

9.9 duktape-2.7.0


简介duktape

duktape是一个可嵌入的Javascript引擎,专注于可移植性和紧凑的footprint。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/duktape

安装duktape

运行以下命令安装duktape:

sed -i 's/-Os/-O2/' Makefile.sharedlibrary
make -f Makefile.sharedlibrary INSTALL_PREFIX=/usr

现在,作为root用户:

make -f Makefile.sharedlibrary INSTALL_PREFIX=/usr install

内容

安装程序: None

安装库: libduktape.so 和 libduktaped.so

安装目录: None

简要描述

libduktape.so 是一个可嵌入的Javascript引擎。

9.10 enchant-2.3.3


简介enchant

enchant包为各种现有拼写检查库提供了一个通用接口。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

enchant 依赖

必要

GLib-2.74.5

推荐

Aspell-0.60.8

可选

dbus-glib-0.112, Doxygen-1.9.6, Hspell, Hunspell, Nuspell, Voikko, 和 unittest-cpp (required for tests)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/enchant

安装enchant

运行以下命令安装enchant:

./configure --prefix=/usr --disable-static &&
make

要运行测试,必须安装unittest-cpp,并将--enable-relocatable选项传递给上面的配置。如果存在这些条件,则可以使用make check运行测试。

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

配置 enchant

配置文件

~/.enchant/usr/share/enchant/enchant.ordering

配置信息

您可以通过创建一个测试文件并运行以下命令来测试您的安装和配置(您可以在安装Aspell-0.60.8时用任何其他下载的en_GB字典替换en_GB字典):

cat > /tmp/test-enchant.txt << "EOF"
Tel me more abot linux
Ther ar so many commads
EOF

enchant-2 -d en_GB -l /tmp/test-enchant.txt &&
enchant-2 -d en_GB -a /tmp/test-enchant.txt

您将看到一个拼写错误的单词列表,然后是它们的替代列表。

详情请参阅enchant手册页。

内容

安装程序: enchant-2 和 enchant-lsmod-2

安装库: libenchant-2.so

安装目录: /usr/include/enchant-2, /usr/lib/enchant-2, 和 /usr/share/enchant

简要描述

enchant-2 是一个拼写检查器。

enchant-lsmod-2 列出可用的后端、语言和字典。

libenchant-2.so 包含拼写检查接口API函数。

9.11 Exempi-2.6.3


简介Exempi

Exempi是XMP (Adobe的可扩展元数据平台)的实现。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Exempi 依赖

必要

Boost-1.81.0

可选

Valgrind-3.20.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/exempi

安装Exempi

如果您打算运行回归测试,请首先删除依赖于明显专有的Adobe SDK的测试:

sed -i -r '/^\s?testadobesdk/d' exempi/Makefile.am &&
autoreconf -fiv

运行以下命令安装Exempi:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: exempi

安装库: libexempi.so

安装目录: /usr/include/exempi-2.0

简要描述

exempi 是操作XMP元数据的命令行工具。

libexempi.so 是一个用于解析XMP元数据的库。

9.12 fftw-3.3.10


简介fftw

FFTW是一个C子程序库,用于计算一个或多个维度的离散傅里叶变换(DFT),任意输入大小,以及实数据和复杂数据(以及偶/奇数据,即离散余弦/正弦变换或DCT/DST)。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/fftw

安装fftw

注意

我们为不同的库以不同的数值精度构建了三次fftw:默认的双精度浮点,旧的32位(单精度)版本,名为float,牺牲精度以提高速度,长双精度以降低执行速度为代价。

第一个构建用于双精度算术。运行以下命令安装fftw:

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static \
            --enable-threads \
            --enable-sse2    \
            --enable-avx     \
            --enable-avx2    &&
make

要测试结果,执行: make check. 在32位系统上,测试所花费的时间可能比在64位机器上要长得多。

现在,作为root用户:

make install

现在建立单精度:

make clean &&

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static \
            --enable-threads \
            --enable-sse2    \
            --enable-avx     \
            --enable-avx2    \
            --enable-float   &&
make

作为root用户:

make install

最后,构建长双精度:

make clean &&

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static \
            --enable-threads \
            --enable-long-double &&
make

作为root用户:

make install

命令解释

--enable-shared --disable-static: 使用共享库而不是静态库。

--enable-threads: 这样可以编译libfftw3_threads.so。它被G’MIC中的gimp插件使用。

--enable-{sse2,avx,avx2}: 这样就可以使用SSE2、AVX和AVX2指令构建优化的例程。当加载FFTW库时,FFTW将检查这些例程是否真的可以在当前CPU上使用,因此启用了这些例程的FFTW构建仍然可以在没有SSE2, AVX或AVX512的CPU上运行。这些选项与--enable-long-double不兼容。

--enable-float: 这样就可以构建使用单精度浮点运算的库。它比默认的双精度库更快,但精度较低。该库将被称为PulseAudio-16.1所需的libfftw3f.so

--enable-long-double: 这样就可以构建使用精度更高的长双精度浮点运算的库。这个库将被命名为libfftw3l.so

--enable-avx512: 这样就可以使用AVX512F指令构建优化的例程。当加载FFTW库时,FFTW将检查这些例程是否真的可以在当前CPU上使用,因此启用了这些例程的FFTW构建仍然可以在没有AVX512F的CPU上运行。如果FFTW构建将在带有AVX512F的CPU上使用,则使用此选项。此选项与--enable-long-double不兼容。

内容

安装程序: fftw-wisdom 和 fftw-wisdom-to-conf

安装库: libfftw3.so, libfftw3_threads.so, libfftw3f.so, libfftw3f_threads.so, libfftw3l.so 和 libfftw3l_threads.so

安装目录: None

简要描述

fftw-wisdom 是一个生成FFTW智能文件的实用程序,其中包含有关如何优化计算各种大小的(傅里叶)变换的保存信息。

fftw-wisdom-to-conf 是一个从FFTW智能文件生成C配置例程的实用程序,其中后者包含有关如何优化计算各种大小的(傅里叶)变换的保存信息。

libfftw3.so 是快速傅里叶变换库。

libfftw3_threads.so 是线程快速傅里叶变换库。

libfftw3f.so 是单精度快速傅立叶变换库,由于历史原因被称为“float”。

libfftw3f_threads.so 是线程单精度快速傅立叶变换库。

libfftw3l.so 是长倍快速傅里叶变换库。

libfftw3l_threads.so 是螺纹长双快速傅里叶变换库。

9.13 GLib-2.74.5


简介GLib

GLib包包含低级库,用于为C语言提供数据结构处理,可移植性包装器和运行时功能接口,如事件循环,线程,动态加载和对象系统。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

额外下载

GLib 依赖

推荐

libxslt-1.1.37pcre2-10.42

可选

dbus-1.14.6 (用于一些测试), Fuse-3.13.1bindfs (两者都需要进行一次测试), GDB-13.1 (用于绑定), docbook-xml-4.5, docbook-xsl-nons-1.79.2, GTK-Doc-1.33.2 (构建API文档), glib-networking-2.74.0 (对于某些测试,但这是一个循环依赖项), 和 sysprof-3.46.0

额外运行时依赖

gobject-introspection-1.74.0 (应该在gtk+、atk等之前安装。)

直接引用自INSTALL文件:“GIO中与mime类型相关的一些功能需要update-mime-databaseupdate-desktop-database实用程序”,它们分别是shared-mime-info-2.2desktop-file-utils-0.26的一部分。有些测试也需要这两个实用程序。

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/glib2

安装GLib

如果需要,应用可选补丁。在许多情况下,直接或间接通过其他库(如GTK+-3.24.36使用此库的应用程序在从命令行运行时输出大量警告。这个补丁允许使用一个环境变量GLIB_LOG_LEVEL来抑制不需要的消息。变量的值是一个数字,对应于:

1 Alert

2 Critical

3 Error

4 Warning

5 Notice

例如,export GLIB_LOG_LEVEL=4将跳过警告和通知消息的输出(以及信息/调试消息,如果它们被打开)。如果没有定义GLIB_LOG_LEVEL,则不会影响正常的消息输出。

patch -Np1 -i ../glib-2.74.5-skip_warnings-1.patch

警告

如果安装了以前版本的glib,请将头文件移开,这样以后的包就不会遇到冲突:

if [ -e /usr/include/glib-2.0 ]; then
    rm -rf /usr/include/glib-2.0.old &&
    mv -vf /usr/include/glib-2.0{,.old}
fi

运行以下命令安装GLib:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Dman=true          \
      ..                  &&
ninja

注意

如果安装了libxslt-1.1.37,那么在生成手册页时,上面的命令可能会显示几个(大约33个)以”Error: no ID for constraint linkend:”开头的错误。这些是无害的。

GLib测试套件需要“desktop-file-utils”进行某些测试。然而,桌面文件utils需要GLib来编译;因此,您必须首先安装GLib,然后运行测试套件。

现在,作为root用户:

ninja install &&

mkdir -p /usr/share/doc/glib-2.74.5 &&
cp -r ../docs/reference/{gio,glib,gobject} /usr/share/doc/glib-2.74.5

您现在应该安装desktop-file-utils-0.26shared-mime-info-2.2,并继续运行测试套件。

警告

不要以root身份运行测试套件,否则一些测试会意外失败,并在/usr层次结构中留下一些不符合fhs的目录。

要测试结果,在安装包之后,以非root用户发出:LC_ALL=C ninja test。已知一个名为glib:glib / error的测试会失败。

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

-Dman=true: 此开关导致构建创建并安装包手册页。

-Dgtk_doc=true: 此开关导致构建创建并安装API文档。

内容

安装程序: gapplication, gdbus, gdbus-codegen, gio, gio-querymodules, glib-compile-resources, glib-compile-schemas, glib-genmarshal, glib-gettextize, glib-mkenums, gobject-query, gresource, gsettings, gtester, 和 gtester-report

安装库: libgio-2.0.so, libglib-2.0.so, libgmodule-2.0.so, libgobject-2.0.so, 和 libgthread-2.0.so

安装目录: /usr/include/gio-unix-2.0, /usr/include/glib-2.0, /usr/lib/glib-2.0, /usr/share/glib-2.0, /usr/share/doc/glib-2.74.5, 和 /usr/share/gtk-doc/html/{gio,glib,gobject} (可选)

简要描述

gapplication 可用于启动应用程序并向已运行的其他应用程序实例发送消息。

gdbus 是一个用于处理D-Bus对象的简单工具。

gdbus-codegen 用于为一个或多个D-Bus接口生成代码和/或文档。

gio 是一个实用程序,可以从命令行使用许多GIO特性。

gio-querymodules 用于在列出的目录中创建一个giomodule.cache文件。该文件列出了为找到的每个模块实现的扩展点。

glib-compile-resources 用于从文件及其引用的文件中读取资源描述,以创建适合与GResource API一起使用的二进制资源束。

glib-compile-schemas 用于将目录中所有的GSettings XML模式文件编译成一个名为gschemas.compiled的二进制文件,供GSettings使用。

glib-genmarshal 是一个用于GLib闭包的C代码编组程序生成工具。

glib-gettextize 是gettext国际化实用程序的一个变体。

glib-mkenums 是一个C语言枚举描述生成工具。

gobject-query 是一个绘制类型树的小实用程序。

gresource 为GResource提供了一个简单的命令行接口。

gsettings 为GSettings提供了一个简单的命令行界面。

gtester 是一个测试运行实用程序。

gtester-report 是一个测试报告格式化实用程序。

GLib libraries 包含用于GIMP Toolkit的低级核心库。

9.14 GLibmm-2.66.5


简介GLibmm

GLibmm包是一组用于GLib的c++绑定。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

GLibmm 依赖

必要

GLib-2.74.5libsigc++-2.12.0

可选

Doxygen-1.9.6, glib-networking-2.74.0 (用于测试), GnuTLS-3.8.0 (用于测试), libxslt-1.1.37, 和 mm-common

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/glibmm

安装GLibmm

运行以下命令安装GLibmm:

mkdir bld &&
cd    bld &&

meson --prefix=/usr --buildtype=release .. &&
ninja

要测试结果,执行: ninja test.

现在,作为root用户:

ninja install

内容

安装程序: None

安装库: libgiomm-2.4.so, libglibmm-2.4.so 和 libglibmm_generate_extra_defs-2.4.so

安装目录: /usr/lib/g{io,lib}mm-2.4 和 /usr/include/g{io,lib}mm-2.4

简要描述

libgiomm-2.4.so 包含GIO API类。

libglibmm-2.4.so 包含GLib API类。

9.15 GMime-3.2.7


简介GMime

GMime包包含一组实用程序,用于使用适用rfc定义的多用途Internet邮件扩展(Multipurpose Internet Mail Extension, MIME)解析和创建消息。请参阅GMime web site获取rfc资源。这是非常有用的,因为它提供了一个尽可能严格遵守MIME规范的API,同时也为程序员提供了一个非常易于使用的API函数接口。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

GMime 依赖

必要

GLib-2.74.5libgpg-error-1.46

推荐

gobject-introspection-1.74.0libidn2-2.3.4

可选

DocBook-utils-0.6.14, GPGME-1.18.0, GTK-Doc-1.33.2, libnsl-2.0.0, Vala-0.56.4, 和 Gtk# (需要 Mono)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gmime

安装GMime

运行以下命令安装GMime:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则使用此参数。

内容

安装程序: None

安装库: libgmime-3.0.so

安装目录: /usr/include/gmime-3.0 和 /usr/share/gtk-doc/html/gmime-3.0

简要描述

libgmime-3.0.so 包含需要遵守MIME标准的程序所使用的API函数。

9.16 gobject-introspection-1.74.0


简介GObject Introspection

GObject Introspection用于描述程序api,并以统一的、机器可读的格式收集它们。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

GObject Introspection 依赖

必要

GLib-2.74.5

可选

Cairo-1.17.6 (required for the tests), Gjs-1.74.1 (为了满足一个测试), GTK-Doc-1.33.2, Mako-1.2.4, 和 Markdown-3.4.1

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gobject-introspection

安装GObject Introspection

运行以下命令安装GObject Introspection:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

要测试结果,执行: ninja test.

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

-Dgtk_doc=true: 构建并安装文档。

-Dcairo=enabled: 使用cairo进行测试。

-Ddoctool=enabled: 安装g-ir-doc-tool并运行相关测试。您必须安装Mako-1.2.4Markdown-3.4.1才能安装此实用程序。

内容

安装程序: g-ir-annotation-tool, g-ir-compiler, g-ir-doc-tool, g-ir-generate, g-ir-inspect, 和 g-ir-scanner

安装库: libgirepository-1.0.so and _giscanner.cpython-311--linux-gnu.so

安装目录: /usr/include/gobject-introspection-1.0, /usr/lib/girepository-1.0, /usr/lib/gobject-introspection, /usr/share/gir-1.0, 和 /usr/share/gobject-introspection-1.0

简要描述

g-ir-annotation-tool 从GI类型库中创建或提取注释数据。

g-ir-compiler 将一个或多个GIR文件转换为一个或多个类型库。

g-ir-doc-tool 生成可以用yelp查看的绿头鸭文件,或者用yelp-buildyelp-tools呈现为HTML。

g-ir-inspect 是一个实用程序,它提供有关GI类型的信息。

g-ir-generate 是一个使用存储库API的GIR生成器。

g-ir-scanner 是一个通过解析头文件和自省基于GObject的库来生成GIR XML文件的工具。

libgirepository-1.0.so 提供了一个API来访问typelib元数据。

9.17 Gsl-2.7.1


简介Gsl

GNU科学库(GSL,GNU Scientific Library)是一个面向C和c++程序员的数字库。它提供了广泛的数学例程,如随机数生成器,特殊函数和最小二乘拟合。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Gsl 依赖

可选

sphinx_rtd_theme-1.2.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gsl

安装Gsl

运行以下命令安装Gsl:

./configure --prefix=/usr --disable-static &&
make

如果您已经安装了sphinx_rtd_theme-1.2.0,使用以下命令构建文档:

make html

要测试结果,执行: make check.

现在,作为root用户:

make install

如果你构建了文档,安装它(作为root):

mkdir                   /usr/share/doc/gsl-2.7.1 &&
cp -R doc/_build/html/* /usr/share/doc/gsl-2.7.1

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: gsl-config, gsl-histogram, 和 gsl-randist

安装库: libgslcblas.so 和 libgsl.so

安装目录: /usr/include/gsl 和 /usr/share/doc/gsl-2.7.1

简要描述

gsl-config 是一个shell脚本,用于获取已安装的Gsl库的版本号和编译器标志。

gsl-histogram 是GNU科学库的演示程序,它从stdin中获取的数据计算直方图。

gsl-randist 是GNU科学库的演示程序,它从各种分布中生成随机样本。

libgslcblas.so 包含实现基本线性代数子程序的C接口的函数。

libgsl.so 包含为科学计算提供数值例程集合的函数。

9.18 gspell-1.12.0


简介gspell

gspell包提供了一个灵活的API,可以向GTK+应用程序添加拼写检查。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

gspell 依赖

必要

enchant-2.3.3, ICU-72.1, 和 GTK+-3.24.36

可选

gobject-introspection-1.74.0, GTK-Doc-1.33.2, Vala-0.56.4, 和 Valgrind-3.20.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/gspell

安装gspell

运行以下命令安装gspell:

./configure --prefix=/usr &&
make

要测试结果,执行: make check. 测试必须在X会话中运行。如果没有安装外部包Hunspell,一个名为test-checker的测试就会失败。

现在,作为root用户:

make install

内容

安装程序: gspell-app1

安装库: libgspell-1.so

安装目录: /usr/include/gspell-1 和 /usr/share/gtk-doc/html/gspell-1.0

简要描述

gspell-app1 检查在窗口中输入的文本的拼写。

libgspell-1.so 是gspell API库。

9.19 ICU-72.1


简介ICU

Unicode国际组件(ICU,International Components for Unicode)包是一组成熟的、广泛使用的C/ c++库,为软件应用程序提供Unicode和全球化支持。ICU具有广泛的可移植性,并在所有平台上为应用程序提供相同的结果。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

ICU 依赖

可选

LLVM-15.0.7 (与 Clang), 和 Doxygen-1.9.6 (用于文档)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/icu

安装ICU

注意

这个包扩展到目录’ icu ‘。

注意

如果clang++可用,它将被错误地认为g++可能不支持c++ 11,即使configure已经为此进行了测试。如果使用g++,将在configure的末尾出现不必要的警告。使用g++构建所需的时间也比显示的预估SBU要长。

运行以下命令安装ICU:

cd source                                    &&

./configure --prefix=/usr                    &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

内容

安装程序: derb, escapesrc, genbrk, genccode, gencfu, gencmn, gencnval, gendict, gennorm2, genrb, gensprep, icu-config, icuexportdata, icuinfo, icupkg, makeconv, pkgdata, 和 uconv

安装库: libicudata.so, libicui18n.so, libicuio.so, libicutest.so, libicutu.so, 和 libicuuc.so

安装目录: /usr/include/unicode, /usr/lib/icu, 和 /usr/share/icu

简要描述

derb 反汇编资源包。

escapesrc 将”\u”转义字符转换为unicode字符。

genbrk 将ICU中断迭代规则源文件编译为二进制数据文件。

genccode 从ICU数据文件生成C或特定于平台的汇编代码。

gencfu 读入Unicode易混淆字符定义并写出二进制数据。

gencmn 生成一个ICU内存映射数据文件。

gencnval 编译转换器的别名文件。

gendict 将单词列表编译成ICU字符串字典。

gennorm2 使用Unicode规范化数据构建二进制数据文件。

genrb 编译资源包。

gensprep 编译StringPrep数据从过滤的RFC 3454文件。

icu-config 输出ICU构建选项。

icuinfo 输出当前ICU的配置信息。

icupkg 提取或修改ICU .dat存档。

makeconv 编译转换器表。

pkgdata 打包数据供ICU使用。

uconv 将数据从一种编码转换为另一种编码。

libicudata.so 是数据库。

libicui18n.so 是国际化(i18n)库。

libicuio.so 是ICU I/O (unicode stdio)库。

libicutest.so 是测试库。

libicutu.so 是工具实用程序库。

libicuuc.so 是公共库。

9.20 inih-56


简介inih

这个包是用C编写的一个简单的.ini文件解析器。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/inih

安装inih

运行以下命令安装inih:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

这个包没有附带测试套件。

现在,作为root用户:

ninja install

内容

安装程序: None

安装库: libinih.so, libINIReader.so

安装目录: None

9.21 Intel-gmmlib-22.3.4


简介Intel-gmmlib

Intel-gmmlib包包含Intel Graphics Memory Management Library,它为Intel Media Driver for VAAPI和Intel Graphics Computer Runtime for OpenCL (TM)提供设备特定的内存和缓冲区管理功能。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

注意

压缩包intel-gmmlib-22.3.4.tar.gz将解压缩到目录gmmlib-intel-gmmlib-22.3.4

Intel-gmmlib 依赖

必要

CMake-3.25.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/intel-gmmlib

安装Intel-gmmlib

运行以下命令安装Intel-gmmlib:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr   \
      -DBUILD_TYPE=Release          \
      -Wno-dev ..                   &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

内容

安装程序: None

安装库: libigdgmm.so

安装目录: /usr/include/igdgmm

简要描述

libigdgmm.so 包含为英特尔图形驱动程序提供内存管理功能的函数。

9.22 Jansson-2.14


简介Jansson

Jansson包包含一个用于编码、解码和操作JSON数据的库。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/jansson

安装Jansson

首先修复其中一个测试:

sed -e "/DT/s;| sort;| sed 's/@@libjansson.*//' &;" \
    -i test/suites/api/check-exports

运行以下命令安装jansson:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

内容

安装程序: None

安装库: libjansson.so

安装目录: None

简要描述

libjansson.so 包含用于编码、解码和操作JSON数据的API。

9.23 JS-102.8.0


简介JS

JS(也被称为SpiderMonkey)是Mozilla的JavaScript和WebAssembly引擎,用c++和Rust编写。在BLFS中,JS的源代码取自Firefox。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

JS102 依赖

必要

ICU-72.1, rustc-1.67.1, 和 Which-2.21

推荐

LLVM-15.0.7 (没有SSE2功能的32位系统需要)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/js102

安装JS

注意

与BLFS中的大多数其他包不同,下面的说明要求您解压firefox-102.8.0esr.tar.xz并更改为firefox-102.8.0文件夹。

提取tarball将把当前目录的权限重置为0755(如果您有权限的话)。如果你在一个设置了sticky位的目录中这样做,比如/tmp,它将以错误消息结束:

tar: .: 不能运行:操作不允许。 tar: .: 不能将模式更改为rwxr-xr-t:操作不允许。 tar: 由于以前的错误,以失败状态退出。

这确实以非零状态结束,但这并不意味着存在真正的问题。不要以root用户在设置了sticky位的目录下进行解压缩——那样会取消设置。

运行以下命令安装JS:

注意

如果要在chroot中编译这个包,必须做两件事。首先,作为root用户,确保挂载了/dev/shm。如果不这样做,Python配置将失败,并返回一个引用/usr/lib/pythonN.N/multiprocessing/synchronize.py的回溯报告。运行:

mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm

第二,作为root用户,使用export SHELL=/bin/sh导出$SHELL环境变量,或者在运行configure命令时加上SHELL=/bin/sh

编译c++代码尊重$MAKEFLAGS并默认为’j1’, rust代码将使用所有处理器。

首先删除python代码中一个过时的标志,该标志已在python-3.11中删除:

grep -rl \"rU\" | xargs sed -i 's/"rU"/"r"/'

Then run:

mkdir obj &&
cd    obj &&

sh ../js/src/configure.in --prefix=/usr            \
                          --with-intl-api          \
                          --with-system-zlib       \
                          --with-system-icu        \
                          --disable-jemalloc       \
                          --disable-debug-symbols  \
                          --enable-readline        &&
make

要运行JS测试套件,发出:make -C js/src check-jstests JSTESTS_EXTRA_ARGS=”–timeout 300 –wpt=disabled”。建议将输出重定向到日志中。由于我们正在使用系统ICU进行构建,因此已知有100多个测试(总共超过50,000个)失败。

要运行JIT测试套件,执行: make -C js/src check-jit-test JITTEST_EXTRA_ARGS=”–timeout 300”.

当心

如果升级或重新安装JS102,安装过程中的一个问题会导致链接到JS102共享库的任何正在运行的程序(例如GNOME Shell)崩溃。要解决这个问题,请在安装之前删除旧版本的JS102共享库:

rm -fv /usr/lib/libmozjs-102.so

现在,作为root用户:

make install &&
rm -v /usr/lib/libjs_static.ajs &&
sed -i '/@NSPR_CFLAGS@/d' /usr/bin/js102-config

命令解释

sh ../js/src/configure.in: configure.in实际上是一个shell脚本,但可执行位没有设置在其权限模式中,因此需要显式地使用sh来运行它。

--with-intl-api: 这就启用了Gjs所需的国际化功能。

--with-system-*: 这些参数允许构建系统使用上述库的系统版本。这些都是稳定所必需的。

--enable-readline: 这个开关启用了JS shell中的Readline支持。

--disable-jemalloc: 该开关禁用JS102中使用的内部内存分配器。jemalloc仅适用于Firefox浏览器环境。对于使用JS102的其他应用程序,当在jemalloc分配器中分配的项在系统(glibc)分配器上被释放时,应用程序可能会崩溃。

--disable-debug-symbols: 不要生成调试符号,因为它们非常大,大多数用户不需要它。如果要调试JS102,请删除它。

rm -v /usr/lib/libjs_static.ajs: 删除没有被任何BLFS包使用的大型静态库。

sed -i ‘/@NSPR_CFLAGS@/d’ /usr/bin/js102-config: 防止js102-config使用错误的CFLAGS。

`CC=gcc CXX=g++`: BLFS过去更喜欢使用gcc和g++,而不是上游默认的clang程序。随着gcc-12的发布,gcc和g++的构建时间更长,主要是因为额外的警告,而且更大。如果您希望继续使用gcc、g++,则将这些环境变量传递给configure脚本(通过在安装后导出并取消设置它们,或者简单地在sh ../js/src/configure.in命令之前添加它们)。如果您在32位系统上构建,请参见下面的内容。

`CXXFLAGS="-msse2 -mfpmath=sse"`: 对于双精度浮点操作,使用SSE2而不是387。GCC需要它来满足上游(Mozilla)开发人员对浮点运算的期望。如果您正在使用GCC在32位系统上构建此包(如果没有安装Clang或明确指定了GCC),请使用它。注意,这将导致JS在没有SSE2功能的处理器上崩溃。如果您在这样一个老旧的处理器上运行系统,那么Clang是非常必要的。在64位系统上不需要此设置,因为所有64位x86处理器都支持SSE2, 64位编译器(Clang和GCC)默认使用SSE2。

内容

安装程序: js102 and js102-config

安装库: libmozjs-102.so

安装目录: /usr/include/mozjs-102

简要描述

js102 为JavaScript引擎提供了一个命令行接口。

js102-config 用于查找JS编译器和链接器标志。

libmozjs-102.so 包含Mozilla JavaScript API函数。

9.24 JSON-C-0.16


简介JSON-C

JSON-C实现了一个引用计数对象模型,该模型允许您轻松地在C中构造JSON对象,将它们输出为JSON格式的字符串,并将JSON格式的字符串解析回JSON对象的C表示。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

JSON-C 依赖

必要

CMake-3.25.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/json-c

安装JSON-C

运行以下命令安装JSON-C:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release \
      -DBUILD_STATIC_LIBS=OFF    \
      .. &&
make

要测试结果,执行: make test.

现在,作为root用户:

make install

命令解释

-DCMAKE_BUILD_TYPE=Release: 此开关用于应用更高级别的编译器优化。

内容

安装程序: None

安装库: libjson-c.so

安装目录: /usr/include/json-c

简要描述

libjson-c.so 包含JSON-C API函数。

9.25 JSON-GLib-1.6.6


简介JSON GLib

JSON GLib包是一个库,为RFC 4627描述的JavaScript Object Notation (JSON)格式提供序列化和反序列化支持。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

JSON-GLib 依赖

必要

GLib-2.74.5

可选 (如果构建GNOME此为必要)

gobject-introspection-1.74.0

可选

GTK-Doc-1.33.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/json-glib

安装JSON GLib

运行以下命令安装JSON GLib:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

要测试结果,执行: ninja test.

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

内容

安装程序: json-glib-format 和 json-glib-validate

安装库: libjson-glib-1.0.so

安装目录: /usr/{include,share/installed-tests}/json-glib-1.0, /usr/libexec/installed-tests/json-glib-1.6.6, 和 /usr/share/gtk-doc/html/json-glib

简要描述

json-glib-format 是格式化JSON数据的简单命令行接口。

json-glib-validate 是验证JSON数据的简单命令行接口。

libjson-glib-1.0.so 包含JSON GLib API函数。

9.26 keyutils-1.6.1


简介keyutils

Keyutils是一组实用程序,用于管理内核中的密钥保留功能,文件系统、块设备等可以使用它来获取和保留执行安全操作所需的授权和加密密钥。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

keyutils 依赖

必要

MIT Kerberos V5-1.20.1

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/keyutils

安装keyutils

运行以下命令安装keyutils:

sed -i 's:$(LIBDIR)/$(PKGCONFIG_DIR):/usr/lib/pkgconfig:' Makefile &&
make

作为root用户,为了测试结果,执行:

make -k test

请注意,如果在构建内核时没有使用某些不常见的内核选项,那么几个测试将会失败。其中包括CONFIG_BIG_KEYS、CONFIG_KEY_DH_OPERATIONS和CONFIG_CRYPTO_DH。

现在,作为root用户:

make NO_ARLIB=1 LIBDIR=/usr/lib BINDIR=/usr/bin SBINDIR=/usr/sbin install

命令解释

sed … Makefile: 该命令确保pkgconfig文件被放置在正确的目录中。

NO_ARLIB=1: 这个make标志禁止安装静态库。

配置 keyutils

配置文件

/etc/request-key.conf/etc/request-key.d/*

内容

安装程序: keyctl, key.dns_resolver, 和 request-key

安装库: libkeyutils.so

安装目录: /etc/request-key.d 和 /usr/share/keyutils

简要描述

keyctl 使用各种子命令控制密钥管理工具。

key.dns_resolver 当内核服务(如NFS、CIFS和AFS)需要执行主机名查找而内核没有缓存该键时,由request-key代表内核调用。通常不打算直接调用它。

request-key 当内核被请求一个它没有立即可用的键时,由内核调用。内核创建一个临时密钥,然后调用这个程序来实例化它。它不打算被直接调用。

libkeyutils.so 包含keyutils库API实例化。

9.27 libaio-0.3.113


简介libaio

libaio包是一个异步I/O工具(“async I/O”或“aio”),它比简单的POSIX异步I/O工具具有更丰富的API和功能集。这个库libaio为异步I/O提供了linux本地API。POSIX异步I/O功能需要这个库来提供内核加速的异步I/O功能,需要linux本地异步I/O API的应用程序也是如此。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libaio

安装libaio

首先,禁用静态库的安装:

sed -i '/install.*libaio.a/s/^/#/' src/Makefile

运行以下命令构建libaio:

make

如果你想运行测试套件,修复Glibc-2.34或更高版本的问题:

sed 's/-Werror//' -i harness/Makefile

要测试结果,执行: make partcheck.

现在,作为root用户,安装这个包:

make install

内容

安装程序: None

安装库: libaio.so

安装目录: None

简要描述

libaio.so 是libaio库。

9.28 libarchive-3.6.2


简介libarchive

libarchive库为读/写各种压缩格式提供了一个接口。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libarchive 依赖

可选

libxml2-2.10.3, LZO-2.10, 和 Nettle-3.8.1

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libarchive

安装libarchive

运行以下命令安装libarchive:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: LC_ALL=C make check.

现在,作为root用户:

make install

删除/usr/lib/pkgconfig/libarchive.pc中的无效条目:

sed -i "s/iconv //" /usr/lib/pkgconfig/libarchive.pc

命令解释

--disable-static: 此开关防止安装库的静态版本。

--without-xml2: 如果安装了两个包,则此开关将expat设置为xar归档格式支持,而不是首选的libxml2。

--without-nettle: 如果安装了两个包,则此开关将OpenSSL设置为加密支持,而不是首选的Nettle。

内容

安装程序: bsdcat, bsdcpio, 和 bsdtar

安装库: libarchive.so

安装目录: None

简要描述

bsdcat 将文件展开为标准输出。

bsdcpio 是一个类似于cpio的工具。

bsdtar 是一个类似于GNU tar的工具。

libarchive.so 是一个库,可以创建和读取多种流存档格式。

9.29 libassuan-2.5.5


简介libassuan

libassuan包包含一个进程间通信库,供其他一些GnuPG相关包使用。libasuan的主要用途是允许客户端与非持久化服务器进行交互。然而,libbasuan并不局限于GnuPG服务器和客户端。它被设计得足够灵活,可以满足许多基于非持久化服务器的事务环境的需求。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libassuan 依赖

必要

libgpg-error-1.46

可选

texlive-20220321 (或 install-tl-unx)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libassuan

安装libassuan

运行以下命令安装libassuan:

./configure --prefix=/usr &&
make                      &&

make -C doc html                                                       &&
makeinfo --html --no-split -o doc/assuan_nochunks.html doc/assuan.texi &&
makeinfo --plaintext       -o doc/assuan.txt           doc/assuan.texi

上面的命令以html和明文格式构建文档。如果您希望构建替代格式的文档,您必须安装texlive-20220321并发出以下命令:

make -C doc pdf ps

要测试结果,执行: make check.

现在,作为root用户:

make install &&

install -v -dm755   /usr/share/doc/libassuan-2.5.5/html &&
install -v -m644 doc/assuan.html/* \
                    /usr/share/doc/libassuan-2.5.5/html &&
install -v -m644 doc/assuan_nochunks.html \
                    /usr/share/doc/libassuan-2.5.5      &&
install -v -m644 doc/assuan.{txt,texi} \
                    /usr/share/doc/libassuan-2.5.5

如果您构建了替代格式的文档,作为root用户,请运行以下命令来安装它们:

install -v -m644  doc/assuan.{pdf,ps,dvi} \
                  /usr/share/doc/libassuan-2.5.5

内容

安装程序: libassuan-config

安装库: libassuan.so

安装目录: /usr/share/doc/libassuan-2.5.5

简要描述

libassuan-config 是一个libassuan构建信息脚本。

libassuan.so 是一个进程间通信库,实现了Assuan协议。

9.30 libatasmart-0.19


简介libatasmart

libatasmart包是一个磁盘报告库。它只支持ATA S.M.A.R.T功能的一个子集。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libatasmart

安装libatasmart

运行以下命令安装libatasmart:

./configure --prefix=/usr --disable-static &&
make

这个包没有附带测试套件。

现在,作为root用户:

make docdir=/usr/share/doc/libatasmart-0.19 install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: skdump and sktest

安装库: libatasmart.so

安装目录: /usr/share/doc/libatasmart-0.19

简要描述

skdump 是一个报告磁盘状态的实用程序。

sktest 是发布磁盘测试的实用程序。

libatasmart.so 包含ATA S.M.A.R.T API函数。

9.31 libatomic_ops-7.6.14


简介libatomic_ops

libatomic_ops在许多体系结构上提供了原子内存更新操作的实现。这允许在合理可移植的代码中直接使用它们。与早期的类似包不同,这个包显式地考虑了内存屏障语义,并允许在各种体系结构之间构建涉及最小开销的代码。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libatomic_ops

安装libatomic_ops

运行以下命令安装libatomic_ops:

./configure --prefix=/usr    \
            --enable-shared  \
            --disable-static \
            --docdir=/usr/share/doc/libatomic_ops-7.6.14 &&
make

要查看结果,请执行命令 make check.

现在,作为root用户:

make install

命令解释

--enable-shared: 这个开关允许构建libatomic_ops共享库。

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: None

安装库: libatomic_ops.so 和 libatomic_ops_gpl.so

安装目录: /usr/include/libatomic_ops 和 /usr/share/doc/libatomic_ops-7.6.14

简要描述

libatomic_ops.so 包含原子内存操作的函数。

9.32 libblockdev-2.28


简介libblockdev

libblockdev是一个C库,支持object Introspection来操作块设备。它有一个基于插件的架构,其中每个技术(如LVM, Btrfs, MD RAID, Swap,…)在一个单独的插件中实现,可能有多个实现(例如使用LVM CLI或新的LVM DBus API)。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libblockdev 依赖

必要

gobject-introspection-1.74.0, libbytesize-2.7, libyaml-0.2.5, parted-3.5, 和 volume_key-0.3.12

可选

btrfs-progs-6.1.3, GTK-Doc-1.33.2, mdadm-4.2, dmraid, bcachefs, 和 ndctl

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libblockdev

安装libblockdev

运行以下命令安装libblockdev:

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --with-python3    \
            --without-gtk-doc \
            --without-nvdimm  \
            --without-dm      &&
make

这个包没有附带一个工作测试套件。

现在,作为root用户:

make install

内容

安装程序: lvm-cache-stats

安装库: libbd_btrfs.so, libbd_crypto.so, libbd_fs.so, libbd_kbd.so, libbd_loop.so, libbd_lvm.so, libbd_lvm-dbus.so, libbd_mdraid.so, libbd_mpath.so, libbd_part.so, libbd_part_err.so, libbd_swap.so, libbd_utils.so, libbd_vdo.so, 和 libblockdev.so

安装目录: /etc/libblockdev, /usr/include/blockdev, 和 /usr/share/gtk-doc/html/libblockdev

简要描述

lvm-cache-stats 输出LVM逻辑卷上缓存的统计信息。

9.33 libbytesize-2.7


简介libbytesize

libbytesize包是一个库,它简化了以字节为单位的常见操作。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libbytesize 依赖

必要

pcre2-10.42Pygments-2.14.0

推荐

six-1.16.0

可选

GTK-Doc-1.33.2, pocketlint (Python模块用于一个测试), 和 polib (Python模块用于一个测试)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libbytesize

安装libbytesize

运行以下命令安装libbytesize:

./configure --prefix=/usr &&
make

如果你安装了可选的python模块,回归测试可以使用: make check.

现在,作为root用户:

make install

内容

安装程序: bscalc

安装库: libbytesize.so

安装目录: /usr/include/bytesize 和 /usr/lib/python3.11/site-packages/bytesize

简要描述

bscalc 将较大的单位(如MB或TB)转换回以字节为单位的值。

libbytesize.so 包含用于处理以字节为单位的常见读/写操作的函数。

9.34 libcloudproviders-0.3.1


简介libcloudproviders

libcloudproviders包包含一个库,它提供了一个DBus API,允许云存储同步客户端公开它们的服务。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libcloudproviders 依赖

必要

gobject-introspection-1.74.0Vala-0.56.4

可选

GTK-Doc-1.33.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libcloudproviders

安装libcloudproviders

运行以下命令安装libcloudproviders:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

这个包没有附带测试套件。

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

-Denable-gtk-doc: 如果您安装了GTK-Doc-1.33.2并希望生成API文档,请使用此开关。

内容

安装程序: None

安装库: libcloudproviders.so

安装目录: /usr/include/cloudproviders

简要描述

libcloudproviders.so 包含提供DBus API的函数,以允许云存储同步客户端公开其服务。

9.35 libdaemon-0.14


简介libdaemon

libdaemon包是一个轻量级的C库,它简化了UNIX守护进程的编写。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libdaemon 依赖

可选

Doxygen-1.9.6Lynx-2.8.9rel.1

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libdaemon

安装libdaemon

运行以下命令安装libdaemon:

./configure --prefix=/usr --disable-static &&
make

如果你已经安装了Doxygen,并希望构建API文档,发出以下命令:

make -C doc doxygen

这个包没有附带测试套件。

现在,作为root用户:

make docdir=/usr/share/doc/libdaemon-0.14 install

如果您构建了API文档,作为root用户,请使用以下命令安装它:

install -v -m755 -d /usr/share/doc/libdaemon-0.14/reference/html &&
install -v -m644 doc/reference/html/* /usr/share/doc/libdaemon-0.14/reference/html &&
install -v -m644 doc/reference/man/man3/* /usr/share/man/man3

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: None

安装库: libdaemon.so

安装目录: /usr/include/libdaemon 和 /usr/share/doc/libdaemon-0.14

简要描述

libdaemon.so 包含libdaemon API函数。

9.36 libgcrypt-1.10.1


简介libgcrypt

libgcrypt包包含一个基于GnuPG中使用的代码的通用加密库。该库使用可扩展且灵活的API为加密构建块提供高级接口。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libgcrypt 依赖

必要

libgpg-error-1.46

可选

Pth-2.0.7texlive-20220321 (或 install-tl-unx)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libgcrypt

安装libgcrypt

运行以下命令安装libgcrypt:

./configure --prefix=/usr &&
make                      &&

make -C doc html                                                       &&
makeinfo --html --no-split -o doc/gcrypt_nochunks.html doc/gcrypt.texi &&
makeinfo --plaintext       -o doc/gcrypt.txt           doc/gcrypt.texi

上面的命令以html和明文格式构建文档。如果您希望构建替代格式的文档,您需要texlive-20220321(或install-tl-unx)。发出以下命令:

make -C doc pdf

要测试结果,执行: make check.

现在,作为root用户:

make install &&
install -v -dm755   /usr/share/doc/libgcrypt-1.10.1 &&
install -v -m644    README doc/{README.apichanges,fips*,libgcrypt*} \
                    /usr/share/doc/libgcrypt-1.10.1 &&

install -v -dm755   /usr/share/doc/libgcrypt-1.10.1/html &&
install -v -m644 doc/gcrypt.html/* \
                    /usr/share/doc/libgcrypt-1.10.1/html &&
install -v -m644 doc/gcrypt_nochunks.html \
                    /usr/share/doc/libgcrypt-1.10.1      &&
install -v -m644 doc/gcrypt.{txt,texi} \
                    /usr/share/doc/libgcrypt-1.10.1

如果您构建了替代格式的文档,作为root用户,请通过发出以下命令来安装它们:

install -v -m644 doc/gcrypt.{pdf,ps,dvi} \
                    /usr/share/doc/libgcrypt-1.10.1

命令解释

--with-capabilities: 此选项启用libcap2支持。注意,这会破坏 cryptsetup-2.4.3

内容

安装程序: dumpsexp, hmac256, libgcrypt-config, 和 mpicalc

安装库: libgcrypt.so

安装目录: /usr/share/doc/libgcrypt-1.10.1

简要描述

dumpsexp 是S-expressions的调试工具。

hmac256 是一个独立的HMAC-SHA-256实现,用于计算HMAC-SHA-256认证码。

libgcrypt-config 确定应该用于编译和链接使用libgcrypt的程序的编译和链接标志。

mpicalc 是一个RPN(反向波兰符号,Reverse Polish Notation)计算器。

libgcrypt.so 包含加密API函数。

9.37 libgpg-error-1.46


简介libgpg-error

libgpg-error包包含一个库,它定义了所有GnuPG组件的常见错误值。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libgpg-error

安装libgpg-error

运行以下命令安装libgpg-error:

./configure --prefix=/usr &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install &&
install -v -m644 -D README /usr/share/doc/libgpg-error-1.46/README

内容

安装程序: gpg-error, gpgrt-config, 和 yat2m

安装库: libgpg-error.so

安装目录: /usr/share/common-lisp/source/gpg-error, /usr/share/libgpg-error, 和 /usr/share/doc/libgpg-error-1.46

简要描述

gpg-error 用于确定libgpg-error错误码。

gpgrt-config pkg-config样式的工具,用于查询libgpg-error的安装版本信息。

yat2m 从Texinfo源中提取手册页。

libgpg-error.so 包含libgpg-error API函数。

9.38 libgrss-0.7.0


简介libgrss

libgrss包包含一个用于操作RSS和Atom提要的库。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

额外下载

libgrss 依赖

必要

libsoup-2.74.3

推荐

GTK-Doc-1.33.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libgrss

安装libgrss

运行以下命令安装libgrss:

patch -Np1 -i ../libgrss-0.7.0-bugfixes-2.patch &&
autoreconf -fv &&
./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则使用此参数。

内容

安装程序: None

安装库: libgrss.so

安装目录: /usr/include/libgrss 和 /usr/share/doc/libgrss-0.7.0

简要描述

libgrss.so 提供处理RSS提要的API函数。

9.39 libgsf-1.14.50


简介libgsf

libgsf包包含一个库,用于为结构化文件格式提供可扩展的输入/输出抽象层。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libgsf 依赖

必要

GLib-2.74.5libxml2-2.10.3

推荐

gdk-pixbuf-2.42.10 (构建gsf-office-thumbnailer)

可选

gobject-introspection-1.74.0GTK-Doc-1.33.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libgsf

安装libgsf

运行以下命令安装libgsf:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check. 已知有两个测试t1004-zip-zip64.pl和t1005-zip-nonseekable.pl会失败。

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则使用此参数。

内容

安装程序: gsf, gsf-office-thumbnailer, 和 gsf-vba-dump

安装库: libgsf-1.so

安装目录: /usr/include/libgsf-1, /usr/share/gtk-doc/html/gsf 和 /usr/share/thumbnailers

简要描述

gsf 是一个简单的归档实用程序,有点类似于tar(1)。

gsf-office-thumbnailer 在GNOME应用程序(如Nautilus)内部使用它来生成几种办公应用程序文件的缩略图。

gsf-vba-dump 用于从文件中提取Visual Basic for Applications宏。

libgsf-1.so 包含libgsf API函数。

9.40 libgudev-237


简介libgudev

libgudev包包含libudev的GObject绑定。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

必要

GLib-2.74.5

可选

gobject-introspection-1.74.0 (gir-data,需要GNOME), GTK-Doc-1.33.2, 和 umockdev-0.17.16 (测试)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libgudev

安装libgudev

运行以下命令安装libgudev:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

要测试结果,执行: ninja test.

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

-Dgtk_doc=true: 如果安装了GTK-Doc,并且希望构建和安装API文档,请使用此选项。

内容

安装程序: None

安装库: libgudev-1.0.so

安装目录: /usr/include/gudev-1.0 和 /usr/share/gtk-doc/html/gudev

简要描述

libgudev-1.0.so 是一个用于libudev的基于对象的包装库。

9.41 libgusb-0.4.5


简介libgusb

libgusb包包含libusb-1.0的GObject包装器,这使得通过适当的取消和集成到主循环中进行异步控制、批量和中断传输变得容易。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libgusb 依赖

必要

JSON-GLib-1.6.6libusb-1.0.26

推荐

gobject-introspection-1.74.0, umockdev-0.17.16, usbutils-015 (对于usb.ids数据文件,这也是测试所需的), 和 Vala-0.56.4

可选

Gi-DocGen-2023.1

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libgusb

安装libgusb

运行以下命令安装libgusb:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Ddocs=false .. &&
ninja

如果您已经安装了Gi-DocGen-2023.1,并希望构建此包的API文档,请注意:

sed "/output: 'libgusb'/s/'\$/-0.4.5'/" -i ../docs/meson.build &&
meson configure -Ddocs=true                                    &&
ninja

要测试结果,执行: ninja test.

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

-Ddocs=false: 允许在不安装Gi-DocGen-2023.1的情况下构建此包。如果您已经安装了Gi-DocGen-2023.1,并且您希望重新构建并安装API文档,则使用meson configure命令将重置此选项。

内容

安装程序: gusbcmd

安装库: libgusb.so

安装目录: /usr/include/gusb-1 和 /usr/share/doc/libgusb-0.4.5 (如果使用gi-docgen)

简要描述

gusbcmd libgusb库的调试工具。

libgusb.so 包含libgusb API函数。

9.42 libical-3.0.16


简介libical

libical包包含iCalendar协议和数据格式的实现。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libical 依赖

必要

CMake-3.25.2

推荐

gobject-introspection-1.74.0Vala-0.56.4 (都是GNOME所必需的)

可选

Berkeley DB-5.3.28, Doxygen-1.9.6 (查看API文档), Graphviz-7.1.0 (查看API文档), GTK-Doc-1.33.2 (查看API文档), ICU-72.1, 和 PyGObject-3.42.2 (用于一些测试)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libical

安装libical

运行以下命令安装libical:

注意

当使用多个处理器构建时,这个包偶尔会失败。参见Using Multiple Processors了解更多信息。

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr  \
      -DCMAKE_BUILD_TYPE=Release   \
      -DSHARED_ONLY=yes            \
      -DICAL_BUILD_DOCS=false      \
      -DGOBJECT_INTROSPECTION=true \
      -DICAL_GLIB_VAPI=true        \
      .. &&
make -j1

如果你已经安装了Doxygen-1.9.6, Graphviz-7.1.0, 和 GTK-Doc-1.33.2并希望构建API文档,你应该删除-DICAL_BUILD_DOCS=false开关并执行:

make docs

要测试结果,执行: make test.

现在,作为root用户:

make install

如果你已经构建了API文档,以root用户通过发出命令来安装:

install -vdm755 /usr/share/doc/libical-3.0.16/html &&
cp -vr apidocs/html/* /usr/share/doc/libical-3.0.16/html

命令解释

-DCMAKE_BUILD_TYPE=Release: 此开关用于应用更高级别的编译器优化。

-DSHARED_ONLY=yes: 使用此开关是为了仅构建共享库。

-DICAL_BUILD_DOCS=false: 此开关阻止构建GTK文档。如果要构建文档,请删除。

-DGOBJECT_INTROSPECTION=true: 此开关用于生成GObject元数据绑定。

-DICAL_GLIB_VAPI=true: 此开关用于为Vala-0.56.4构建绑定。

-DUSE_BUILTIN_TZDATA=yes: 使用此开关是为了使用您自己的时区数据进行构建。

内容

安装程序: None

安装库: libical_cxx.so, libical.so, libical-glib.so, libicalss_cxx.so, libicalss.so, 和 libicalvcal.so

安装目录: /usr/include/libical, /usr/include/libical-glib, /usr/lib/cmake/LibIcal, /usr/libexec/libical, /usr/share/gtk-doc/html/libical-glib (optional), 和 /usr/share/doc/libical-3.0.16/html

简要描述

libical.so 包含libical api函数。

libical_cxx.so 包含libical C++绑定

libical-glib.so 包含libical glib包含。

libicalss.so 是一个库,它允许您以多种方式将iCal组件数据存储到磁盘。

libicalss_cxx.so 包含libicalss C++绑定。

libicalvcal.so 是一个vCard/vCalendar C接口。

9.43 libidn-1.41


简介libidn

libidn是基于Internet工程任务组(IETF)国际化域名工作组定义的Stringprep, PunycodeIDNA 规范设计的国际化字符串处理包,用于国际化域名。这对于将数据从系统的本机表示形式转换为UTF-8、将Unicode字符串转换为ASCII字符串、允许应用程序使用某些ASCII名称标签(以特殊前缀开头)来表示非ASCII名称标签以及将整个域名转换为ASCII兼容编码(ACE)形式非常有用。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libidn 依赖

可选

Pth-2.0.7, Emacs-28.2, GTK-Doc-1.33.2, OpenJDK-19.0.2, Valgrind-3.20.0, 和 Mono

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libidn

安装libidn

运行以下命令安装libidn:

./configure --prefix=/usr --disable-static &&
make

要测试结果,运行:

pushd tests  &&
  make check &&
popd

现在,作为root用户:

make install &&

find doc -name "Makefile*" -delete            &&
rm -rf -v doc/{gdoc,idn.1,stamp-vti,man,texi} &&
mkdir -v       /usr/share/doc/libidn-1.41     &&
cp -r -v doc/* /usr/share/doc/libidn-1.41

命令解释

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则使用此参数。

--enable-java: 使用此开关可以构建libidn的Java实现。请注意,必须安装OpenJDK-19.0.2 才能使用此选项。

内容

安装程序: idn

安装库: libidn.so

安装目录: /usr/share/doc/libidn-1.41 和 /usr/share/gtk-doc/html/libidn

简要描述

idn 是国际化域名库的命令行接口。

libidn.so 包含一个通用的Stringprep实现,它可以实现Unicode 3.2 NFKC规范化、字符映射和禁止以及双向字符处理。配置文件Nameprep, iSCSI, SASL和XMPP包括以及支持Punycode和ASCII兼容编码(ACE)通过IDNA。其中包括一种机制,用于定义特定于顶级域(TLD)的验证表,并将字符串与这些表以及某些顶级域的默认表进行比较。

9.44 libidn2-2.3.4


简介libidn2

libidn2是一个基于Internet工程任务组(IETF)的IDN工作组的标准,为国际化域名设计的国际化字符串处理包。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libidn2 依赖

必要

libunistring-1.1

可选

git-2.39.2GTK-Doc-1.33.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libidn2

安装libidn2

运行以下命令安装libidn2:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则使用此参数。

内容

安装程序: idn2

安装库: libidn2.so

安装目录: /usr/share/gtk-doc/html/libidn2

简要描述

idn2 是国际化域库的命令行接口。

libidn2.so 包含用于国际化字符串处理的通用Stringprep实现。

9.45 libiodbc-3.52.15


简介libiodbc

libiodbc是ODBC兼容数据库的API。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libiodbc 依赖

推荐

GTK+-2.24.33 (来创建GUI管理工具)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libiodbc

安装libiodbc

运行以下命令安装libiodbc:

./configure --prefix=/usr                   \
            --with-iodbc-inidir=/etc/iodbc  \
            --includedir=/usr/include/iodbc \
            --disable-libodbc               \
            --disable-static                &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--with-iodbc-inidir=/etc/iodbc: libiodbc将在这个目录中安装配置文件。

--includedir=/usr/include/iodbc: 这将接口头文件安装到一个私有目录中,以避免与unixODBC安装的头文件冲突。

--disable-libodbc: 这可以防止安装libodbc.so符号链接,以避免与unixODBC冲突。

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: iodbc-config, iodbctest, iodbctestw, 和 iodbcadm-gtk

安装库: libdrvproxy.so, libiodbc.so, libiodbcinst.so, 和 libiodbcadm.so

安装目录: /usr/include/iodbc, /usr/share/libiodbc, 和 /etc/iodbc

简要描述

iodbc-config 是用于检索libiodbc的安装选项的实用程序。

iodbctest{,w} 是交互式SQL处理器。

iodbcadm-gtk 是一个图形化管理实用程序。

9.46 libksba-1.6.3


简介Libksba

Libksba包包含一个库,用于生成X.509证书,并使CMS(加密消息语法)易于被其他应用程序访问。这两个规范都是S/MIME和TLS的构建块。该库不依赖于其他加密库,但提供了与libcrypt轻松集成的挂钩。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Libksba 依赖

必要

libgpg-error-1.46

可选

Valgrind-3.20.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libksba

安装Libksba

运行以下命令安装Libksba:

./configure --prefix=/usr &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

内容

安装程序: None

安装库: libksba.so

安装目录: None

简要描述

libksba.{so,a} 包含加密API函数。

9.47 liblinear-245


简介liblinear

这个包提供了一个用于学习大规模应用程序的线性分类器的库。它支持具有L2和L1损失的支持向量机(SVM),逻辑回归,多类分类和线性规划机(L1正则化SVM)。它的计算复杂度与训练样本的数量成线性关系,使其成为最快的支持向量机求解器之一。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

注意

在从linear-1.96或更早版本更新此包之后,您需要重新安装Nmap-7.93,以便链接到新的库。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/liblinear

安装liblinear

运行以下命令安装liblinear:

make lib

这个包没有附带测试套件。

现在,作为root用户:

install -vm644 linear.h /usr/include &&
install -vm755 liblinear.so.5 /usr/lib &&
ln -sfv liblinear.so.5 /usr/lib/liblinear.so

内容

安装程序: None

安装库: liblinear.so

安装目录: None

简要描述

liblinear.so 是一个大型线性分类库。

9.48 libmbim-1.26.4


简介libmbim

libmbim包包含一个基于glib的库,用于与使用移动接口宽带模型(MBIM)协议的WWAN调制解调器和设备进行通信。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libmbim 依赖

推荐

gobject-introspection-1.74.0

可选

GTK-Doc-1.33.2 and help2man

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libmbim

安装libmbim

运行以下命令安装libmbim:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则使用此参数。

内容

安装程序: mbimcli 和 mbim-network

安装库: libmbim-glib.so

安装目录: /usr/include/libmbim-glib 和 /usr/share/gtk-doc/html/libmbim-glib

简要描述

mbimcli 是一个用于控制MBIM设备的实用程序。

mbim-network 是MBIM设备的简单网络管理工具。

libmbim-glib.so 包含API功能,用于与WWAN调制解调器和使用移动接口宽带模型(MBIM)协议的设备进行通信。

9.49 libpaper-1.1.24+nmu5


简介libpaper

该软件包旨在为应用程序提供一种简单的方法,使其根据系统或用户指定的纸张大小采取操作。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libpaper

安装libpaper

运行以下命令安装libpaper:

autoreconf -fi                &&
./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-static &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install &&
mkdir -vp /etc/libpaper.d

/etc/libpaper.d目录包含更改纸张大小后运行的脚本。这个包没有在这里放置脚本,但是其他包可能会。如果没有安装fcron包,请按照Fcron Configuration Information章节创建run-parts脚本。

命令解释

--disable-static: 此开关防止安装库的静态版本。

mkdir -pv /etc/libpaper.d: libpaper期望包将文件安装到这个目录中。

配置 libpaper

配置信息

创建/etc/papersize来设置默认的系统纸张大小。以root用户的身份发出以下命令,将其设置为’A4’ (libpaper更喜欢小写形式)。您可能希望使用不同的大小,如字母。

cat > /etc/papersize << "EOF"
a4
EOF

内容

安装程序: paperconf, paperconfig, run-parts

安装库: libpaper.so

安装目录: /etc/libpaper.d

简要描述

paperconf 打印纸张配置信息。

paperconfig 配置系统默认纸张大小。

libpaper.so 包含查询文件库的函数。

9.50 libportal-0.6


简介libportal

libportal包提供了一个库,其中包含大多数Flatpak门户的gio风格的异步api。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libportal 依赖

必要

gobject-introspection-1.74.0

推荐

GTK+-3.24.36, GTK-4.8.3, 和 Qt-5.15.8

可选

Gi-DocGen-2023.1Vala-0.56.4

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libportal

安装libportal

警告

如果安装了以前版本的libportal,将头文件移开,这样以后的包就不会遇到冲突(以root用户):

if [ -e /usr/include/libportal ]; then
    rm -rf /usr/include/libportal.old &&
    mv -vf /usr/include/libportal{,.old}
fi

运行以下命令安装libportal:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Ddocs=false .. &&
ninja

如果您已经安装了Gi-DocGen-2023.1,并希望构建此包的API文档,请注意:

sed "/output/s/-1/-0.6/" -i ../doc/meson.build &&
meson configure -Ddocs=true                    &&
ninja

这个包没有附带测试套件。

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

-Ddocs=false: 允许在不安装Gi-DocGen-2023.1的情况下构建此包。如果您已经安装了Gi-DocGen-2023.1,并且您希望重新构建并安装API文档,则使用meson configure命令将重置此选项。

-Dbackends=gtk3,gtk4,qt5: 该开关允许您设置可用的后端。您可以使用它来禁用对gtk-3、gtk-4或qt-5的依赖。大多数使用libportal的应用程序将使用gtk-4或gtk-3。默认情况是构建所有三个后端。

内容

安装程序: None

安装库: libportal.so, libportal-gtk3.so, libportal-gtk4.so, 和 libportal-qt5.so

安装目录: /usr/include/libportal 和 /usr/share/gtk-doc/html/libportal

简要描述

libportal.so 为大多数Flatpak门户提供GIO-style的异步api。

libportal-gtk3.so 提供与Flatpak门户交互的GTK+-3特定函数。

libportal-gtk4.so 提供与Flatpak门户交互的GTK-4特定功能。

libportal-qt5.so 提供与Flatpak门户交互的Qt5特定功能。

9.51 libptytty-2.0


简介libptytty

libptytty包提供了一个库,允许操作系统独立和安全的pty/tty和utmp/wtmp/lastlog处理。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libptytty 依赖

必要

CMake-3.25.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libptytty

安装libptytty

运行以下命令安装libptytty:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr     \
      -DCMAKE_BUILD_TYPE=Release      \
      -DPT_UTMP_FILE:STRING=/run/utmp \
      .. &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

内容

安装程序: None

安装库: libptytty.so

安装目录: None

简要描述

libptytty.so 提供独立于操作系统和安全的pty/tty和utmp/wtmp/lastlog处理。

9.52 libqalculate-4.5.1


简介libqalculate

libqalculate包包含一个库,它提供了一个多用途计算器的函数。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libqalculate 依赖

必要

cURL-7.88.1, ICU-72.1, 和 libxml2-2.10.3

可选

Doxygen-1.9.6

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libqalculate

安装libqalculate

运行以下命令安装libqalculate:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libqalculate-4.5.1 &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: qalc

安装库: libqalculate.so

安装目录: /usr/include/libqalculate, /usr/share/doc/libqalculate-4.5.1, 和 /usr/share/qalculate

简要描述

qalc 是一个功能强大且易于使用的命令行计算器。

libqalculate.so 包含libqalculate API函数。

9.53 libqmi-1.30.8


简介libqmi

libqmi包包含一个基于glib的库,用于与使用高通MSM接口(QMI)协议的WWAN调制解调器和设备进行通信。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libqmi 依赖

必要

GLib-2.74.5libgudev-237

推荐

gobject-introspection-1.74.0libmbim-1.26.4

可选

GTK-Doc-1.33.2, help2man, 和 libqrtr-glib

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libqmi

安装libqmi

运行以下命令安装libqmi:

PYTHON=python3 ./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则使用此参数。

--disable-mbim-qmux: 此开关禁用对使用MBIM控制设备处理QMI消息的支持。如果您没有安装libmbim,请使用此开关。

内容

安装程序: qmicli, qmi-firmware-update, 和 qmi-network

安装库: libqmi-glib.so

安装目录: /usr/include/libqmi-glib 和 /usr/share/gtk-doc/html/libqmi-glib

简要描述

qmicli 是一个用于控制QMI设备的实用程序。

qmi-firmware-update 是一个用于在QMI设备上执行固件更新的实用程序。

qmi-network 是用于QMI设备的简单网络管理的实用程序。

libqmi-glib.so 包含API功能,用于与WWAN调制解调器和使用高通MSM接口(QMI)协议的设备进行通信。

9.54 libseccomp-2.5.4


简介libseccomp

libseccomp包为Linux内核的系统调用过滤机制提供了一个易于使用和平台无关的接口。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libseccomp 依赖

可选

Which-2.21 (需要进行测试), Valgrind-3.20.0, 和 LCOV

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libseccomp

安装libseccomp

运行以下命令安装libseccomp:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: scmp_sys_resolver

安装库: libseccomp.so

安装目录: None

简要描述

scmp_sys_resolver 用于解析应用程序的系统调用。

libseccomp.so 包含用于转换系统调用的API函数。

9.55 libsigc++-2.12.0


简介libsigc++

libsigc++包实现了标准c++的类型安全回调系统。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libsigc++ 依赖

推荐

Boost-1.81.0libxslt-1.1.37

可选

DocBook-utils-0.6.14, docbook-xml-5.0, Doxygen-1.9.6, 和 mm-common

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libsigc++

安装libsigc++

运行以下命令安装libsigc++:

mkdir bld &&
cd    bld &&

meson setup --prefix=/usr --buildtype=release .. &&
ninja

要测试结果,执行: ninja test.

现在,作为root用户:

ninja install

命令解释

-Dbuild-documentation=true: 如果安装了Doxygen-1.9.6并且希望构建和安装API文档,请使用此开关。

内容

安装程序: None

安装库: libsigc-2.0.so

安装目录: /usr/{include,lib}/sigc++-2.0 和 /usr/share/{devhelp/books,doc}/libsigc++-2.0 (如果启用了文档)

简要描述

libsigc-2.0.so 包含libsigc++ API函数。

9.56 libsigsegv-2.14


简介libsigsegv

libsigsegv是一个用于在用户模式下处理页面错误的库。当程序试图访问当前不可用的内存区域时,就会发生页面错误。捕捉和处理页面错误是实现可分页虚拟内存、对持久数据库的内存映射访问、分代垃圾收集器、堆栈溢出处理程序和分布式共享内存的一种有用技术。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libsigsegv

安装libsigsegv

运行以下命令安装libsigsegv:

./configure --prefix=/usr   \
            --enable-shared \
            --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--enable-shared: 此开关确保编译共享库。

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: None

安装库: libsigsegv.so

安装目录: None

简要描述

libsigsegv.so 是用于在用户模式下处理页面错误的库。

9.57 libssh2-1.10.0


简介libssh2

Libssh2包是实现SSH2协议的客户端C库。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

额外下载

libssh2 依赖

可选

GnuPG-2.4.0, libgcrypt-1.10.1, 和 OpenSSH-9.2p1 (所有这三个都是测试套件所必需的)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libssh2

安装libssh2

应用补丁来修复与最新OpenSSH版本不兼容的问题:

patch -Np1 -i ../libssh2-1.10.0-upstream_fix-1.patch

运行以下命令安装libssh2:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: None

安装库: libssh2.so

安装目录: None

简要描述

libssh2.so 包含使用SSH2协议的函数。

9.58 libstatgrab-0.92.1


简介libstatgrab

这是一个库,提供对运行它的系统的统计信息的跨平台访问。它是用C语言编写的,并提供了一些有用的接口,可用于访问关键的系统统计信息。当前统计列表包括CPU使用情况、内存使用情况、磁盘使用情况、进程计数、网络流量、磁盘I/O等。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libstatgrab

安装libstatgrab

运行以下命令安装libstatgrab:

./configure --prefix=/usr   \
            --disable-static \
            --docdir=/usr/share/doc/libstatgrab-0.92.1 &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: saidar, statgrab, statgrab-make-mrtg-config, 和 statgrab-make-mrtg-index

安装库: libstatgrab.so

安装目录: /usr/share/doc/libstatgrab-0.92.1

简要描述

saidar 是一个curses-based的工具,用于查看系统统计信息。

statgrab 是系统统计信息的sysctl-style接口。

statgrab-make-mrtg-config 生成MRTG配置。

statgrab-make-mrtg-index 从MRTG配置文件或标准输入生成XHTML索引页。

libstatgrab.so 包含libstatgrab API函数。

9.59 libtasn1-4.19.0


简介libtasn1

libtasn1是一个高度可移植的C库,它按照ASN.1模式对DER/BER数据进行编码和解码。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libtasn1 依赖

可选

GTK-Doc-1.33.2Valgrind-3.20.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libtasn1

安装libtasn1

运行以下命令安装libtasn1:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

如果您没有将--enable-gtk-doc参数传递给configure脚本,作为root用户,您可以使用以下命令安装API文档:

make -C doc/reference install-data-local

命令解释

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则通常使用此参数。由于使用了一个早已弃用的不再可用的gtk-doc程序,这个包被破坏了。

内容

安装程序: asn1Coding, asn1Decoding 和 asn1Parser

安装库: libtasn1.so

安装目录: /usr/share/gtk-doc/html/libtasn1

简要描述

asn1Coding 是ASN.1 DER编码器。

asn1Decoding 是ASN.1 DER解码器。

asn1Parser 是libtasn1的ASN.1语法树生成器。

libtasn1.so 是一个用于抽象语法符号1 (ASN.1)和区分编码规则(DER)操作的库。

9.60 libunique-1.1.6


简介libunique

libunique包包含一个用于编写单实例应用程序的库。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

额外下载

libunique 依赖

必要

GTK+-2.24.33, 也 GTK-Doc-1.33.2 (对于autoreconf)

可选

gobject-introspection-1.74.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libunique

安装libunique

运行以下命令安装libunique:

patch -Np1 -i ../libunique-1.1.6-upstream_fixes-1.patch &&
autoreconf -fi &&

./configure --prefix=/usr  \
            --disable-dbus \
            --disable-static &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-dbus: 该开关禁用D-Bus后端,支持GDBus后端。

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则使用此参数。

内容

安装程序: None

安装库: libunique-1.0.so

安装目录: /usr/include/unique-1.0 和 /usr/share/gtk-doc/html/unique

简要描述

libunique-1.0.so 包含libunique API函数用于单实例支持。

9.61 libunistring-1.1


简介libunistring

libunistring是一个库,它提供了操作Unicode字符串和根据Unicode标准操作C字符串的函数。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libunistring 依赖

可选

texlive-20220321 (或 install-tl-unx) (重建文档)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libunistring

安装libunistring

运行以下命令安装libunistring:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/libunistring-1.1 &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: None

安装库: libunistring.so

安装目录: /usr/include/unistring 和 /usr/share/doc/libunistring-1.1

简要描述

libunistring.so 提供unicode字符串库API。

9.62 libunwind-1.6.2


简介libunwind

libunwind包包含一个可移植且高效的C编程接口(API),用于确定程序的调用链。API还提供了操作每个调用帧的保留(被调用者保存)状态的方法,并在调用链中的任何点恢复执行(非本地goto)。该API支持本地(同进程)和远程(跨进程)操作。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libunwind 依赖

可选

texlive-20220321 (用于latex2man)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libunwind

安装libunwind

运行以下命令安装libunwind:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check. 已知run-coredump-unwind和run-coredump-unwind-mdi两个测试会失败。

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: None

安装库: libunwind.so, libunwind-coredump.so, libunwind-generic.so, libunwind-ptrace.so, libunwind-setjmp.so, 和 libunwind-x86_64.so

安装目录: None.

9.63 liburcu-0.14.0


简介liburcu

userspace-rcu包提供了一组userspace RCU (read-copy-update)库。这些数据同步库提供读侧访问,并随内核数量线性扩展。它允许给定数据结构的多个副本同时存在,并通过监视数据结构访问来检测宽限期,在宽限期之后可以进行内存回收。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/liburcu

安装liburcu

运行以下命令安装liburcu:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/liburcu-0.14.0 &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

内容

安装程序: None

安装库: liburcu.so, liburcu-bp.so, liburcu-cds.so, liburcu-common.so, liburcu-mb.so, liburcu-memb.so, liburcu-qsbr.so, 和 liburcu-signal.so

安装目录: /usr/include/urcu 和 /usr/share/doc/liburcu-0.14.0.

9.64 libusb-1.0.26


简介libusb

libusb包包含一些应用程序用于USB设备访问的库。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libusb 依赖

可选

Doxygen-1.9.6

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libusb

安装libusb

运行以下命令安装libusb:

./configure --prefix=/usr --disable-static &&
make

如果安装了Doxygen,并且您希望构建API文档,请发出以下命令:

pushd doc                &&
  doxygen -u doxygen.cfg &&
  make docs              &&
popd

这个包没有附带测试套件。

现在,作为root用户:

make install

如果您构建了API文档,作为root用户,请使用以下命令安装它:

install -v -d -m755 /usr/share/doc/libusb-1.0.26/apidocs &&
install -v -m644    doc/api-1.0/* \
                    /usr/share/doc/libusb-1.0.26/apidocs

配置 Libusb

要访问原始USB设备(那些不被大容量存储驱动程序视为磁盘的设备),内核中必须提供适当的支持。检查内核配置:

Device Drivers --->
    [*] USB support --->                    [CONFIG_USB_SUPPORT]
        <*/M> Support for Host-side USB     [CONFIG_USB]
        (Select any USB hardware device drivers you may need on the same page)

有关设置USB设备的详细信息,请参见 the section called “USB Device Issues”.

内容

安装程序: None

安装库: libusb-1.0.so

安装目录: /usr/include/libusb-1.0 和 /usr/share/doc/libusb-1.0.26

简要描述

libusb-1.0.so 包含用于访问USB硬件的API函数。

9.65 libuv-1.44.2


简介libuv

libuv包是一个多平台支持库,专注于异步I/O。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libuv

安装libuv

运行以下命令安装libuv:

当心

如果按照Xorg-7中指定的ACLOCAL环境变量设置,下面的sh autogen.sh命令将失败。如果使用了ACLOCAL,则需要对这个包取消设置,然后对其他包重置。

sh autogen.sh                              &&
./configure --prefix=/usr --disable-static &&
make

如果要运行测试,请以非root用户运行:make check

现在,作为root用户:

make install

内容

安装程序: None

安装库: libuv.so

安装目录: /usr/include/uv

简要描述

libuv.so 包含异步I/O操作的API函数。

9.66 libxkbcommon-1.5.0


简介libxkbcommon

libxkbcommon是一个键映射编译器和支持库,它处理由XKB规范定义的键映射的简化子集。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libxkbcommon 依赖

必要

xkeyboard-config-2.38 (运行时)

推荐

libxcb-1.15, Wayland-1.21.0, 和 wayland-protocols-1.31

可选

Doxygen-1.9.6

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libxkbcommon

安装libxkbcommon

运行以下命令安装libxkbcommon:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Denable-docs=false .. &&
ninja

要测试结果,执行: ninja test.

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

-Denable-docs=false: 此开关禁用文档生成。如果安装了Doxygen-1.9.6,请拆卸它。

mv -v /usr/share/doc/libxkbcommon{,-1.5.0}: 如果您删除了-Denable-docs=false,则使用此命令将文档安装到有版本的目录中。

内容

安装程序: xkbcli

安装库: libxkbcommon.so, libxkbcommon-x11.so, 和 libxkbregistry.so

安装目录: /usr/include/xkbcommon, /usr/libexec/xkbcommon, 和 /usr/share/doc/libxkbcommon-1.5.0

简要描述

xkbcli 提供了XKB键映射的调试器和编译器。

libxkbcommon.so 包含libxkbcommon API函数。

libxkbcommon-x11.so 包含libxkbcommon X11特定的API函数。

libxkbregistry.so 包含给定规则集的可用XKB模型、布局和变体的列表。

9.67 libxml2-2.10.3


简介libxml2

libxml2包包含用于解析XML文件的库和实用程序。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

额外下载

libxml2 依赖

可选

ICU-72.1 (见下文) and Valgrind-3.20.0 (可用于测试)

注意

旧的Python2模块可以在安装libxml2.so之后构建,参见 libxml2-2.10.3 python2 module.

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libxml2

安装libxml2

运行以下命令安装libxml2:

./configure --prefix=/usr           \
            --sysconfdir=/etc       \
            --disable-static        \
            --with-history          \
            PYTHON=/usr/bin/python3 \
            --docdir=/usr/share/doc/libxml2-2.10.3 &&
make

如果您下载了测试套件,发出以下命令:

tar xf ../xmlts20130923.tar.gz
要测试结果,执行: make check > check.log. 结果的总结可以通过**grep -E ‘^Total expected’ check.log获得。如果安装了Valgrind-3.20.0,并且想要检查内存泄漏,请将check替换为check-valgrind**。

注意

测试使用http://localhost/测试外部实体的解析。如果运行测试的机器充当网站,则测试可能会挂起,具体取决于所提供文件的内容。因此,建议在测试期间关闭服务器,作为root用户:

systemctl stop httpd.service

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

--with-history: 当在shell模式下运行xmlcatalogxmllint时,此开关启用Readline支持。

PYTHON=/usr/bin/python3: 允许使用Python3而不是Python2构建libxml2模块。

--with-icu: 如果您已经构建了ICU-72.1,请添加此开关,以获得更好的unicode支持。

内容

安装程序: xml2-config, xmlcatalog, 和 xmllint

安装库: libxml2.so

安装目录: /usr/include/libxml2, /usr/lib/cmake/libxml2, /usr/share/doc/libxml2-2.10.3, 和 /usr/share/gtk-doc/html/libxml2

简要描述

xml2-config 确定应该用于编译和链接使用libxml2的程序的编译和链接标志。

xmlcatalog 用于监视和操作XML和SGML编目。

xmllint 解析XML文件并输出报告(基于选项)以检测XML编码中的错误。

libxml2.so 为程序提供解析使用XML格式的文件的函数。

9.68 libxslt-1.1.37


简介libxslt

libxslt包包含用于扩展libxml2库以支持XSLT文件的XSLT库。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libxslt 依赖

必要

libxml2-2.10.3

推荐 (在运行时)

docbook-xml-4.5docbook-xsl-nons-1.79.2

注意

虽然它不是直接的依赖项,但是许多使用libxslt的应用程序都期望有 docbook-xml-4.5docbook-xsl-nons-1.79.2

可选

libgcrypt-1.10.1

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libxslt

安装libxslt

运行以下命令安装libxslt:

./configure --prefix=/usr                          \
            --disable-static                       \
            --docdir=/usr/share/doc/libxslt-1.1.37 \
            PYTHON=/usr/bin/python3 &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: xslt-config 和 xsltproc

安装库: libexslt.so, libxslt.so 和可选的 libxsltmod.so Python 模块

安装目录: /usr/include/libexslt, /usr/include/libxslt, /usr/lib/libxslt-plugins, /usr/share/doc/libxslt-1.1.37, 和 /usr/share/doc/libxslt-python-1.1.37

简要描述

xslt-config 用于查找在第三方程序中使用libxslt库所需的预处理器、链接和编译标志。

xsltproc 用于将XSLT样式表应用于XML文档。

libexslt.so 用于提供XSLT函数的扩展。

libxslt.so 提供对libxml2库的扩展,以解析使用XSLT格式的文件。

9.69 libwacom-2.6.0


简介libwacom

libwacom包包含一个库,用于识别wacom平板电脑及其特定型号的功能。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libwacom 依赖

必要

libgudev-237

推荐

libxml2-2.10.3

可选

Doxygen-1.9.6, git-2.39.2, librsvg-2.54.5, Valgrind-3.20.0 (optional for some tests), 和 pytest-7.2.1python-libevdevpyudev

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libwacom

安装libwacom

运行以下命令安装libwacom:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dtests=disabled .. &&
ninja

要测试结果,执行: ninja test. 要运行额外的测试,请安装pytest-7.2.1, python-libevdev, 和 pyudev, 然后从上面的meson行删除”-Dtests=disabled” 选项。

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

-Dtests=disabled: 该参数禁用一些更高级的测试,因为它们需要pytest-7.2.1和其他两个超出BLFS范围的Python模块才能正常工作。

内容

安装程序: libwacom-list-devices, libwacom-list-local-devices, libwacom-show-stylus, 和 libwacom-update-db

安装库: libwacom.so

安装目录: /usr/include/libwacom-1.0 和 /usr/share/libwacom

简要描述

libwacom-list-devices 列出libwacom支持的所有平板设备。

libwacom-list-local-devices 列出连接到系统的平板设备。

libwacom-show-stylus 列出了平板电脑的手写笔id。

libwacom-update-db 根据当前的平板电脑数据文件更新系统。

libwacom.so 包含访问Wacom信息的功能。

9.70 libwpe-1.14.1


简介libwpe

libwpe包包含一个用于WPE WebKit和WPE Renderer的通用库。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libwpe 依赖

必要

libxkbcommon-1.5.0Mesa-22.3.5

可选

hotdoc

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libwpe

安装libwpe

运行以下命令安装libwpe:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

这个包没有附带测试套件。

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

内容

安装程序: None

安装库: libwpe-1.0.so

安装目录: /usr/include/wpe-1.0

简要描述

libwpe-1.0.so 包含为WPEWebKit和WPE Renderer提供通用库的函数。

9.71 libyaml-0.2.5


简介libyaml

yaml包包含一个C库,用于解析和发出yaml (yaml不是标记语言)代码。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

libyaml 依赖

可选

Doxygen-1.9.6

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libyaml

安装libyaml

运行以下命令安装libyaml:

./configure --prefix=/usr --disable-static &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: None

安装库: libyaml.so

安装目录: None

简要描述

libyaml.so 包含用于解析和发出YAML代码的API函数。

9.72 LZO-2.10


简介LZO

LZO是一个数据压缩库,适用于数据的实时解压和压缩。这意味着它更喜欢速度而不是压缩比。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/lzo

安装LZO

运行以下命令安装LZO:

./configure --prefix=/usr                    \
            --enable-shared                  \
            --disable-static                 \
            --docdir=/usr/share/doc/lzo-2.10 &&
make

要测试结果,执行: make check. 所有的支票都应该通过。现在发出make test来运行全套测试。

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: None

安装库: liblzo2.so

安装目录: /usr/include/lzo 和 /usr/share/doc/lzo

简要描述

liblzo2.so 是一个数据压缩和解压缩库。

9.73 mtdev-1.1.6


简介mtdev

mtdev包包含Multitouch协议转换库,用于将内核MT (Multitouch)事件的所有变体转换为槽型B协议。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/mtdev

安装mtdev

运行以下命令安装mtdev:

./configure --prefix=/usr --disable-static &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: mtdev-test

安装库: libmtdev.so

安装目录: None

简要描述

mtdev-test 是一个测试libmtdev的工具。

libmtdev.so 包含多点触控协议转换API函数。

9.74 Node.js-18.14.1


简介Node.js

Node.js是一个基于Chrome V8 JavaScript引擎的JavaScript运行时。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Node.js 依赖

必要

Which-2.21

推荐

c-ares-1.19.0, ICU-72.1, libuv-1.44.2, 和 nghttp2-1.52.0

可选

http-parsernpm (如果不存在npm,将安装一个内部副本)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/nodejs

安装Node.js

运行以下命令安装Node.js:

./configure --prefix=/usr          \
            --shared-cares         \
            --shared-libuv         \
            --shared-openssl       \
            --shared-nghttp2       \
            --shared-zlib          \
            --with-intl=system-icu &&
make

要测试结果,执行: make test-only. 有一项测试是失败的。

现在,作为root用户:

make install &&
ln -sf node /usr/share/doc/node-18.14.1

命令解释

--with-intl=system-icu: 使用系统版本的icu。其他值是full-icu(构建一个本地的、完整的icu库)和small-icu(构建一个本地的、最小的icu库)。

--shared-{cares,libuv,nghttp2,openssl,zlib}: 使用系统安装的库,而不是本地副本。

--without-npm: 不要构建NPM(如果你以后想构建一个单独的NPM,可以使用)。

--shared-http-parser: 使用系统安装的库,而不是本地副本。

内容

安装程序: corepack, node, npm, 和 npx

安装库: None

安装目录: /usr/include/node, /usr/lib/node_modules/{corepack,npm}, /usr/share/doc/{node,node-18.14.1}, 和 /usr/share/systemtap/tapset

简要描述

corepack 是一个实验性工具,用于帮助管理包管理器的版本。

node 是服务器端JavaScript运行时。

npm 是Node.js包管理器。

/usr/lib/node_modules/npm/ 是Node.js可执行文件和库的安装根目录。

9.75 npth-1.6


简介NPth

NPth包包含一个非常可移植的基于POSIX/ANSI-C的Unix平台库,它为事件驱动应用程序中的多个执行线程(多线程)提供非抢占式的基于优先级的调度。所有线程都在服务器应用程序的相同地址空间中运行,但是每个线程都有自己单独的程序计数器、运行时堆栈、信号掩码和errno变量。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/npth

安装NPth

运行以下命令安装NPth:

./configure --prefix=/usr &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

内容

安装程序: npth-config

安装库: libnpth.so

安装目录: None

简要描述

npth-config 是一个实用程序,用于基于NPTH库配置和构建应用程序。它可以用来查询C编译器和链接器标志,这些标志是正确编译和链接应用程序到npth库所必需的。

libnpth.so 包含新可移植线程库使用的API函数。

9.76 NSPR-4.35


简介NSPR

Netscape Portable Runtime (NSPR)为系统级和libc类函数提供了一个与平台无关的API。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/nspr

安装NSPR

运行以下命令安装NSPR:

cd nspr                                                     &&
sed -ri '/^RELEASE/s/^/#/' pr/src/misc/Makefile.in &&
sed -i 's#$(LIBRARY) ##'   config/rules.mk         &&

./configure --prefix=/usr \
            --with-mozilla \
            --with-pthreads \
            $([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&
make

测试套件是为测试nss或nspr的更改而设计的,对于检查发布版本并不是特别有用(例如,它需要在nss和nspr目录并排存在的非优化构建上运行)。详细内容请参见nss使用说明 https://wiki.linuxfromscratch.org/blfs/wiki/nss

现在,作为root用户:

make install

命令解释

sed -ri ‘/^RELEASE/s/^/#/’ pr/src/misc/Makefile.in: 这个sed禁止安装两个不需要的脚本。

sed -i ‘s#$(LIBRARY) ##’ config/rules.mk: 这个sed禁止安装静态库。

--with-mozilla: 此参数向库添加Mozilla支持(如果您想构建任何其他Mozilla产品并将它们链接到这些库,则需要此参数)。

--with-pthreads: 该参数强制使用系统pthread库。

$([ $(uname -m) = x86_64 ] && echo --enable-64bit): 在x86_64系统上需要–enable-64bit参数,以防止configure失败,声称这是一个没有pthread支持的系统。[ $(uname -m) = x86_64 ]测试确保它对32位系统没有影响。

内容

安装程序: nspr-config

安装库: libnspr4.so, libplc4.so, 和 libplds4.so

安装目录: /usr/include/nspr

简要描述

nspr-config 为使用NSPR的其他包提供编译器和链接器选项。

libnspr4.so 包含为非gui操作系统设施(如线程、线程同步、普通文件和网络I/O、间隔计时和日历时间、基本内存管理和共享库链接)提供平台独立性的功能。

libplc4.so 包含实现libnspr4提供的许多特性的函数。

libplds4.so 包含提供数据结构的函数。

9.77 PCRE-8.45


简介PCRE

PCRE包包含Perl兼容正则表达式库。这对于使用与Perl 5相同的语法和语义实现正则表达式模式匹配非常有用。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

PCRE 依赖

可选

Valgrind-3.20.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/pcre

安装PCRE

运行以下命令安装PCRE:

./configure --prefix=/usr                     \
            --docdir=/usr/share/doc/pcre-8.45 \
            --enable-unicode-properties       \
            --enable-pcre16                   \
            --enable-pcre32                   \
            --enable-pcregrep-libz            \
            --enable-pcregrep-libbz2          \
            --enable-pcretest-libreadline     \
            --disable-static                 &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--enable-unicode-properties: 此开关启用Unicode属性支持,并包含库中处理UTF-8/16/32字符串的代码。如果要构建GLib-2.74.5,则需要此开关。

--enable-pcre16: 该开关启用16位字符支持。

--enable-pcre32: 该开关启用32位字符支持。

--enable-pcregrep-libz: 这个开关增加了对pcregrep读取.gz压缩文件的支持。

--enable-pcregrep-libbz2: 这个开关增加了对pcregrep读取.bz2压缩文件的支持。

--enable-pcretest-libreadline: 这个开关增加了行编辑和历史功能,以pcretest程序。

--disable-static: 此开关防止安装库的静态版本。

--enable-jit: 此选项支持即时编译,这可以大大加快模式匹配。

内容

安装程序: pcregrep, pcretest, 和 pcre-config

安装库: libpcre.so, libpcre16.so, libpcre32.so, libpcrecpp.so 和 libpcreposix.so

安装目录: /usr/share/doc/pcre-8.45

简要描述

pcregrep 是一个能够理解Perl兼容正则表达式的grep

pcretest 可以测试Perl兼容的正则表达式。

pcre-config 在链接到PCRE库的程序的编译过程中使用。

9.78 PCRE2-10.42


简介PCRE2

PCRE2包包含新一代Perl兼容正则表达式库。这对于使用与Perl相同的语法和语义实现正则表达式模式匹配非常有用。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

PCRE2 依赖

可选

Valgrind-3.20.0libedit

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/pcre2

安装PCRE2

运行以下命令安装PCRE2:

./configure --prefix=/usr                       \
            --docdir=/usr/share/doc/pcre2-10.42 \
            --enable-unicode                    \
            --enable-jit                        \
            --enable-pcre2-16                   \
            --enable-pcre2-32                   \
            --enable-pcre2grep-libz             \
            --enable-pcre2grep-libbz2           \
            --enable-pcre2test-libreadline      \
            --disable-static                    &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--enable-unicode: 此开关启用Unicode支持,并包括在库中处理UTF-8/16/32字符串的函数。

--enable-pcre2-16: 该开关启用16位字符支持。

--enable-pcre2-32: 该开关启用32位字符支持。

--enable-pcre2grep-libz: 该开关为pcre2grep增加了读取.gz压缩文件的支持。

--enable-pcre2grep-libbz2: 这个开关增加了读取.bz2压缩文件到pcre2grep的支持。

--enable-pcre2test-libreadline: 这个开关为pcre2test程序增加了行编辑和历史特性。

--disable-static: 此开关防止安装库的静态版本。

--enable-jit: 此选项支持即时编译,这可以大大加快模式匹配。

内容

安装程序: pcre2-config, pcre2grep, 和 pcre2test.

安装库: libpcre2-8.so, libpcre2-16.so, libpcre2-32.so, 和 libpcre2-posix.so

安装目录: /usr/share/doc/pcre2-10.42

简要描述

pcre2grep 是grep的一个版本,它可以理解Perl兼容的正则表达式。

pcre2test 可以测试Perl兼容的正则表达式。

pcre2-config 输出编译信息到链接到PCRE2库的程序。

9.79 Popt-1.19


简介Popt

popt包包含一些程序用来解析命令行选项的popt库。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

popt 依赖

可选

Doxygen-1.9.6 (用于生成文档)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/popt

安装Popt

运行以下命令安装popt:

./configure --prefix=/usr --disable-static &&
make

如果你已经安装了Doxygen-1.9.6并希望构建API文档,执行:

sed -i 's@\./@src/@' Doxyfile &&
doxygen

要测试结果,执行: make check.

现在,作为root用户:

make install

如果你构建了API文档,使用root用户发出的以下命令安装它:

install -v -m755 -d /usr/share/doc/popt-1.19 &&
install -v -m644 doxygen/html/* /usr/share/doc/popt-1.19

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: None

安装库: libpopt.so

安装目录: /usr/share/doc/popt-1.19

简要描述

libpopt.so 用于解析命令行选项。

9.80 Pth-2.0.7


简介Pth

Pth包包含一个非常可移植的基于POSIX/ANSI-C的Unix平台库,它为事件驱动的应用程序中的多个执行线程(多线程)提供非抢占式的基于优先级的调度。所有线程都在服务器应用程序的相同地址空间中运行,但是每个线程都有自己单独的程序计数器、运行时堆栈、信号掩码和errno变量。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Pth 依赖

可选

GCC-12.2.0 (用于gfortran) and libnsl-2.0.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/pth

安装Pth

当心

不要在下面的configure命令中添加--enable-pthread参数,否则您将覆盖LFS中由Glibc包安装的pthread库和接口头。

运行以下命令安装Pth:

sed -i 's#$(LOBJS): Makefile#$(LOBJS): pth_p.h Makefile#' Makefile.in &&
./configure --prefix=/usr           \
            --disable-static        \
            --mandir=/usr/share/man &&
make

要测试结果,执行: make test.

现在,作为root用户:

make install &&
install -v -m755 -d /usr/share/doc/pth-2.0.7 &&
install -v -m644    README PORTING SUPPORT TESTS \
                    /usr/share/doc/pth-2.0.7

命令解释

sed -i ‘s#$(LOBJS) …: 这个sed修复了Makefile中的竞争条件。它允许在多个作业中运行make(例如,make -j4)。

--disable-static: 此开关防止安装库的静态版本。

--mandir=/usr/share/man: 这个开关将手册页放在/usr/share/man而不是/usr/man

内容

安装程序: pth-config

安装库: libpth.so

安装目录: /usr/share/doc/pth-2.0.7

简要描述

pth-config 是一个实用程序,用于基于pth(3)库配置和构建应用程序。它可以用来查询C编译器和链接器标志,这些标志是正确编译和链接应用程序到pth(3)库所必需的。

libpth.so 包含GNU可移植线程库使用的API函数。

9.81 Qca-2.3.5


简介Qca

Qca的目标是使用Qt数据类型和约定,提供一个简单、跨平台的加密API。Qca使用称为提供者的插件将API从实现中分离出来。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Qca 依赖

必要

make-ca-1.12, CMake-3.25.2, Qt-5.15.8, 和 Which-2.21

可选

Cyrus SASL-2.1.28, GnuPG-2.4.0, libgcrypt-1.10.1, libgpg-error-1.46, nss-3.88.1, NSPR-4.35, p11-kit-0.24.1, Doxygen-1.9.6, Which-2.21, 和 Botan

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/qca

安装Qca

修复CA证书的位置:

sed -i 's@cert.pem@certs/ca-bundle.crt@' CMakeLists.txt

运行以下命令安装Qca:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=$QT5DIR            \
      -DCMAKE_BUILD_TYPE=Release                \
      -DQCA_MAN_INSTALL_DIR:PATH=/usr/share/man \
      .. &&
make

要测试结果,执行 make test.

现在,作为root用户:

make install

命令解释

-DCMAKE_BUILD_TYPE=Release: 此开关用于应用更高级别的编译器优化。

-DQCA_MAN_INSTALL_DIR:PATH=/usr/share/man: 在正常位置安装qca手册页。

内容

安装程序: mozcerts-qt5 和 qcatool-qt5

安装库: libqca-qt5.so, libqca-cyrus-sasl.so, libqca-gcrypt.so, libqca-gnupg.so, libqca-logger.so, libqca-nss.so, libqca-ossl.so, 和 libqca-softstore.so

安装目录: $QT5DIR/include/Qca-qt5, $QT5DIR/lib/cmake/Qca-qt5, 和 $QT5DIR/lib/qca-qt5

简要描述

mozcerts-qt5 是一个命令行工具,用于将certdata.txt转换为outfile.pem文件。

qcatool-qt5 是一个命令行工具,用于使用Qca执行各种加密操作。

libqca-qt5.so 是Qt加密体系结构(Qca)库。

9.82 Talloc-2.4.0


简介Talloc

Talloc提供了一个带有析构函数的分层引用计数内存池系统。它是Samba中使用的核心内存分配器。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Talloc 依赖

可选

docbook-xml-4.5, docbook-xsl-nons-1.79.2 and libxslt-1.1.37 (生成man页), GDB-13.1, git-2.39.2, libnsl-2.0.0, libtirpc-1.3.3, Valgrind-3.20.0, 和 xfsprogs-6.1.1

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/talloc

安装Talloc

运行以下命令安装Talloc:

./configure --prefix=/usr &&
make

要查看结果,请执行命令 make check.

现在,作为root用户:

make install

内容

安装程序: None

安装库: libpytalloc-util.cpython-311--linux-gnu.so, libtalloc.so, 和 talloc.cpython-311--linux-gnu.so (Python-3 模块)

安装目录: None

简要描述

libtalloc.so 包含Glibc malloc函数的替换。

9.83 telepathy-glib-0.24.2


简介Telepathy GLib

心灵感应GLib包含一个库,供基于GLib的心灵感应组件使用。心灵感应是一个用于统一实时通信的D-Bus框架,包括即时消息、语音通话和视频通话。它抽象协议之间的差异,为应用程序提供统一的接口。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Telepathy GLib 依赖

必要

dbus-glib-0.112libxslt-1.1.37

推荐

gobject-introspection-1.74.0, 和 Vala-0.56.4

可选

GTK-Doc-1.33.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/telepathy-glib

安装Telepathy Glib

如果您打算运行测试,其中一个测试默认调用/usr/bin/python,如果它不存在则会失败,导致第二批测试无法运行-与可以从环境中覆盖的其他测试不同。用下面的命令修复它:

sed -i 's%/usr/bin/python%&3%' tests/all-errors-documented.py

运行以下命令安装Telepathy GLib:

PYTHON=/usr/bin/python3 ./configure --prefix=/usr          \
                                    --enable-vala-bindings \
                                    --disable-static       &&
make

要测试结果,执行: make check.

现在,作为root用户:

make install

命令解释

--enable-vala-bindings: 此开关支持构建Vala绑定。如果你没有安装Vala-0.56.4,请删除。

--disable-static: 此开关防止安装库的静态版本。

--enable-gtk-doc: 如果安装了GTK-Doc,并且希望重新构建和安装API文档,则使用此参数。

内容

安装程序: None

安装库: libtelepathy-glib.so

安装目录: /usr/include/telepathy-1.0 和 /usr/share/gtk-doc/html/telepathy-glib

简要描述

libtelepathy-glib.so 包含心灵感应GLib API函数。

9.84 Uchardet-0.0.8


简介Uchardet

Uchardet包包含一个编码检测库,它接受未知字符编码的字节序列,并尝试确定文本的编码。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Uchardet 依赖

必要

CMake-3.25.2

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/uchardet

安装Uchardet

运行以下命令安装Uchardet:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DBUILD_STATIC=OFF          \
      -Wno-dev ..                 &&
make

要测试结果,执行: make test.

现在,作为root用户:

make install

命令解释

-DBUILD_STATIC=OFF: 此开关禁用构建库的静态版本。

内容

安装程序: uchardet

安装库: libuchardet.so

安装目录: /usr/include/uchardet

简要描述

uchardet 检测文件内部使用的字符集。

libuchardet.so 提供了一个用于检测文件中文本编码的API。

9.85 Umockdev-0.17.16


简介Umockdev

Umockdev包包含一个框架,允许开发人员模拟设备用于单元测试。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Umockdev 依赖

必要

libgudev-237, libpcap-1.10.3, 和 Vala-0.56.4

可选

GTK-Doc-1.33.2libgphoto2 (可选的测试)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/umockdev

安装Umockdev

运行以下命令安装Umockdev:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

要测试结果,执行: PATH=$PATH:/usr/sbin ninja test. 如果您使用The Bash Shell Startup Files中的启动脚本,则需要添加PATH,因为一些测试需要运行udevadm。一个测试需要在X session中运行。

现在,作为root用户:

ninja install

命令解释

-Dgtk_doc=true: 如果您已经安装了GTK-Doc-1.33.2并希望重新构建和安装API文档,请使用此开关。

内容

安装程序: umockdev-record, umockdev-run, 和 umockdev-wrapper

安装库: libumockdev-preload.so 和 libumockdev.so

安装目录: /usr/include/umockdev-1.0

简要描述

umockdev-record 从sysfs/udev记录Linux设备及其祖先,或者记录设备的ioctls。

umockdev-run 在umockdev测试平台下运行程序。

umockdev-wrapper 将程序封装在libumockdev-preload.so.0周围。通过LD_PRELOAD。

libumockdev.so 提供允许模拟硬件设备进行单元测试的API函数。

9.86 Wayland-1.21.0


简介Wayland

Wayland是一个项目,它定义了一个协议,使合成器可以与其客户端进行通信,同时也定义了该协议的库实现。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Wayland 依赖

必要

libxml2-2.10.3

可选

Doxygen-1.9.6, Graphviz-7.1.0 and xmlto-0.0.28 (to build the API documentation) and docbook-xml-4.5, docbook-xsl-nons-1.79.2libxslt-1.1.37 (来构建手册页)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/wayland

安装Wayland

运行以下命令安装Wayland:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Ddocumentation=false &&
ninja

要测试结果,执行: env -u XDG_RUNTIME_DIR ninja test.

现在,作为root用户:

ninja install

命令解释

-Ddocumentation=false: 此开关用于禁用API文档的构建。如果安装了可选依赖项,请删除它。

内容

安装程序: wayland-scanner

安装库: libwayland-client.so, libwayland-cursor.so, libwayland-egl.so, 和 libwayland-server.so

安装目录: /usr/share/wayland

简要描述

wayland-scanner 是在wayland-client-protocol.h和wayland-server-protocol.h中生成代理方法的工具。

libwayland-client.so 包含编写Wayland应用程序的API函数。

libwayland-cursor.so 包含用于在Wayland应用程序中管理游标的API函数。

libwayland-egl.so 包含在Wayland应用程序中处理OpenGL调用的API函数。

libwayland-server.so 包含编写Wayland排字器的API函数。

9.87 Wayland-Protocols-1.31


简介Wayland-Protocols

Wayland-Protocols包包含了额外的Wayland协议,这些协议添加了Wayland核心协议之外的功能。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Wayland-protocols 依赖

必要

Wayland-1.21.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/wayland-protocols

安装Wayland-protocols

运行以下命令安装Wayland-protocols:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release &&
ninja

要测试结果,执行: ninja test.

现在,作为root用户:

ninja install

内容

安装程序: None

安装库: None

安装目录: /usr/share/wayland-protocols.

9.88 wpebackend-fdo-1.14.0


简介wpebackend-fdo

wpebackend-fdo包包含了WPE WebKit和WPE渲染器的Freedesktop.org后端。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

wpebackend-fdo 依赖

必要

libepoxy-1.5.10, libwpe-1.14.1, 和 wayland-protocols-1.31

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/wpebackend-fdo

安装wpebackend-fdo

运行以下命令安装wpebackend-fdo:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release ..
ninja

现在,作为root用户:

ninja install

命令解释

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

内容

安装程序: None

安装库: libWPEBackend-fdo-1.0.so

安装目录: /usr/include/wpe-fdo-1.0

简要描述

libWPEBackend-fdo-1.0.so 包含为WPE WebKit和WPE渲染器提供freedesktop.org后端的函数。

9.89 wv-1.2.9


简介wv

wv包包含从MS Word文档中读取信息的工具。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

wv 依赖

必要

libgsf-1.14.50libpng-1.6.39

可选

libwmf

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/wv

安装wv

运行以下命令安装wv:

./configure --prefix=/usr --disable-static &&
make

这个包没有测试套件。

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

内容

安装程序: wvSummary 和其他几个已弃用的 wv*程序,支持abiword: 请参见 https://wvware.sourceforge.net/

安装库: libwv-1.2.so

安装目录: /usr/share/wv

简要描述

wvSummary 显示来自MS Word文档的摘要信息。

libwv-1.2.so 提供访问MS Word文档的功能。

9.90 Xapian-1.4.22


简介xapian

Xapian是一个开源搜索引擎库。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Xapian 依赖

可选

Valgrind-3.20.0 (用于tests)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/xapian

安装Xapian

运行以下命令安装Xapian:

./configure --prefix=/usr    \
            --disable-static \
            --docdir=/usr/share/doc/xapian-core-1.4.22 &&
make

要运行测试套件,执行: make check.

现在,作为root用户:

make install

内容

安装程序: copydatabase, quest, simpleexpand, simpleindex, simplesearch, xapian-check, xapian-compact, xapian-config, xapian-delve, xapian-metadata, xapian-pos, xapian-progsrv, xapian-replicate, xapian-replicate-server 和 xapian-tcpsrv

安装库: libxapian.so

安装目录: /usr/include/xapian, /usr/lib/cmake/xapian, /usr/share/doc/xapian-core-1.4.22, 和 /usr/share/xapian-core

简要描述

copydatabase 执行一个或多个Xapian数据库的逐文档复制。

quest 是一个命令行工具,用于搜索数据库。

simpleexpand 是一个演示查询扩展的简单示例程序。

simpleindex 将文本文件的每个段落索引为Xapian文档。

simplesearch 是一个简单的命令行搜索工具。

xapian-check 检查数据库或表的一致性。

xapian-compact 压缩一个数据库,或合并并压缩多个数据库。

xapian-config 报告关于已安装的xapian的信息。

xapian-delve 检查Xapian数据库的内容。

xapian-metadata 读写用户元数据。

xapian-pos 检查flint表的内容以进行开发或调试。

xapian-progsrv 是与ProgClient一起使用的远程服务器。

xapian-replicate 将数据库从主服务器复制到本地副本。

xapian-replicate-server 服务来自客户端的数据库复制请求。

xapian-tcpsrv 是TCP守护进程,用于Xapian的远程后端。

上一页      主目录      下一页