首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RHEL 8容器MSSQL驱动程序e2fsprogs

RHEL 8容器MSSQL驱动程序e2fsprogs
EN

Stack Overflow用户
提问于 2020-08-05 09:54:21
回答 4查看 2.3K关注 0票数 7

我正在尝试使用RHEL 8 UBI构建一个定制的码头容器。作为其中的一部分,我想安装MSSQL 17 ODBC驱动程序。我遵循了Microsofts文档中概述的步骤:https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15#redhat17

并将Microsoft添加到我的yum.repos.d目录中,但是,当我试图构建容器时,会得到以下错误:nothing provides e2fsprogs needed by msodbcsql17-17.6.1.1-1.x86_64

当我深入研究这个问题时,它看起来就像是RHEL 7,微软建议手动安装e2fsprogs,您可以在这里看到:https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15#offline-installation

不幸的是,这在RHEL 8中是不可能的,因为e2fsprogs-静态已被删除:更改包

生成的全部输出如下:

代码语言:javascript
复制
$  docker build -f ./test.dockerfile -t daark:1 .
Sending build context to Docker daemon  25.77MB
Step 1/7 : FROM registry.redhat.io/ubi8/ubi
 ---> a1f8c9699786
Step 2/7 : RUN curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
 ---> Using cache
 ---> 90b3e1514239
Step 3/7 : RUN yum search odbc
 ---> Using cache
 ---> b26f78d0da28
Step 4/7 : RUN yum search msodbcsql17
 ---> Using cache
 ---> c6f7751b97dc
Step 5/7 : ENV ACCEPT_EULA=Y
 ---> Using cache
 ---> 2b0003944673
Step 6/7 : RUN yum install -y unixODBC unixODBC-devel
 ---> Using cache
 ---> 1d0b8c594905
Step 7/7 : RUN yum install -y msodbcsql17
 ---> Running in 67c30e75fb42
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:08:11 ago on Wed Aug  5 09:36:32 2020.
Error:
 Problem: cannot install the best candidate for the job
  - nothing provides e2fsprogs needed by msodbcsql17-17.6.1.1-1.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
The command '/bin/sh -c yum install -y msodbcsql17' returned a non-zero code: 1

这个错误是可以复制的,这里是我用来调试的测试dockerfile

代码语言:javascript
复制
FROM registry.redhat.io/ubi8/ubi
RUN curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
RUN yum search odbc
RUN yum search msodbcsql17
ENV ACCEPT_EULA=Y
RUN yum install -y unixODBC unixODBC-devel 
RUN yum install -y msodbcsql17

有人成功地将此ODBC驱动程序安装在基于RHEL 8 UBI的容器上吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-08-02 13:14:15

最新的msodbcsql17版本解决了这个问题。文档步骤再次顺利工作。请参阅docs问题

票数 1
EN

Stack Overflow用户

发布于 2020-08-05 10:46:44

我在周围找到了一份工作,希望能帮助下一个人做到这一点。我没有运行yum install -y msodbcsql17,而是使用yum下载RPM yum download -y msodbcsql17,然后使用rpm -Uvh --nodeps msodbcsql17*rpm来安装它。

您可以使用这个停靠文件:

代码语言:javascript
复制
FROM registry.redhat.io/ubi8/ubi
RUN curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
RUN yum search odbc
RUN yum search msodbcsql17
ENV ACCEPT_EULA=Y
RUN yum install -y unixODBC unixODBC-devel 
RUN yum download -y msodbcsql17
RUN rpm -Uvh --nodeps msodbcsql17*rpm
票数 5
EN

Stack Overflow用户

发布于 2021-05-11 21:43:20

@daark感谢您发布解决方案。你的解决方案让我克服了我面临的问题。我结束了将您的解决方案修改为以下内容(万一它对其他人有所帮助):

代码语言:javascript
复制
FROM registry.access.redhat.com/ubi8/python-38

USER root
RUN yum update --assumeyes && \
  yum install --assumeyes \
    unixODBC-devel \
  && yum clean all

RUN curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
RUN yum download -y msodbcsql17
RUN ACCEPT_EULA=y rpm -Uvh --nodeps msodbcsql17*rpm

我试图将它作为注释添加到@daark的解决方案中,但是很难正确地显示代码。

祝其他面临这一问题的人好运

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63262668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档