如何获取适用于Amazon Linux 2的MS ODBC 18 Driver二进制文件以存储至Artifactory
如何获取适用于Amazon Linux 2的MS ODBC 18 Driver二进制文件以存储至Artifactory
我完全懂你现在的困境——网络限制没法走官方安装步骤,还得把驱动二进制文件存到Artifactory供流水线用,结果只找到Windows的.msi安装包,确实挺闹心的。下面给你几个可行的解决方案,都是针对Amazon Linux 2(RHEL兼容系)的:
方案一:用yumdownloader离线下载完整rpm包(最推荐)
找一台能正常访问外网的Amazon Linux 2机器(或者同架构的虚拟机),先配置微软的YUM源:- 创建repo文件:
sudo vi /etc/yum.repos.d/mssql-release.repo - 写入以下内容:
[packages-microsoft-com-prod] name=packages-microsoft-com-prod baseurl=https://packages.microsoft.com/rhel/8/prod/ enabled=1 gpgcheck=1 gpgkey=https://packages.microsoft.com/keys/microsoft.asc - 导入GPG密钥:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc - 用
yumdownloader下载驱动及所有依赖包:sudo yumdownloader --resolve msodbcsql18 mssql-tools18
这个命令会把msodbcsql18(核心驱动)、mssql-tools18(配套工具如sqlcmd、bcp)以及它们的所有依赖rpm都下载到当前目录。你只需要把这些rpm上传到Artifactory的RPM仓库,之后流水线里就能直接通过Artifactory的repo地址安装,或者下载到本地用rpm -ivh安装。
- 创建repo文件:
方案二:直接下载对应架构的rpm包
微软为Linux发行版提供了单独的RPM包下载渠道,你可以在能上网的机器上找到对应Amazon Linux 2的包:- 核心驱动包:
msodbcsql18-*.x86_64.rpm(或arm64,根据你的EC2架构选) - 配套工具包:
mssql-tools18-*.x86_64.rpm - 还要记得下载依赖包,比如
unixODBC-devel、glibc这些(可以通过rpm的依赖查询确认:rpm -qpR msodbcsql18-*.rpm)
把这些包下载后直接上传到Artifactory就行,和方案一的后续流程一致。
- 核心驱动包:
方案三:通过Docker提取文件(适合需要单独提取库文件的场景)
如果只需要驱动的核心库文件(比如libmsodbcsql-18.so),可以用Docker来提取:- 拉取Amazon Linux 2镜像:
docker pull amazonlinux:2 - 运行容器并在里面安装ODBC 18驱动(步骤参考方案一的源配置和安装命令)
- 从容器里复制出需要的文件,比如:
docker cp <容器ID>:/usr/lib64/libmsodbcsql-18.*.so ./ docker cp <容器ID>:/usr/bin/sqlcmd ./ docker cp <容器ID>:/usr/bin/bcp ./
不过这种方式需要自己整理文件结构和依赖,不如RPM包方便,毕竟RPM自带安装逻辑,流水线里用起来更省心。
- 拉取Amazon Linux 2镜像:
注意事项
- 一定要对应EC2的架构(x86_64/arm64)下载包,不然会出现安装失败或者无法运行的情况
- 务必把所有依赖包都下载完整,不然在流水线安装时会出现依赖缺失的错误
- 上传到Artifactory后,建议在流水线里配置YUM源指向Artifactory的RPM仓库路径,这样安装起来更顺畅
备注:内容来源于stack exchange,提问作者FerverSault
相关产品推荐
相关产品推荐

