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