Я пытаюсь получить последнюю версию openssl в 1.0.2 series
в bash.Essentially я хочу получить ссылку на скачивание последней версии завитка и последней версии в bash. Проблема в том, что openssl не использует тег latest
в своих версиях github.Получение последней версии openssl в bash
ответ
Чтобы получить последний архив OpenSSL вы можете использовать один из зеркал OpenSSL FTP. Вот пример скрипта bash.
#!/bin/bash
# An ftp mirror, see here https://www.openssl.org/source/mirror.html
mirror_url='ftp://gd.tuwien.ac.at/infosys/security/openssl/'
# Last modified date of source directory
last_modified=$(curl -s $mirror_url | awk '/source/{print $6,$7,$8}')
# OpenSSL archive with same modification Date as source dir
latest_archive=$(curl -s "$mirror_url"source/ | grep "$last_modified.*tar.gz$"|awk '{print $NF}')
# URL of latest release
latest_release=$mirror_url"source/"$latest_archive
# Download latest release
curl -sO "$latest_release"
извините за поздний ответ. Ваше решение работает нормально, но мне интересно, что иногда он может возвращать версию fips opensl, если она была выпущена ранее. Можете ли вы изменить свой код, чтобы исключить версию fps opensl, чтобы быть в безопасности. – user2650277
Вы можете отфильтровать строку fips, уточнив grep, попробуйте что-нибудь следующим образом: 'grep '$ last_modified. * openssl- [0-9]. * tar.gz $" ' – Zlemini
Я пытаюсь получить последнюю версию OpenSSL в 1.0.2 серии в баш ...
Насколько я знаю, Bash не использует OpenSSL. Он также не имеет встроенного инструмента загрузки или менеджера, поэтому вам нужно будет использовать внешнюю команду, например curl
или wget
.
Для осуществления загрузки вам необходимо посетить страницу OpenSSL download. Тогда его просто:
$ wget https://www.openssl.org/source/openssl-1.0.2j.tar.gz
--2016-11-25 10:00:22-- https://www.openssl.org/source/openssl-1.0.2j.tar.gz
Resolving www.openssl.org (www.openssl.org)... 23.6.16.135, ...
Connecting to www.openssl.org (www.openssl.org)|23.6.16.135|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5307912 (5.1M) [application/x-gzip]
Saving to: ‘openssl-1.0.2j.tar.gz’
openssl-1.0.2j.tar. 100%[===================>] 5.06M 6.67MB/s in 0.8s
2016-11-25 10:00:23 (6.67 MB/s) - ‘openssl-1.0.2j.tar.gz’ saved [5307912/5307912]
$ tar xzf openssl-1.0.2j.tar.gz
$
Вы можете сценарий его с чем-то вроде:
#!/usr/bin/env bash
VERSIONS=(z y x w v u t s r q p o n m l k j i h g f e d c b a)
for v in ${VERSIONS[@]};
do
if [[ $(wget -S --spider https://www.openssl.org/source/openssl-1.0.2$v.tar.gz 2>&1 | grep 'HTTP/1.1 200 OK') ]];
then
if [[ ! $(wget https://www.openssl.org/source/openssl-1.0.2$v.tar.gz &>/dev/null) ]];
then
echo "Downloaded openssl-1.0.2$v.tar.gz"
else
echo "Failed to download openssl-1.0.2$v.tar.gz"
fi
break
fi
done
Меня интересует только последняя версия здесь. Будет ли извлечение URL из https://www.openssl.org/source/ лучшим решением – user2650277
- 1. OpenSSL ClientHello сбой в последней версии
- 2. Получение последней версии Bootstrap
- 3. Получение последней версии из списка с разделителем Newline в BASH
- 4. Google Обязательное обновление до последней версии OpenSSL
- 5. Получение номера версии (!) Последней версии артефакта
- 6. ElasticSearch получение последней версии документа
- 7. Получение последней версии из cdnjs
- 8. Обновление версии Ruby OpenSSL?
- 9. Обновление приложения для Android до последней версии OpenSSL
- 10. PassKit - Получение последней версии прохода - ответ
- 11. Получение последней версии файла из репозитория Jackrabbit
- 12. Получение последней версии MySQL для EF6
- 13. Обновление версии openssl в guardianproject/openssl-android
- 14. bash: удалить все файлы, кроме последней версии, в имени файла
- 15. Обновление версии OpenSSL на OSX
- 16. Поиск последней версии версии PHP
- 17. Изменения версии OpenSSL в virtualenv
- 18. Получение самой последней версии файла, хранящегося в архиве.
- 19. Получение последней версии в TFS не работает должным образом
- 20. Получение последней версии для всех файлов в проекте
- 21. OpenSSL версии 0.96d или более поздней версии
- 22. Скрипт последней версии logrotate
- 23. Установка последней версии XLRD
- 24. Выбор последней версии класса
- 25. Маркировка последней версии?
- 26. Строительство последней версии Glade
- 27. Выбор по последней версии
- 28. Загрузка последней версии сборки
- 29. инвалидные datalabels в последней версии
- 30. Обновление до последней версии Git
Это не похоже на программирует вопрос, а скорее о том, как установить программные обеспечения на дистрибутиве – Aserre
@Aserre я знаю, как установить программное обеспечение родственного .... но жесткое кодирование значения версии в коде неэффективно так как я должен изменять его каждый раз, когда выходит новая версия. – user2650277
Не последняя версия всегда на ветке 'master'? вы можете проанализировать вывод 'git remote -v update', чтобы убедиться, что вы обновлены – Aserre