Ao configurar unbound
com --enable-dnstap
, ele não consegue localizar protobuf-c
.
$ ./configure --enable-dnstap
...
...
...
checking for protoc-c... no
configure: error: The protoc-c program was not found. Please install protobuf-c!
No entanto, protobuf-c
parece estar instalado.
$ 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
$
Não consigo localizar a biblioteca ou o programa protobuf-c, embora ele esteja instalado.
Como posso resolver esse problema de configuração?
Atualizar:
Descobri nesta resposta que o nome da biblioteca é libprotobuf-c.so.1
.
Sua localização foi encontrada usando:
$ sudo find / -name libprotobuf-c.so.1
/usr/lib/arm-linux-gnueabihf/libprotobuf-c.so.1
$
Tentei vincular este arquivo em /usr/local/lib
(diretório da biblioteca de instalação padrão não vinculado) via
$ ln -s /usr/lib/arm-linux-gnueabihf/libprotobuf-c.so.1
e reexecutou
$ ./configure --enable-dnstap
e ainda recebi a mesma mensagem de erro mencionada acima.
Eu tentei ainda:
./configure --enable-dnstap --with-protobuf-c=/usr/lib/arm-linux-gnueabihf/libprotobuf-c.so.1
e ainda recebi a mesma mensagem de erro mencionada acima.
A versão não vinculada que estou tentando configurar é 1.22.0.
Esta pergunta não duplica Como encontro o pacote que fornece um arquivo? . Motivos:
- Eu já estou usando
dpkg
. - Descobri que esse método
apt search
é mais adequado, pois mostra todos os outros pacotes relacionadosprotobuf-c
com a descrição. - Além do
libprotobuf-c
,unbound
também usa oprotoc-c
programa (informado a mim por um membro não vinculado), que está disponível após a instalaçãoprotobuf-c-compiler
(veja o comentário do @steeldriver). Essas informações não são divulgadas usandodpkg
.
Para configurar o unbound com a opção
--enable-dnstap
, estes pacotes apt precisam ser instalados primeiro: