Ответ 1
этот ответ работал отлично для меня
fooobar.com/questions/42374/...
просто sudo apt-get install libssl-dev
Попытка установить git на машинах Unix и Linux на основе инструкций Установка Git, и он не работает с ошибка ниже
make prefix=/usr/local all
GIT_VERSION = 1.8.3.4
* new build flags
CC credential-store.o
In file included from cache.h:4,
from credential-store.c:1:
git-compat-util.h:221:25: warning: openssl/ssl.h: No such file or directory
git-compat-util.h:222:25: warning: openssl/err.h: No such file or directory
In file included from credential-store.c:1:
cache.h:11:21: warning: openssl/sha.h: No such file or directory
cache.h:19:18: warning: zlib.h: No such file or directory
In file included from credential-store.c:1:
cache.h:21: syntax error before "z_stream"
cache.h:21: warning: no semicolon at end of struct or union
cache.h:28: syntax error before '}' token
cache.h:28: warning: type defaults to `int' in declaration of `git_zstream'
cache.h:28: warning: data definition has no type or storage class
cache.h:30: syntax error before '*' token
cache.h:31: syntax error before '*' token
cache.h:32: syntax error before '*' token
cache.h:33: syntax error before '*' token
cache.h:35: syntax error before '*' token
cache.h:36: syntax error before '*' token
cache.h:37: syntax error before '*' token
cache.h:38: syntax error before '*' token
cache.h:39: syntax error before '*' token
cache.h:40: syntax error before '*' token
cache.h:41: syntax error before '*' token
cache.h:42: syntax error before '*' token
cache.h:769: syntax error before '*' token
make: *** [credential-store.o] Error 1
Я знаю, что это из-за недостающих библиотек для openssl, но я не могу получить эти библиотеки.
У меня нет yum/apt-get на моих машинах для запуска следующих команд:
$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev
Что мне делать, чтобы получить эти библиотеки на этих машинах. У этих машин нет доступа в Интернет, я могу сделать scp, если потребуется. Любые предложения.
этот ответ работал отлично для меня
fooobar.com/questions/42374/...
просто sudo apt-get install libssl-dev
Для RHEL и RHEL-производных, таких как системы CentOS, установка решит эту проблему.
$ yum install -y openssl-devel
Если у вас нет доступа к готовым пакетам для требуемых библиотек, вам необходимо прибегнуть к вековой практике, прежде чем появились менеджеры пакетов: сборка библиотек локально и библиотек, на которых они зависят, и библиотеки, которые они зависят от и т.д.
Другими словами, у вас есть потенциально большой и сложный лабиринт чеканки зависимостей, который может включать исправление ошибок переносимости для вашей платформы, если исходный код не компилируется из коробки.
В Debian PTS есть ссылки на восходящие проекты для многих пакетов, поэтому вам может не потребоваться угадать, какой результат выбрать из результатов Google для "openssl source". См. http://packages.qa.debian.org/o/openssl.html (ссылка "Просмотреть исходный код" - хороший старт; файл авторских прав Debian для каждого пакета также должен содержать URL вверх по течению, хотя он может быть историческим).
также:
Если у вас есть менеджер пакетов локально (на Debian, это будет основной dpkg
), вы можете избежать поиска и компиляции morass и просто скопировать требуемую иерархию зависимых пакетов с хоста, подключенного к Интернету; но опять же, убедитесь, что вы получаете полный набор рекурсивных зависимостей (все, от чего зависит ваш пакет, в свою очередь зависит от рекурсивно). Например. https://packages.debian.org/stable/openssl показывает, от каких пакетов зависит пакет openssl
Debian; в свою очередь, некоторые из них будут иметь аналогичный список собственных зависимостей.
Если вы не можете получить доступ к yum, apt-get и т.д. (Например, на кластерной машине без доступа sudo), установите новую версию openssl локально и вручную следующим образом:
Получите исходный код, распакуйте его, войдите в каталог и создайте каталог сборки (очень важно):
wget https://www.openssl.org/source/openssl-1.0.2r.tar.gz
tar -xvzf openssl-1.0.2r.tar.gz
cd openssl-1.0.2r
mkdir builddir
Сконфигурируйте для локального назначения сборки (убедитесь, что он отличается от вашего исходного каталога, не используйте просто /home/yourdir/openssl-1.0.2r/), сделайте и установите:
./config --prefix=/home/yourdir/openssl-1.0.2r/builddir --openssldir=/home/yourdir/openssl-1.0.2r/builddir
make
make install
Добавьте пути к бинам и библиотекам из каталога сборки в соответствующие переменные в вашем конфигурационном файле оболочки (например, ~/.bashrc) и создайте его:
export PATH=/home/yourdir/openssl-1.0.2r/builddir/bin:$PATH
LD_LIBRARY_PATH="/your/other/dirs/libs:/home/yourdir/openssl-1.0.2r/builddir/lib:"
source ~/.bashrc
OpenSSL теперь должен быть в вашем новом каталоге по умолчанию:
which openssl
> /home/yourdir/openssl-1.0.2r/builddir/bin/openssl
Теперь попробуйте переустановить git, возможно, с помощью make distclean.
Для Ubuntu я установил openssl и libssl-dev
sudo apt установить openssl libssl-dev
Проверив код файла конфигурации, я обнаружил, что он ищет "include/openssl/ssl.h" в предопределенных путях
Вы можете найти его в своей системе и запустить конфигурацию с --with-openssl
Например, если вы нашли ssl.h в /usr/include/openssl/ssl.h, вы можете запустить команду ниже
./configure --with-openssl =/usr/
Половина ответа (покрытие apt, а не yum):
Если вы добавите --print-uris
в команду apt-get
, он расскажет вам, какие файлы ему нужны и где их можно скачать, вы можете получить эти файлы и dpkg -i
их. Или поместите их в /var/cache/apt/archives
и запустите apt-get
(без --print-uris
), и он найдет их в кеше и не попытается загрузить их.