Skip to the content.

上一页      主目录      下一页

17. Networking Libraries


这些应用程序是本书中其他应用程序的支持库。你不太可能只安装这些库,你通常会发现本章会引用你来满足其他应用程序的依赖。

17.1 c-ares-1.19.0


简介c-ares

c-ares是一个用于异步DNS请求的C库。

该软件包在LFS 11.3平台上可以正常构建和工作。

包信息

c-ares依赖

必要

CMake-3.25.2

安装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平台上可以正常构建和工作。

包信息

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.txtd.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平台上可以正常构建和工作。

包信息

GeoClue依赖

必要

JSON-GLib-1.6.6libsoup-3.2.2

推荐

ModemManager-1.18.12, Vala-0.56.4, 和 Avahi-0.8

可选

GTK-Doc-1.33.2libnotify-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平台上可以正常构建和工作。

包信息

GLib Networking依赖

必要

GLib-2.74.5GnuTLS-3.8.0

推荐

gsettings-desktop-schemas-43.0 (对于使用此包的应用程序,请使用GNOME中的代理服务器设置) 和 make-ca-1.12

可选

libproxy

用户笔记: 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平台上可以正常构建和工作。

包信息

kdsoap依赖

必要

Qt-5.15.8

用户笔记: 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平台上可以正常构建和工作。

包信息

ldns依赖

可选

make-ca-1.12libpcap-1.10.3 (用于实例程序), Python-2.7.18SWIG-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平台上可以正常构建和工作。

包信息

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.cregress_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平台上可以正常构建和工作。

包信息

libnma依赖

可选

Doxygen-1.9.6

用户笔记: 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平台上可以正常构建和工作。

包信息

可选下载

用户笔记: 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平台上可以正常构建和工作。

包信息

libnma依赖

必要

Gcr-3.41.1, GTK+-3.24.36, ISO Codes-4.12.0, 和 NetworkManager-1.42.0

推荐

GTK-4.8.3Vala-0.56.4

可选

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平台上可以正常构建和工作。

包信息

libnsl 依赖

必要

rpcsvc-proto-1.4.3libtirpc-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平台上可以正常构建和工作。

包信息

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平台上可以正常构建和工作。

包信息

libpsl依赖

必要

libidn2-2.3.4

可选

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平台上可以正常构建和工作。

包信息

用户笔记: 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平台上可以正常构建和工作。

包信息

libslirp依赖

必要

GLib-2.74.5

用户笔记: 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平台上可以正常构建和工作。

包信息

libsoup依赖

必要

glib-networking-2.74.0, libpsl-0.21.2, libxml2-2.10.3, 和 SQLite-3.40.1

推荐

gobject-introspection-1.74.0Vala-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平台上可以正常构建和工作。

包信息

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.0Vala-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平台上可以正常构建和工作。

包信息

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平台上可以正常构建和工作。

包信息

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平台上可以正常构建和工作。

包信息

nghttp2依赖

推荐

libxml2-2.10.3

可选

以下代码仅在构建完整包而不是仅构建主要库时使用: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平台上可以正常构建和工作。

包信息

用户笔记: 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平台上可以正常构建和工作。

包信息

Additional Downloads

Serf依赖

必要

Apr-Util-1.6.3SCons-4.4.0

可选

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平台上可以正常构建和工作。

包信息

uhttpmock依赖

必要

libsoup-2.74.3

推荐

gobject-introspection-1.74.0Vala-0.56.4

可选

GTK-Doc-1.33.2

用户笔记: 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函数。

上一页      主目录      下一页