You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动获取并安装最新版本的libssl.so.1.1(替代低效的手动更新方式)

如何自动获取并安装最新版本的libssl.so.1.1(替代低效的手动更新方式)

我完全懂这种手动更新的痛苦!维护一堆Dockerfile时,每次都要找最新的libssl1.1版本号,旧包还动不动从镜像站下架,重复改版本号的操作真的让人崩溃。这里给你分享几个实用的Shell脚本方案,帮你自动抓取并安装最新版本的包:

方案1:本地自动更新脚本

写一个简单的Shell脚本,自动从Ubuntu安全源抓取最新的amd64版本包并安装:

#!/bin/bash

# 定义libssl1.1的源地址
SOURCE_BASE="http://security.ubuntu.com/ubuntu/pool/main/o/openssl/"

# 抓取页面内容,过滤出amd64架构的deb包,按版本号排序后取最新的一个
LATEST_DEB_FILE=$(curl -s "$SOURCE_BASE" | grep -o 'href="libssl1.1_[0-9.]*-[0-9]*ubuntu[0-9.]*_amd64.deb"' | cut -d'"' -f2 | sort -V | tail -n1)

# 下载最新包
echo "正在下载最新版本:$LATEST_DEB_FILE"
wget "$SOURCE_BASE$LATEST_DEB_FILE"

# 安装包(需要sudo权限)
sudo dpkg -i "$LATEST_DEB_FILE"

# 可选:清理下载的deb包
rm "$LATEST_DEB_FILE"

脚本说明:

  • curl -s 静默获取源页面内容
  • grep -o 提取符合命名规则的amd64 deb包链接
  • sort -V 按照版本号的语义排序(比如2.18会排在2.17后面)
  • tail -n1 取排序后的最后一个,也就是最新版本

方案2:集成到Dockerfile中

如果是要在Dockerfile里自动处理,直接把逻辑集成进去就行,避免每次手动修改版本号:

# 安装依赖工具,抓取并安装最新libssl1.1,最后清理冗余工具
RUN apt-get update && apt-get install -y --no-install-recommends curl wget dpkg \
    && SOURCE_BASE="http://security.ubuntu.com/ubuntu/pool/main/o/openssl/" \
    && LATEST_DEB=$(curl -s "$SOURCE_BASE" | grep -o 'href="libssl1.1_[0-9.]*-[0-9]*ubuntu[0-9.]*_amd64.deb"' | cut -d'"' -f2 | sort -V | tail -n1) \
    && wget "$SOURCE_BASE$LATEST_DEB" \
    && dpkg -i "$LATEST_DEB" \
    && rm "$LATEST_DEB" \
    && apt-get purge -y curl wget dpkg \
    && apt-get autoremove -y \
    && rm -rf /var/lib/apt/lists/*

适配其他架构:如果你的容器是arm64架构,只需要把脚本里的amd64替换成arm64即可。

这样以后不管版本怎么更新,脚本都会自动抓取最新的可用包,再也不用手动找版本号啦!

备注:内容来源于stack exchange,提问作者Avraam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 16:23:07