我正试图在bash中的(p)5
中获取最新版本的openssl。我希望得到最新版curl的下载链接和bash中的最新版本。问题是openssl没有&# 39;在他们的github版本中使用1.0.2 series
标记。
答案 0 :(得分:1)
要获取最新的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"
答案 1 :(得分:0)
我试图在bash中获得1.0.2系列中最新版本的openssl ...
据我所知,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