簡體   English   中英

錯誤:命令“gcc”以退出狀態失敗 - 在 docker centos 上安裝 ibm_db 時

[英]error: command 'gcc' failed with exit status - while installing ibm_db on docker centos

我正在嘗試安裝 ibm_db - python3.6 但無法安裝 pip。 在 python 2.7 上安裝成功,但在 3.6 上它拋出 gcc 錯誤

Docker 文件

RUN yum -y install python3
RUN yum install -y python34-devel python-devel centos-release-scl gcc libssl-dev openssl yum install gcc openssl-devel bzip2-devel libffi libffi-devel
RUN yum install -y python gcc gcc-c++ libgcc libstdc++ gnupg wget make git
RUN python --version
RUN which python
RUN pip --version
RUN python3 --version
RUN which python3
RUN pip3 --version

RUN python3.6 -m pip install -r scripts/requirements.txt

要求.txt

ibm_db==3.0.2
ibm-db-sa==0.3.5
SQLAlchemy==1.3.18

日志

08-Aug-2020 07:57:40        building 'ibm_db' extension
08-Aug-2020 07:57:40        creating build/temp.linux-x86_64-3.6
08-Aug-2020 07:57:40        gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Iclidriver/include -I/usr/include/python3.6m -c ibm_db.c -o build/temp.linux-x86_64-3.6/ibm_db.o
08-Aug-2020 07:57:40        ibm_db.c:27:20: fatal error: Python.h: No such file or directory
08-Aug-2020 07:57:40         #include <Python.h>
08-Aug-2020 07:57:40                            ^
08-Aug-2020 07:57:40        compilation terminated.
08-Aug-2020 07:57:40        error: command 'gcc' failed with exit status 1
08-Aug-2020 07:57:40        
08-Aug-2020 07:57:40        ----------------------------------------
08-Aug-2020 07:57:40    Command "/usr/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-fvpot_ia/ibm-db/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-yrktaypy-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-fvpot_ia/ibm-db/
08-Aug-2020 07:57:42    The command '/bin/sh -c python3.6 -m pip install -r scripts/requirements.txt' returned a non-zero code: 1
08-Aug-2020 07:57:42    make: *** [build] Error 1

下面的 Dockerfile 是用於當前版本的 ibm_db 和 ibm_db_sa 的映像,以及用於 centos7 的 SQLAlchemy。

它適用於 x64 架構,無需編譯 ibm_db。

更改 Dockerfile 以省略映像中不需要的包。 較小的圖像可以更快地構建並使用更少的存儲空間。

此 Dockerfile 顯示了將預配置的db2dsdriver.cfg復制到默認位置的映像的可選步驟。

這讓我在使用 python ibm_db 之前,可以在容器中使用db2cli來確保與數據庫的連接。

db2cli 需要 LD_LIBRARY_PATH 來包含 clidriver\lib 目錄,以確保 db2cli validate 將運行。

 FROM centos:7


     RUN yum install -y \
       pam-devel \
       pam.i686 \
       libaio \
       libstdc++-devel.i686 \
       numactl-libs \
       gcc \
       gcc-c++ \
       ksh \
       numactl \
       file \
       kernel-devel \
       vi \
       sudo \
       util-linux \
       which \
       openssh-clients \
       zip \
       unzip \
       python3 \
       python3-devel \
       libssl_dev \
       openssl \
       openssl-devel \
       bzip2-devel \
       libffi \
       libffi-devel \
       libgcc \
       wget \
       make \
       git \
       libxml2 \
       && yum -y update \
       && yum clean all \
       && python3 -m pip install --upgrade pip \
       && python3 -m pip install ibm_db \
       && python3 -m pip install ibm_db_sa 
    
    ENV LD_LIBRARY_PATH="/usr/local/lib64/python3.6/site-packages/clidriver/lib:${LD_LIBRARY_PATH}"
    
    # Optional - copy a preconfigured db2dsdriver.cfg to the image default location for db2cli to work
    COPY db2dsdriver.cfg /usr/local/lib64/python3.6/site-packages/clidriver/cfg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM