Как узнать, построен ли бинарный файл git против openssl или gnutls, если git-http-fetch не установлен?

Мне нужно проверить, установлена ​​ли установленная версия git на нескольких системах против gnutls или openssl. Метод для этого можно найти здесь, но полагается на наличие установленного двоичного git-http-fetch, для которого можно запустить "ldd git-http-fetch". Например, я вижу это на Ubuntu 16.04 с git 2.7.4. Я могу предоставить аргумент http-fetch для git для доступа к той же функции, но это не помогает, так как я хочу использовать ldd для проверки того, какие общие объекты будут связаны. Я мог бы просто выполнить git-транзакцию с помощью strace, а затем grep для фактически загруженных библиотек, но это требует конечной точки теста и кажется громоздким.

Как я могу установить этот дополнительный бинарный файл? Кроме того, как я могу адаптировать инструкции из предыдущего вопроса в отсутствие этого двоичного файла?

1 ответ

Первый - поиск пакета, который в Ubuntu предоставляет git-http-fetch

https://packages.ubuntu.com/search?suite=xenial&arch=any&mode=exactfilename&searchon=contents&keywords=git-http-fetch

В некотором смысле, к моему удивлению, ответ - это пакет git, но файл похоронен в / usr / lib / git-core / git-http-fetch, а / usr / lib / git-core отсутствует в моем PATH.

Поэтому следующая команда решает мою проблему.

ldd / usr / lib / git-core / git-http-fetch | грецкие орехи

Обратите внимание, что в Ubuntu 16.04 и более ранних версиях нужно следить за проблемами с пакетом git-all, которые, как я ошибочно предположил, могут помочь. Существует ошибка, которая означает, что она не будет установлена ​​правильно. См. https://bugs.launchpad.net/ubuntu/+source/runit/+bug/1448164

Другие вопросы по тегам