When configuring unbound
with --enable-dnstap
, it can't locate protobuf-c
.
$ ./configure --enable-dnstap
...
...
...
checking for protoc-c... no
configure: error: The protoc-c program was not found. Please install protobuf-c!
However, protobuf-c
appears to be installed.
$ sudo apt search protobuf-c
Sorting... Done
Full Text Search... Done
libprotobuf-c-dev/stable,now 1.4.1-1+b1 armhf [installed]
Protocol Buffers C static library and headers (protobuf-c)
libprotobuf-c1/stable,now 1.4.1-1+b1 armhf [installed,automatic]
Protocol Buffers C shared library (protobuf-c)
librust-prometheus+protobuf-codegen-pure-dev/stable 0.13.3-1 armhf
Prometheus instrumentation library for Rust applications - feature "protobuf-codegen-pure" and 1 more
librust-protobuf-codegen-dev/stable 2.27.1-1+b2 armhf
Code generator for rust-protobuf - Rust source code
librust-protobuf-codegen-pure-dev/stable 2.27.1-1 armhf
Pure-rust codegen for protobuf using protobuf-parser crate - Rust source code
protobuf-c-compiler/stable 1.4.1-1+b1 armhf
Protocol Buffers C compiler (protobuf-c)
protobuf-codegen/stable 2.27.1-1+b2 armhf
Code generator for rust-protobuf
protobuf-compiler/stable 3.21.12-3 armhf
compiler for protocol buffer definition files
protobuf-compiler-grpc/stable 1.51.1-3+b1 armhf
high performance general RPC framework - protobuf plugin
protobuf-compiler-grpc-java-plugin/stable 1.41.3+ds-1 armhf
high performance general RPC framework - protobuf Java plugin
$ dpkg -l | grep protobuf
ii libprotobuf-c-dev:armhf 1.4.1-1+b1 armhf Protocol Buffers C static library and headers (protobuf-c)
ii libprotobuf-c1:armhf 1.4.1-1+b1 armhf Protocol Buffers C shared library (protobuf-c)
$ sudo find / -name libprotobuf-c1
/usr/share/doc/libprotobuf-c1
$ sudo find / -name libprotobuf-c-dev
/usr/share/doc/libprotobuf-c-dev
$ ls /usr/bin/ | grep proto
$ ls /usr/local/bin/ | grep proto
$ ls /bin/ | grep proto
$ ls /usr/lib/ | grep proto
$ ls /usr/local/lib/ | grep proto
$ ls /lib/ | grep proto
$
I can't locate the protobuf-c library or program either although it is installed.
I do I resolve this configuration issue?
Update:
I discovered from this answer that the library name is libprotobuf-c.so.1
.
Its location was found using:
$ sudo find / -name libprotobuf-c.so.1
/usr/lib/arm-linux-gnueabihf/libprotobuf-c.so.1
$
I tried linking this file into /usr/local/lib
(Unbound default installation library directory) via
$ ln -s /usr/lib/arm-linux-gnueabihf/libprotobuf-c.so.1
and reran
$ ./configure --enable-dnstap
and still got the same error msg as mentioned above.
I further tried:
./configure --enable-dnstap --with-protobuf-c=/usr/lib/arm-linux-gnueabihf/libprotobuf-c.so.1
and still got the same error msg as mentioned above.
The unbound version that I am trying to configure is 1.22.0.
This question does not duplicate How do I find the package that provides a file?. Reasons:
- I am already using
dpkg
. - I found that using
apt search
to be more suitable as it shows all the other packages related toprotobuf-c
with description. - Apart from the
libprotobuf-c
,unbound
also uses theprotoc-c
program (informed to me by an unbound member), which is available after installingprotobuf-c-compiler
(see @steeldriver comment). This information isn't disclosed usingdpkg
.
To configure unbound with the option
--enable-dnstap
, these apt packages need to be installed first: