When I try to install libcurl4-dev it says that this is a virtual package and I need to install libcurl4-gnutls-dev or libcurl4-nss-dev. What is the difference between installing one or the other?
Ambos fornecem a mesma funcionalidade, usando apenas bibliotecas diferentes.
Antecedentes:
cURL suporta o uso de Transport Layer Security (TLS, também conhecido como SSL) para transferências de dados. Como a implementação do TLS é bastante complicada, o cURL delega isso para uma biblioteca externa. O cURL suporta várias bibliotecas diferentes para este propósito, e você precisa selecionar uma ao criá-la (veja como instalar curl e libcurl , seção "Selecionar backend TLS"). As opções mais populares para usar como biblioteca TLS são:
- OpenSSL (o padrão para cURL)
- Serviços de segurança de rede (NSS)
- GnuTLS
Qual deles você escolhe depende de vários fatores (licenciamento, desempenho, conjunto de recursos exatos, como algoritmos de criptografia compatíveis ...), mas todos eles oferecem a mesma funcionalidade.
O Ubuntu quer permitir que as pessoas escolham qual variante do cURL querem usar, de modo que elas criem cURL contra diferentes bibliotecas TLS e ofereçam-nas como pacotes separados. A partir de Ubuntu bionic (18.04LTS), as variantes são:
- libcurl4-gnutls-dev
- libcurl4-nss-dev
- libcurl4-openssl-dev
Portanto, instale a variante correta para a biblioteca TLS que você deseja usar. Se você não tiver uma preferência específica, instale a variante padrão (que usa o OpenSSL).