17. Networking Libraries
这些应用程序是本书中其他应用程序的支持库。你不太可能只安装这些库,你通常会发现本章会引用你来满足其他应用程序的依赖。
17.1 c-ares-1.19.0
简介c-ares
c-ares是一个用于异步DNS请求的C库。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://c-ares.haxx.se/download/c-ares-1.19.0.tar.gz
-
下载 MD5 校验和: 2668790bc92603e292d0fbcb25ded39c
-
下载大小: 1.5 MB
-
预计所需磁盘空间: 11 MB
-
预计构建时间: 小于 0.1 SBU
c-ares依赖
必要
安装c-ares
通过运行以下命令安装c-ares:
mkdir build &&
cd build &&
cmake -
这个包不包括测试套件。
现在,作为root用户:
make install
内容
安装程序: acountry, adig, 和 ahost
安装库: libcares.so
安装目录: None
简短描述
acountry 打印IPv4地址或主机所在的国家。
adig 从DNS服务器查询信息。
ahost 打印与主机名或IP地址相关联的A或AAAA记录。
libcares.so 是一个用于异步DNS请求的C库。
17.2 cURL-7.88.1
简介cURL
cURL包包含一个实用程序和一个库,用于将具有URL语法的文件传输到以下任何协议:DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTSP, SMB, SMBS, SMTP, SMPTS, TELNET, 和TFTP。它的下载和上传文件的功能可以整合到其他程序中,以支持流媒体等功能。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://curl.se/download/curl-7.88.1.tar.xz
-
下载 MD5 校验和: 8bea0c58428578f397471fe209fad6ab
-
下载大小: 2.5 MB
-
预计所需磁盘空间: 150 MB (增加23 MB 用于测试)
-
预计构建时间: 0.2 SBU (使用并行数=4; 增加16 SBU用于测试)
cURL依赖
推荐
make-ca-1.12 (运行时)
可选
Brotli-1.0.9, c-ares-1.19.0, GnuTLS-3.8.0, libidn2-2.3.4, libpsl-0.21.2, libssh2-1.10.0, MIT Kerberos V5-1.20.1, nghttp2-1.52.0, OpenLDAP-2.6.4, Samba-4.17.5, gsasl, impacket, libmetalink, librtmp, ngtcp2, quiche, 和 SPNEGO
可选,如果运行测试套件
stunnel-5.68 (用于HTTPS和FTPS测试) 和 Valgrind-3.20.0 (这将降低测试速度,并可能导致失败)。
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/curl
安装cURL
通过运行以下命令安装cURL:
./configure --prefix=/usr \
--disable-static \
--with-openssl \
--enable-threaded-resolver \
--with-ca-path=/etc/ssl/certs &&
make
要运行测试套件,请执行:make test。如果安装了Samba,则相关测试将输出重复多次的消息,抱怨缺少Python模块impacket(不是BLFS的一部分)并被跳过。
现在,作为root用户:
make install &&
rm -rf docs/examples/.deps &&
find docs \( -name Makefile\* -o -name \*.1 -o -name \*.3 \) -exec rm {} \; &&
install -v -d -m755 /usr/share/doc/curl-7.88.1 &&
cp -v -R docs/* /usr/share/doc/curl-7.88.1
对新安装的curl的简单测试:curl –trace-ascii debugdump.txt https://www.example.com/和curl –trace-ascii d.txt –trace-time https://example.com/。检查本地创建的跟踪文件debugdump.txt和d.txt,它们包含下载文件的版本信息等。一个文件记录了每个操作的时间。
命令解释
--disable-static: 这个开关阻止安装静态版本的库。
--enable-threaded-resolver: 这个开关启用了cURL内置的线程DNS解析器。
--with-ca-path=/etc/ssl/certs: 此开关设置BLFS证书颁发机构存储区的位置。
--with-openssl: SSL/TLS实现选择“OpenSSL”。现在看来,这似乎是强制性的。
--with-gssapi: 此参数使libcurl支持Kerberos 5。
--without-ssl --with-gnutls: 使用GnuTLS来构建,而不是使用OpenSSL来构建SSL/TLS。
--with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt: 如果使用GnuTLS而不是OpenSSL构建SSL/TLS,请使用这个选项,而不是--with-ca-path。
--with-libssh2: 这个参数增加了cURL对SSH的支持。默认是禁用的。
--enable-ares: 通过c-ares库增加对DNS解析的支持。它覆盖了--enable-threaded-resolver,并且没有被编辑器广泛测试。
find docs … -exec rm {} \;: 该命令从文档目录中删除Makefiles和man文件,否则将通过以下命令安装。
内容
安装程序: curl 和 curl-config
安装库: libcurl.so
安装目录: /usr/include/curl 和 /usr/share/doc/curl-7.88.1
简短描述
curl 是一个用URL语法传输文件的命令行工具。
curl-config 打印有关上次编译的信息,如链接到的库和前缀设置。
libcurl.so 提供curl和其他程序所需的API函数。
17.3 GeoClue-2.7.0
简介GeoClue
GeoClue是建立在D-Bus消息系统之上的模块化地理信息服务。GeoClue项目的目标是使创建位置感知应用程序尽可能简单。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/2.7.0/geoclue-2.7.0.tar.bz2
-
下载 MD5 校验和: 8226cc9d4b2750b6ebdfd59e7815bf2a
-
下载大小: 104 KB
-
预计所需磁盘空间: 6.8 MB
-
预计构建时间: 0.2 SBU
GeoClue依赖
必要
JSON-GLib-1.6.6 和 libsoup-3.2.2
推荐
ModemManager-1.18.12, Vala-0.56.4, 和 Avahi-0.8
可选
GTK-Doc-1.33.2 和 libnotify-0.8.1
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/geoclue2
安装GeoClue
通过运行以下命令安装GeoClue:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release -Dgtk-doc=false .. &&
ninja
这个包没有附带测试套件。
现在,作为root用户:
ninja install
命令解释
--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。
-D3g-source=false: 此开关禁用3G后端。如果还没有安装ModemManager包,请使用它。
-Dmodem-gps-source=false: 此开关禁用调制解调器GPS后端。如果还没有安装ModemManager包,请使用它。
-Dcdma-source=false: 此开关禁用CDMA源后端。如果还没有安装ModemManager包,请使用它。
-Dnmea-source=false: 该开关禁用NMEA源。如果你还没有安装Avahi包,请使用它。
-Ddemo-agent=false: 该开关禁用演示。如果你还没有安装libnotify包,请使用它。
内容
安装程序: None
安装库: libgeoclue-2.so
安装目录: /etc/geoclue, /usr/include/libgeoclue-2.0, /usr/libexec/geoclue-2.0, 和 /usr/share/gtk-doc/html/{geoclue,libgeoclue}.
17.4 glib-networking-2.74.0
简介GLib Networking
GLib网络包包含GLib的网络相关gio模块。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://download.gnome.org/sources/glib-networking/2.74/glib-networking-2.74.0.tar.xz
-
下载 MD5 校验和: 7fc6ca153af0833fdf5c65044a3f7c42
-
下载大小: 272 KB
-
预计所需磁盘空间: 8.9 MB (有测试)
-
预计构建时间: 0.1 SBU (有测试)
GLib Networking依赖
必要
推荐
gsettings-desktop-schemas-43.0 (对于使用此包的应用程序,请使用GNOME中的代理服务器设置) 和 make-ca-1.12
可选
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/glib-networking
安装GLib Networking
通过运行以下命令安装GLib Networking:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release &&
ninja
要测试结果,请执行以下命令: ninja test. 一个名为connection-gnutls-tls1.2的测试在GnuTLS 3.7.8或更高版本上失败了。
现在,作为root用户:
ninja install
命令解释
--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。
内容
安装程序: None
安装库: libgioenvironmentproxy.so, libgiognomeproxy.so, 和 libgiognutls.so (GIO模块安装在/usr/lib/gio/modules)
安装目录: None
17.5 kdsoap-2.1.1
简介kdsoap
kdsoap是基于qt的客户端和服务器端SOAP组件。它可以用于为web服务创建客户机应用程序,还提供了创建web服务的方法,而不需要任何其他组件(如专用web服务器)。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://github.com/KDAB/KDSoap/releases/download/kdsoap-2.1.1/kdsoap-2.1.1.tar.gz
-
下载 MD5 校验和: 7dff6d770e1942997d986207e3107585
-
下载大小: 928 KB
-
预计所需磁盘空间: 25 MB
-
预计构建时间: 0.4 SBU (使用并行数=4)
kdsoap依赖
必要
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/kdsoap
安装kdsoap
通过运行以下命令安装kdsoap:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_DOCDIR=/usr/share/doc/kdsoap-2.1.1 \
.. &&
make
该软件包没有附带测试套件。
现在,作为root用户:
make install
内容
安装程序: kdwsdl2cpp
安装库: libkdsoap.so 和 libkdsoap-server.so
安装目录: /usr/lib/cmake/KDSoap, /usr/share/doc/kdsoap-2.1.1, /usr/include/KDSoapClient. 和 /usr/include/KDSoapServer.
17.6 ldns-1.8.3
简介ldns
ldns是一个快速的DNS库,其目标是简化DNS编程,并允许开发人员轻松创建符合当前RFCs和互联网草案的软件。这个包还包括drill工具。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://www.nlnetlabs.nl/downloads/ldns/ldns-1.8.3.tar.gz
-
下载 MD5 校验和: 429b93dacb2d6ecc5ed63788b14c38e6
-
下载大小: 1.2 MB
-
预计所需磁盘空间: 30 MB (有文档)
-
预计构建时间: 0.2 SBU (有文档)
ldns依赖
可选
make-ca-1.12 和 libpcap-1.10.3 (用于实例程序), Python-2.7.18 和 SWIG-4.1.1 (用于Python绑定), 和 Doxygen-1.9.6 (用于html文档)
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/ldns
安装ldns
通过运行以下命令安装ldns:
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-static \
--with-drill &&
make
如果你已经安装了Doxygen-1.9.6并希望构建html文档,运行以下命令:
make doc
这个包没有一个可用的测试套件。
现在,作为root用户:
make install
如果你构建了html文档,以root用户的身份运行以下命令来安装它:
install -v -m755 -d /usr/share/doc/ldns-1.8.3 &&
install -v -m644 doc/html/* /usr/share/doc/ldns-1.8.3
命令解释
--disable-static: 这个开关阻止安装静态版本的库。
--with-drill: 此选项启用构建drill工具(用于从DNS(SEC)获取调试信息)
--disable-dane-ta-usage: 此选项禁用DANE-TA(基于dns的命名实体身份验证)支持。只有在没有安装OpenSSL-1.1.0或更高版本时才需要安装。
--with-examples: 此选项允许构建示例程序。
--with-pyldns: 此选项启用构建Python绑定。
内容
安装程序: drill 和 ldns-config
安装库: libldns.so 和 /usr/lib/python2.7/site-packages/_ldns.so
安装目录: /usr/include/ldns 和 /usr/share/doc/ldns-1.8.3
简短描述
drill 是一个类似BIND Utilities-9.18.12中的dig工具,用于从DNS中获取各种信息。
ldns-config 显示LDNS使用的编译器和链接标志。
libldns.so 为程序提供ldns API函数。
17.7 libevent-2.1.12
简介libevent
libevent是一个异步事件通知软件库。libevent API提供了一种机制,可以在文件描述符上发生特定事件或达到超时之后执行回调函数。此外,libevent还支持由于信号或定期超时而产生的回调。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 MD5 校验和: b5333f021f880fe76490d8a799cd79f4
-
下载大小: 1.0 MB
-
预计所需磁盘空间: 20 MB (添加4 MB用于测试,4 MB用于API文档)
-
预计构建时间: 0.3 SBU (增加11 SBU 用于测试)
libevent依赖
可选
Doxygen-1.9.6 (用于API文档)
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libevent
安装libevent
首先,修复一个阻止event_rpcgen.py正常工作的问题:
sed -i 's/python/&3/' event_rpcgen.py
通过运行以下命令安装libevent:
./configure --prefix=/usr --disable-static &&
make
如果你已经安装了Doxygen-1.9.6并希望构建API文档,请执行:
doxygen Doxyfile
要测试结果,请执行以下命令: make verify. 每个套件中与regress_ssl.c 和 regress_http.c相关的6个测试由于与OpenSSL-3不兼容而失败。
现在,作为root用户:
make install
如果你构建了API文档,以root用户的身份执行以下命令来安装它:
install -v -m755 -d /usr/share/doc/libevent-2.1.12/api &&
cp -v -R doxygen/html/* \
/usr/share/doc/libevent-2.1.12/api
命令解释
--disable-static: 这个开关阻止安装静态版本的库。
内容
安装程序: event_rpcgen.py
安装库: libevent_core.so, libevent_extra.so, libevent_openssl.so, libevent_pthreads.so 和 libevent.so
安装目录: /usr/include/event2 和 /usr/share/doc/libevent-2.1.12.
17.8 libmnl-1.0.5
简介libmnl
libmnl库为Netlink开发人员提供了一个简约的用户空间库。在Netlink首部和tlv的解析、验证和构造过程中,有很多重复的、容易出错的常见任务。这个库旨在提供简单的辅助函数,允许你重用代码,避免重新造轮子。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://netfilter.org/projects/libmnl/files/libmnl-1.0.5.tar.bz2
-
下载 MD5 校验和: 0bbb70573119ec5d49435114583e7a49
-
下载大小: 308 KB
-
预计所需磁盘空间: 2.9 MB
-
预计构建时间: 小于 0.1 SBU
libnma依赖
可选
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libmnl
安装libmnl
通过运行以下命令安装libmnl:
./configure --prefix=/usr &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install
内容
安装库: libmnl.so
简短描述
libmnl.so 提供用于解析、验证、构造Netlink首部和tlv的函数。
17.9 libnl-3.7.0
简介libnl
libnl套件是一组为基于netlink协议的Linux内核接口提供api的库。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://github.com/thom311/libnl/releases/download/libnl3_7_0/libnl-3.7.0.tar.gz
-
下载 MD5 校验和: b381405afd14e466e35d29a112480333
-
下载大小: 980 KB
-
预计所需磁盘空间: 31 MB (有API文档)
-
预计构建时间: 0.4 SBU (有API文档)
可选下载
-
下载 (HTTP): https://github.com/thom311/libnl/releases/download/libnl3_7_0/libnl-doc-3.7.0.tar.gz
-
下载 MD5 校验和: 15f55a421a16ff4084c4a1af085c19b8
-
下载大小: 13 MB
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libnl
安装libnl
通过运行以下命令安装libnl:
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-static &&
make
这个包没有一个可用的测试套件。
现在,作为root用户:
make install
如果你想安装API文档,以root用户的身份:
mkdir -vp /usr/share/doc/libnl-3.7.0 &&
tar -xf ../libnl-doc-3.7.0.tar.gz --strip-components=1 --no-same-owner \
-C /usr/share/doc/libnl-3.7.0
命令解释
--disable-static: 这个开关阻止安装静态版本的库。
--disable-cli: 如果你不想安装包提供的cli工具,请使用此参数。
内容
安装程序: genl-ctrl-list, idiag-socket-details, nl-class-add, nl-class-delete, nl-classid-lookup, nl-class-list, nl-cls-add, nl-cls-delete, nl-cls-list, nl-link-list, nl-pktloc-lookup, nl-qdisc-add, nl-qdisc-delete, nl-qdisc-list, 以及其他48个以nl-和nf-为前缀的辅助程序
安装库: libnl-3.so, libnl-cli-3.so, libnl-genl-3.so, libnl-idiag-3.so, libnl-nf-3.so, libnl-route-3.so, libnl-xfrm-3.so, 以及/usr/lib/libnl/cli树下的cli模块
安装目录: /etc/libnl, /usr/include/libnl3, /usr/lib/libnl, 和 /usr/share/doc/libnl-3.7.0
简短描述
genl-ctrl-list 查询内核中的通用Netlink控制器,打印出所有注册的通用Netlink族的列表,包括已注册接口的版本。
nl-class-add 添加、更新或替换Traffic类。
nl-class-delete 删除Traffic类。
nl-classid-lookup 用于将qdisc/class名解析为分类值,反之亦然。
nl-class-list 列出Traffic类。
nl-cls-add 添加一个分类器。
nl-cls-delete 删除一个分类器。
nl-cls-list 列出分类器.
nl-link-list 转储链接属性。
nl-pktloc-lookup 允许查找包位置定义。
nl-qdisc-add 在内核中添加排队规则(qdisc)。
nl-qdisc-delete 删除内核中的排队规则(qdisc)。
nl-qdisc-list 列出内核中的排队规则(qdiscs)。
libnl*-3.so 这些库包含了在Linux内核中用于访问Netlink接口的API函数。
17.10 libnma-1.10.6
简介libnma
libnma包包含NetworkManager GUI函数的实现。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://download.gnome.org/sources/libnma/1.10/libnma-1.10.6.tar.xz
-
下载 (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/libnma/1.10/libnma-1.10.6.tar.xz
-
下载 MD5 校验和: 71c7ce674fea1fae8f1368a7fcb6ff43
-
下载大小: 688 KB
-
预计所需磁盘空间: 15 MB
-
预计构建时间: 0.1 SBU (使用并行数=4; 有测试)
libnma依赖
必要
Gcr-3.41.1, GTK+-3.24.36, ISO Codes-4.12.0, 和 NetworkManager-1.42.0
推荐
可选
mobile-broadband-provider-info
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libnma
安装libnma
通过运行以下命令安装libnma:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dgtk_doc=false \
-Dlibnma_gtk4=true \
-Dmobile_broadband_provider_info=false .. &&
ninja
要测试结果,请执行以下命令: ninja test.
现在,作为root用户:
ninja install
命令解释
--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。
-Dgtk_doc=false: 此参数禁用使用gtk-doc生成API文档。如果你已经安装了GTK-Doc-1.33.2并希望生成API文档,请忽略此开关。
-Dlibnma_gtk4=true: 只有最新版本gnome-control-center-43.4.1才需要这个参数。
-Dmobile_broadband_provider_info=false: 该开关禁用WWAN支持,因为移动宽带提供商信息不在BLFS中。如果您已经安装并希望启用WWAN支持,请忽略此开关。
内容
安装程序: None
安装库: libnma.so 和 libnma-gtk4.so
安装目录: /usr/include/libnma
简短描述
libnma.so 包含NetworkManager的GUI库。
libnma-gtk4.so 包含NetworkManager GUI库的GTK-4版本。
17.11 libnsl-2.0.0
简介libnsl
libnsl包包含用于NIS(YP)的公共客户端接口。它取代了以前在glibc中的NIS库。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://github.com/thkukuk/libnsl/releases/download/v2.0.0/libnsl-2.0.0.tar.xz
-
下载 MD5 校验和: 1e8c0615071ea13202452304de1eaab9
-
下载大小: 280 KB
-
预计所需磁盘空间: 3.2 MB
-
预计构建时间: 小于 0.1 SBU
libnsl 依赖
必要
rpcsvc-proto-1.4.3 和 libtirpc-1.3.3
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libnsl
安装libnsl
通过运行以下命令安装libnsl:
./configure --sysconfdir=/etc --disable-static &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install
命令解释
--disable-static: 这个开关阻止安装静态版本的库。
内容
安装程序: None
安装库: libnsl.so
安装目录: None
简短描述
libnsl.so 提供其他程序所需的NIS (YP) API功能。
17.12 libpcap-1.10.3
简介libpcap
Libpcap提供了用于用户级数据包捕获的函数,用于底层网络监控。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://www.tcpdump.org/release/libpcap-1.10.3.tar.gz
-
下载 MD5 校验和: c42fde2eb75a5075f19116f8c9768573
-
下载大小: 932 KB
-
预计所需磁盘空间: 11 MB
-
预计构建时间: 小于 0.1 SBU
libpcap 依赖
可选
BlueZ-5.66, libnl-3.7.0, libusb-1.0.26, DAG的软件分发, 和 Septel 被动网络监控卡的范围。
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libpcap
安装libpcap
通过运行以下命令安装libpcap:
./configure --prefix=/usr &&
make
这个包没有附带测试套件。
如果你想禁用静态库的安装,可以使用以下sed:
sed -i '/INSTALL_DATA.*libpcap.a\|RANLIB.*libpcap.a/ s/^/#/' Makefile
现在,作为root用户:
make install
内容
安装程序: pcap-config
安装库: libpcap.so
安装目录: /usr/include/pcap
简短描述
pcap-config 提供libpcap的配置信息。
libpcap.{a,so} 是用于用户级数据包捕获的库。
17.13 libpsl-0.21.2
简介libpsl
libpsl包提供了一个库,用于从公共后缀列表(PSL)中访问和解析信息。PSL是标准域名后缀之外的一组域名,例如.com。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://github.com/rockdaboot/libpsl/releases/download/0.21.2/libpsl-0.21.2.tar.gz
-
下载 MD5 校验和: 2864d3eb744b378d68f5c4da25603459
-
下载大小: 7.2 MB
-
预计所需磁盘空间: 51 MB
-
预计构建时间: 小于 0.1 SBU (包含测试)
libpsl依赖
必要
可选
GTK-Doc-1.33.2 (用于文档) 和 Valgrind-3.20.0 (用于测试)
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libpsl
安装libpsl
通过运行以下命令安装libpsl:
sed -i 's/env python/&3/' src/psl-make-dafsa &&
./configure --prefix=/usr --disable-static PYTHON=python3 &&
make
要测试结果,请执行以下命令: make check.
现在,作为root用户:
make install
命令解释
sed -i …: 这个命令强制在实用程序中使用Python 3。
内容
安装程序: psl
安装库: libpsl.so
安装目录: None
简短描述
psl 查询公共后缀列表。
libpsl.so 包含用于访问公共后缀列表的库。
17.14 libndp-1.8
简介libndp
libndp包对IPv6邻居发现协议进行了封装。它还提供了一个名为ndptool的工具来发送和接收NDP消息。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): http://libndp.org/files/libndp-1.8.tar.gz
-
下载 MD5 校验和: c7e775fd5a9d676e8cba9c3732c4df93
-
下载大小: 360 KB
-
预计所需磁盘空间: 2.5 MB
-
预计构建时间: 小于 0.1 SBU
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libndp
安装libndp
运行以下命令安装libndp:
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-static &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install
内容
安装程序: ndptool
安装库: libndp.so
安装目录: None
简短描述
ndptool 是一个发送和接收NDP消息的工具。
libndp.so 为IPv6 Neighbor Discovery Protocol提供了一个包装器。
17.15 Libslirp-4.7.0
简介libslirp
Libslirp是一个用户模式的网络库,被虚拟机、容器或各种工具使用。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v4.7.0/libslirp-v4.7.0.tar.bz2
-
下载 MD5 校验和: b815c4de99265559caf5ef635a213609
-
下载大小: 107 KB
-
预计所需磁盘空间: 3.1 MB
-
预计构建时间: 小于 0.1 SBU
libslirp依赖
必要
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libslirp
安装Libslirp
通过运行以下命令安装libslirp:
mkdir build &&
cd build &&
meson setup --prefix=/usr --buildtype=release .. &&
ninja
这个包没有附带测试套件。
现在,作为root用户:
ninja install
命令解释
--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。
内容
安装程序: None
安装库: libslirp.so
安装目录: /usr/include/slirp
简短描述
libclirp.so 包含用户模式TCP-IP仿真功能。
17.16 libsoup-2.74.3
简介libsoup
libsoup是一个用于GNOME的HTTP客户端/服务器库。它使用GObject和GLib主循环与GNOME应用程序集成,它还具有用于线程化应用程序的异步API。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://download.gnome.org/sources/libsoup/2.74/libsoup-2.74.3.tar.xz
-
下载 (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/libsoup/2.74/libsoup-2.74.3.tar.xz
-
下载 MD5 校验和: 8f657fd301a213629204b3320c35d75a
-
下载大小: 1.4 MB
-
预计所需磁盘空间: 17 MB (有测试)
-
预计构建时间: 0.3 SBU (使用并行数=4; 有测试)
libsoup依赖
必要
glib-networking-2.74.0, libpsl-0.21.2, libxml2-2.10.3, 和 SQLite-3.40.1
推荐
gobject-introspection-1.74.0 和 Vala-0.56.4
可选
Apache-2.4.55 (需要运行测试套件), Brotli-1.0.9, cURL-7.88.1 (需要运行测试套件), sysprof-3.46.0 (用于分析), MIT Kerberos V5-1.20.1 (需要运行测试套件), GTK-Doc-1.33.2, PHP-8.2.3 编译时支持XMLRPC-EPI(仅用于XMLRPC回归测试), 和 Samba-4.17.5 (运行测试套件需要ntlm_auth)
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libsoup
安装libsoup
通过运行以下命令安装libsoup:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dvapi=enabled \
-Dgssapi=disabled \
-Dsysprof=disabled \
.. &&
ninja
要测试结果,请执行以下命令: ninja test. 一个名为ssl-test的测试失败了。
现在,作为root用户:
ninja install
命令解释
--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。
-Dvapi=disabled: 如果你还没有安装Vala,请使用它,例如,因为你没有构建GNOME。
-Ddoc=enabled: 如果要生成文档,请使用此选项。注意,您必须安装GTK-Doc-1.33.2。
-Dgssapi=disabled: libsoup默认使用GSSAPI支持构建,这需要Kerberos(测试套件也是如此)。如果您正在构建GNOME或已安装kerberos,请删除此选项。
-Dsysprof=disabled: 如果git可用,libsoup会自动下载sysprof-3.46.0的git版本,如果可用,则使用已安装的版本。如果您需要分析,请删除此选项。
内容
安装程序: None
安装库: libsoup-2.4.so 和 libsoup-gnome-2.4.so
安装目录: /usr/include/libsoup-2.4, /usr/include/libsoup-gnome-2.4 和 /usr/share/gtk-doc/html/libsoup-2.4
简短描述
libsoup-2.4.so 提供异步HTTP连接的函数。
libsoup-gnome-2.4.so 提供GNOME的特定功能。
17.17 libsoup-3.2.2
简介libsoup3
libsoup3是一个用于GNOME的HTTP客户端/服务器库。它使用GObject和GLib主循环与GNOME应用程序集成,它还具有用于线程化应用程序的异步API。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://download.gnome.org/sources/libsoup/3.2/libsoup-3.2.2.tar.xz
-
下载 (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/libsoup/3.2/libsoup-3.2.2.tar.xz
-
下载 MD5 校验和: 33902089d52f862d6b39680dd4c4e3aa
-
下载大小: 1.5 MB
-
预计所需磁盘空间: 24 MB (有测试)
-
预计构建时间: 0.3 SBU (使用并行数=4; 有测试)
libsoup3依赖
必要
glib-networking-2.74.0, libpsl-0.21.2, libxml2-2.10.3, nghttp2-1.52.0, 和 SQLite-3.40.1
推荐
gobject-introspection-1.74.0 和 Vala-0.56.4
可选
Apache-2.4.55 (需要运行测试套件), Brotli-1.0.9, cURL-7.88.1 (需要运行测试套件), Gi-DocGen-2023.1, MIT Kerberos V5-1.20.1 (需要运行测试套件), PHP-8.2.3 编译时支持XMLRPC-EPI(仅用于XMLRPC回归测试), Samba-4.17.5 (运行测试套件需要ntlm_auth), 和 sysprof-3.46.0 (用于分析)
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libsoup3
安装libsoup3
修复API文档的安装路径:
sed 's/apiversion/soup_version/' -i docs/reference/meson.build
通过运行以下命令安装libsoup3:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dvapi=enabled \
-Dgssapi=disabled \
-Dsysprof=disabled \
--wrap-mode=nofallback \
.. &&
ninja
要测试结果,请执行以下命令: ninja test.
现在,作为root用户:
ninja install
命令解释
--buildtype=release: 指定一个适合于稳定版本的构建类型,因为默认情况下可能会生成未优化的二进制文件。
--wrap-mode=nofallback: 此开关防止meson对构建文件中的任何依赖项声明使用子项目备用方案,停止下载任何未安装在系统上的可选依赖项。
-Dvapi=disabled: 如果你还没有安装Vala,请使用它,例如,因为你没有构建GNOME。
-Ddocs=enabled: 如果安装了Gi-DocGen-2023.1,无论是否使用此选项,API文档都会被构建和安装。如果没有安装Gi-DocGen-2023.1,则此选项会导致meson命令失败。
-Dgssapi=disabled: libsoup3默认使用GSSAPI支持构建,这需要Kerberos(测试套件也是如此)。
-Dsysprof=disabled: 如果git可用,libsoup3会自动下载sysprof-3.46.0的git版本,如果可用,则使用已安装的版本。如果您需要分析,请删除此选项。
内容
安装程序: None
安装库: libsoup-3.0.so
安装目录: /usr/include/libsoup-3.0, /usr/share/gtk-doc/html/libsoup-3.0 (只有通过-Ddocs=enabled时才安装)
简短描述
libsoup-3.0.so 提供异步HTTP连接的函数。
17.18 libtirpc-1.3.3
简介libtirpc
libtirpc包包含支持使用远程过程调用(Remote Procedure Call, RPC) API的程序的库。它会替换RPC,但不会替换glibc中曾经存在的NIS库条目。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://downloads.sourceforge.net/libtirpc/libtirpc-1.3.3.tar.bz2
-
下载 MD5 校验和: bacdad5c27dcf6e2830b3e26a1c8ed3f
-
下载大小: 552 KB
-
预计所需磁盘空间: 6.8 MB
-
预计构建时间: 小于 0.1 SBU
libtirpc依赖
可选
MIT Kerberos V5-1.20.1 用于GSSAPI
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/libtirpc
安装libtirpc
注意
如果要更新这个包,你还需要更新任何现有版本的rpcbind-1.2.6
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-static \
--disable-gssapi &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install
命令解释
--disable-static: 这个开关阻止安装静态版本的库。
--disable-gssapi: 如果未安装GSSAPI,则需要此交换机。如果您已经安装了这个开关(例如MIT Kerberos V5-1.20.1)并且希望使用它,请删除它。
内容
安装程序: None
安装库: libtirpc.so
安装目录: /usr/include/tirpc
简短描述
libtirpc.so 提供其他程序所需的远程过程调用(RPC,Remote Procedure Call) API函数。
17.19 neon-0.32.5
简介neon
neon是一个HTTP和WebDAV客户端库,具有C接口。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 MD5 校验和: 7976b1cd67b7228cddb7eb4f39640ac5
-
下载大小: 876 KB
-
预计所需磁盘空间: 8.6 MB (额外18 MB 用于测试)
-
预计构建时间: 0.1 SBU (增加0.4 SBU 用于测试)
neon依赖
可选
GnuTLS-3.8.0, libxml2-2.10.3, MIT Kerberos V5-1.20.1, nss-3.88.1 (用于一些测试), xmlto-0.0.28 (重新生成文档), libproxy, 和 PaKChoiS
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/neon
安装neon
通过运行以下命令安装neon:
./configure --prefix=/usr \
--with-ssl \
--enable-shared \
--disable-static &&
make
要测试结果,请执行以下命令: make check.
如果你想重新生成文档,请执行:
make docs
现在,作为root用户:
make install
命令解释
--with-ssl: 这个开关使用OpenSSL启用SSL支持。可以通过传递--with-ssl=gnutls 和 --with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt来代替GnuTLS。到configure脚本。
--disable-static: 这个开关阻止安装静态版本的库。
内容
安装程序: neon-config
安装库: libneon.so
安装目录: /usr/include/neon 和 /usr/share/doc/neon-0.32.5
简短描述
neon-config 是一个脚本,提供有关已安装的neon库副本的信息。
libneon.so 用作通用HTTP和WebDAV方法的高级接口。
17.20 nghttp2-1.52.0
简介nghttp2
nghttp2是HTTP/2及其首部压缩算法HPACK的一个实现。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://github.com/nghttp2/nghttp2/releases/download/v1.52.0/nghttp2-1.52.0.tar.xz
-
下载 MD5 校验和: 30cab20160abb7981c713544d31e2d60
-
下载大小: 1.5 MB
-
预计所需磁盘空间: 19 MB
-
预计构建时间: 小于 0.1 SBU
nghttp2依赖
推荐
可选
以下代码仅在构建完整包而不是仅构建主要库时使用:Boost-1.81.0, c-ares-1.19.0, cython-0.29.33, jansson-2.14, libevent-2.1.12, sphinx-6.1.3, jemalloc, libev, mruby, 和 Spdylay.
如果您希望运行测试套件,则需要CUnit。
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/nghttp2
安装nghttp2
通过运行以下命令安装nghttp2:
./configure --prefix=/usr \
--disable-static \
--enable-lib-only \
--docdir=/usr/share/doc/nghttp2-1.52.0 &&
make
测试套件需要CUnit,这超出了BLFS的范围。
现在,作为root用户:
make install
命令解释
--disable-static: 这个开关阻止安装静态版本的库。
--enable-lib-only: 只构建libnghttp2。如果你想构建示例应用程序、Python绑定或C++ asio库,请忽略这个开关。
内容
安装程序: None
安装库: libnghttp2.so
安装目录: /usr/include/nghttp2, /usr/share/nghttp2, 和 /usr/share/doc/nghttp2-1.52.0
简短描述
libnghttp2.so 超文本传输协议版本2的C语言实现。
17.21 rpcsvc-proto-1.4.3
简介rpcsvc-proto
rpcsvc-proto包包含了之前glibc中包含的rcpsvc协议文件和头文件,但没有包含在替换的libtirpc-1.3.3中,还有rpcgen程序。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4.3/rpcsvc-proto-1.4.3.tar.xz
-
下载 MD5 校验和: 5cc9a871db85e34ab68a9cecfb448a97
-
下载大小: 168 KB
-
预计所需磁盘空间: 2.1 MB
-
预计构建时间: 小于 0.1 SBU
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/rpcsvc-proto
安装rpcsvc-proto
通过运行以下命令安装rpcsvc-proto:
./configure --sysconfdir=/etc &&
make
这个包没有附带测试套件。
现在,作为root用户:
make install
内容
安装程序: rpcgen
安装库: None
安装目录: /usr/include/rpcsvc
简短描述
rpcgen 生成实现RPC协议的C代码。
17.22 Serf-1.3.9
简介Serf
Serf包包含一个基于C的HTTP客户端库,该库建立在Apache可移植运行时(APR)库之上。它多路复用连接,异步运行读/写通信。为了提供高性能操作,尽量减少内存复制和转换。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://archive.apache.org/dist/serf/serf-1.3.9.tar.bz2
-
下载 MD5 校验和: 370a6340ff20366ab088012cd13f2b57
-
下载大小: 144 KB
-
预计所需磁盘空间: 3.2 MB
-
预计构建时间: 小于 0.1 SBU
Additional Downloads
Serf依赖
必要
可选
MIT Kerberos V5-1.20.1, 用于GSSAPI
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/serf
安装Serf
首先,修复一个在使用OpenSSL-3时导致其他包编译问题的问题:
patch -Np1 -i ../serf-1.3.9-openssl3_fixes-1.patch
通过运行以下命令安装Serf:
sed -i "/Append/s:RPATH=libdir,::" SConstruct &&
sed -i "/Default/s:lib_static,::" SConstruct &&
sed -i "/Alias/s:install_static,::" SConstruct &&
sed -i "/ print/{s/print/print(/; s/$/)/}" SConstruct &&
sed -i "/get_contents()/s/,/.decode()&/" SConstruct &&
scons PREFIX=/usr
这个包没有附带功能测试套件。
现在,作为root用户:
scons PREFIX=/usr install
命令解释
sed -i “…“: 第一个命令从共享库中删除运行时路径,接下来的两个命令禁止构建和安装静态库。第四个命令修正了scons-3.x中的修改。最后一个命令允许使用Python 3。
GSSAPI=/usr: 如果您已经安装了GSSAPI库并且希望serf使用它,请使用此开关。
内容
安装程序: None
安装库: libserf-1.so
安装目录: /usr/include/serf-1
简短描述
libserf-1.so 包含Serf API函数。
17.23 uhttpmock-0.5.3
简介uhttpmock
uhttpmock包包含一个库,用于模拟使用HTTP或HTTPS的web服务api。
该软件包在LFS 11.3平台上可以正常构建和工作。
包信息
-
下载 (HTTP): https://tecnocode.co.uk/downloads/uhttpmock/uhttpmock-0.5.3.tar.xz
-
下载 MD5 校验和: dcbd66e80e1635e41b0e434b9852bd39
-
下载大小: 311 KB
-
预计所需磁盘空间: 3.6 MB
-
预计构建时间: 小于 0.1 SBU (有测试)
uhttpmock依赖
必要
推荐
gobject-introspection-1.74.0 和 Vala-0.56.4
可选
用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/uhttpmock
安装uhttpmock
通过运行以下命令安装uhttpmock:
./configure --prefix=/usr --disable-static &&
make
要测试结果,请执行以下命令: make check.
现在,作为root用户:
make install
命令解释
--disable-static: 这个开关阻止安装静态版本的库。
--enable-gtk-doc: 如果安装了GTK-Doc并且希望重新构建和安装API文档,请使用此参数。
内容
安装程序: None
安装库: libuhttpmock-0.0.so
安装目录: /usr/include/libuhttpmock-0.0 和 /usr/share/gtk-doc/html/libuhttpmock-0.0
简短描述
libuhttpmock-0.0.so 包含uhttpmock API函数。