-1

There are two packages libbind and libdns packaged by Debian, they're both described as,

The Berkeley Internet Name Domain (BIND) implements an Internet domain name server. BIND is the most widely-used name server software on the Internet, and is supported by the Internet Software Consortium, www.isc.org. This package delivers the (libbind9 or libdns) shared library used by BIND's daemons and clients.

Yes, the name of the library changes, but what's the difference between them? What is libbind, what is libdns? Why does the bind9 project produce two packages with different libraries and where are they documented?

  • libbind9-161:amd64 Shared Library used by BIND
  • libdns1104:amd64 DNS Shared Library used by BIND
  • Re-read the last sentence of the descriptions, they’re not identical. Why do you want to know the difference? – Stephen Kitt Jun 6 at 16:18
  • @StephenKitt not sure if that's what you're looking for – Evan Carroll Jun 6 at 16:52
1

As Stephen Kitt wrote that these packages have different descriptions:

  • libbind9-161: This package delivers the libbind9 shared library used by BIND's daemons and clients.
  • libdns1104: This package delivers the libdns shared library used by BIND's daemons and clients.

You can always recheck what is inside a deb package.

libbind9-161 package ships libbind9.so.161 shared library, and libdns1104 - libdns-pkcs11.so.1104 and libdns.so.1104 libraries.

$ 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
  • I'm totally confused at how you and stephen say the descriptions are different. If I tell you a "a car drives on the road."; "a truck drives on the road" how would those descriptions be different in any meaningful sense? This doesn't really answer the question what is libbind, what is libdns, why does one project produce two meta-packages with different libraries and where are they documented? When do I need one, when do I need the other? – Evan Carroll Jun 7 at 14:34
0

Both packages’ descriptions follow a typical format used for related packages: they share a common section,

The Berkeley Internet Name Domain (BIND) implements an Internet domain name server. BIND is the most widely-used name server software on the Internet, and is supported by the Internet Software Consortium, www.isc.org.

and a package-specific paragraph,

This package delivers the libdns shared library used by BIND's daemons and clients.

for libdns, and

This package delivers the libbind9 shared library used by BIND's daemons and clients.

These are very similar, and don’t provide much information to distinguish between the two. However, they do help end users determine their use: they are both shared libraries used by BIND’s daemons and clients.

Looking into the libraries in more detail, libdns provides low-level DNS-related functions, whereas libbind9 provides a small number of high-level name resolution functions. libbind9 depends on libdns, as do a number of other BIND libraries.

The BIND9 source package produces seven library packages, and related export library packages and udebs. This is entirely up to the package maintainer; I imagine the decision to package most of the libraries separately comes at least partly from the fact that library package names are supposed to encode library sonames, and the BIND9 library package split sticks to that rule.

However none of this should really matter to the vast majority of end users. Library packages in general in Debian are only ever installed as a side-effect of installing the packages which need them; this is true of BIND9 too. If you install dnsutils, you’ll end up with libbind, libdns, libisc, libisccfg, and liblwres too, but the features you care about are in dnsutils, not the library packages. The only realistic reason to care about the library packages themselves is if you’re developing software using them, and even then you’d install the development package, libbind-dev, not the individual library packages.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.