Когда я пытаюсь установить libcurl4-dev, он говорит, что это виртуальный пакет, и мне нужно установить libcurl4-gnutls-dev или libcurl4-nss-dev. В чем разница между установкой одного или другого?
Оба предоставляют одинаковую функциональность, просто используя разные библиотеки.
Задний план:
cURL поддерживает использование безопасности транспортного уровня (TLS, иначе SSL) для передачи данных. Поскольку реализация TLS довольно сложна, cURL делегирует это внешней библиотеке. Для этой цели cURL поддерживает несколько разных библиотек, и вам нужно выбрать одну из них при сборке (см. как установить curl и libcurl , раздел «Выбор бэкэнда TLS»). Наиболее популярные варианты использования в качестве библиотеки TLS:
Какой из них вы выберете, зависит от нескольких факторов (лицензирование, производительность, точный набор функций, таких как поддерживаемые алгоритмы шифрования ...), но все они в основном предоставляют одинаковую функциональность.
Ubuntu хочет позволить людям выбирать, какой вариант cURL они хотят использовать, поэтому они создают cURL-копии для разных библиотек TLS и предлагают их в виде отдельных пакетов. Начиная с Ubuntu Bionic (18.04LTS), варианты:
- libcurl4-GnuTLS-DEV
- libcurl4-NSS-DEV
- libcurl4-OpenSSL-DEV
Итак, установите правильный вариант для библиотеки TLS, которую вы хотите использовать. Если у вас нет особых предпочтений, установите вариант по умолчанию (который использует OpenSSL).