如何像这样 `https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.2.1/kafka_2.11-0.8 wget url .2.1.tgz` 在 CentOS 7 上

How to wget url like this `https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz` on CentOS 7

基本环境:

[root@0b3608de9c84 tmp]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

我想在 Dockerfile 中安装 Kafka,下面是我的 Dockerfile 指令:

#choose scala and kafka version
ENV KAFKA_VERSION="0.8.2.1" SCALA_VERSION="2.11"

#install kafka
RUN cd /tmp && wget https://www.apache.org/dyn/closer.cgi?path=/kafka/$KAFKA_VERSION/kafka_$SCALA_VERSION-$KAFKA_VERSION.tgz && tar xf kafka_${SCALA_VERSIO    N}-${KAFKA_VERSION}.tgz -C /opt && rm kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz

我知道https://www.apache.org/dyn/closer.cgi?path=/kafka/$KAFKA_VERSION/kafka_$SCALA_VERSION-$KAFKA_VERSION.tgz(或https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz)不是真正的资源address.Can你帮我使用wget和Kafka网页上的URL正确安装Kafka?

正如您所指出的,https://www.apache.org/dyn/closer.cgi?path=/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz 不是真实地址。相反,它链接到一个靠近您位置的镜像站点,例如,我住在爱尔兰,所以 ftp.heanet.ie 是离我位置最近的镜像站点。

您应该(手动)在 wget 命令中使用相关镜像站点的 URL,例如

wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz

另一个问题是 tar 命令的 shell 变量中的空格:

tar xf kafka_${SCALA_VERSIO    N}-${KAFKA_VERSION}.tgz

结合以上修复应该会给你类似的东西:

RUN cd /tmp && wget http://ftp.heanet.ie/mirrors/www.apache.org/dist/kafka/$KAFKA_VERSION/kafka_$SCALA_VERSION-$KAFKA_VERSION.tgz && tar xf kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz -C /opt && rm kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz