Bind9 共享库:libbind 与 libdns?

Bind9 共享库:libbind 与 libdns?

有两个软件包由 Debianlibbind打包libdns,它们都被描述为,

伯克利互联网名称域 (BIND) 实现了互联网域名服务器。 BIND 是 Internet 上使用最广泛的名称服务器软件,并得到 Internet 软件联盟 www.isc.org 的支持。该软件包提供了 BIND 守护进程和客户端使用的(libbind9 或 libdns)共享库。

是的,图书馆的名字变了,但是它们之间有什么区别呢?什么是 libbind,什么是 libdns?为什么 bin9 项目会生成两个具有不同库的包以及它们的文档记录在哪里?

  • libbind9-161:amd64BIND 使用的共享库
  • libdns1104:amd64BIND 使用的 DNS 共享库

答案1

正如 Stephen Kitt 所写,这些包有不同的描述:

  • libbind9-161:此软件包提供 BIND 守护进程和客户端使用的 libbind9 共享库。
  • libdns1104:这个包提供了 BIND 守护进程和客户端使用的 libdns 共享库。

您可以随时重新检查 deb 包中的内容。

libbind9-161软件包附带 libbind9.so.161 共享库,并且libdns1104- libdns-pkcs11.so.1104 和 libdns.so.1104 库。

$ apt-get download libdns1104 libbind9-161

$ dpkg -c libbind9-161_1%3a9.11.5.P4+dfsg-5_amd64.deb 
drwxr-xr-x root/root         0 2019-05-03 20:44 ./
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/lib/
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/lib/x86_64-linux-gnu/
-rw-r--r-- root/root     71616 2019-05-03 20:44 ./usr/lib/x86_64-linux-gnu/libbind9.so.161.0.0
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/share/
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/share/doc/
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/share/doc/libbind9-161/
-rw-r--r-- root/root     26678 2019-05-03 20:44 ./usr/share/doc/libbind9-161/changelog.Debian.gz
-rw-r--r-- root/root    189777 2019-02-05 02:06 ./usr/share/doc/libbind9-161/changelog.gz
-rw-r--r-- root/root      6973 2019-05-03 20:44 ./usr/share/doc/libbind9-161/copyright
lrwxrwxrwx root/root         0 2019-05-03 20:44 ./usr/lib/x86_64-linux-gnu/libbind9.so.161 -> libbind9.so.161.0.0

$ dpkg -c libdns1104_1%3a9.11.5.P4+dfsg-5_amd64.deb 
drwxr-xr-x root/root         0 2019-05-03 20:44 ./
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/lib/
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/lib/x86_64-linux-gnu/
-rw-r--r-- root/root   2355984 2019-05-03 20:44 ./usr/lib/x86_64-linux-gnu/libdns-pkcs11.so.1104.0.2
-rw-r--r-- root/root   2339312 2019-05-03 20:44 ./usr/lib/x86_64-linux-gnu/libdns.so.1104.0.2
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/share/
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/share/doc/
drwxr-xr-x root/root         0 2019-05-03 20:44 ./usr/share/doc/libdns1104/
-rw-r--r-- root/root     26678 2019-05-03 20:44 ./usr/share/doc/libdns1104/changelog.Debian.gz
-rw-r--r-- root/root    189777 2019-02-05 02:06 ./usr/share/doc/libdns1104/changelog.gz
-rw-r--r-- root/root      6973 2019-05-03 20:44 ./usr/share/doc/libdns1104/copyright
lrwxrwxrwx root/root         0 2019-05-03 20:44 ./usr/lib/x86_64-linux-gnu/libdns-pkcs11.so.1104 -> libdns-pkcs11.so.1104.0.2
lrwxrwxrwx root/root         0 2019-05-03 20:44 ./usr/lib/x86_64-linux-gnu/libdns.so.1104 -> libdns.so.1104.0.2

答案2

两个包的描述都遵循相关包的典型格式:它们共享一个公共部分,

伯克利互联网名称域 (BIND) 实现了互联网域名服务器。 BIND 是 Internet 上使用最广泛的名称服务器软件,并得到 Internet 软件联盟 www.isc.org 的支持。

和特定于包的段落,

该包提供了libdnsBIND 守护进程和客户端使用的共享库。

对于libdns, 和

该包提供了libbind9BIND 守护进程和客户端使用的共享库。

它们非常相似,并且没有提供太多信息来区分两者。然而,他们确实有帮助终端用户确定它们的用途:它们都是 BIND 守护进程和客户端使用的共享库。

更详细地研究这些库,libdns提供了低级 DNS 相关功能,而libbind9提供了少量高级名称解析功能。libbind9取决于libdns,以及许多其他 BIND 库。

BIND9源码包生成七个库包,以及相关的导出库包和 udeb。这完全取决于包维护者;我想单独打包大多数库的决定至少部分是因为库包名称应该对库 sonames 进行编码,并且 BIND9 库包拆分遵循该规则。

然而对于绝大多数最终用户来说,这些都不重要。 Debian 中的库包通常只是作为安装需要它们的包的副作用而安装的; BIND9 也是如此。如果你安装dnsutils,您最终会得到libbindlibdnslibisclibisccfgliblwres等,但是您关心的功能位于 中dnsutils,而不是库包中。关心库包本身的唯一现实原因是,如果您正在使用它们开发软件,即使这样您也会安装开发包,libbind-dev,而不是单个库包。

相关内容