如何解决在Docker中的Python Slim映像中安装GDB
我需要在Docker容器中安装pip cfgrib以便使用xarray读取.grib文件。为了安装cfgrib,我需要eccodes。要获取eccode,显然我需要一个需要gdb的fortran编译器。
事实证明,安装gdb存在问题。根据文档here,我收到一个我不完全理解的错误:
amd64-linux-nat.c:248:1: error: conflicting types for ‘ps_get_thread_area’
ps_get_thread_area (const struct ps_prochandle *ph,^~~~~~~~~~~~~~~~~~
In file included from gdb_proc_service.h:30,from amd64-linux-nat.c:30:
/usr/include/proc_service.h:72:17: note: previous declaration of ‘ps_get_thread_area’ was here
extern ps_err_e ps_get_thread_area (struct ps_prochandle *,^~~~~~~~~~~~~~~~~~
make[2]: Leaving directory '/gdb-7.11/gdb'
make[2]: *** [Makefile:1141: amd64-linux-nat.o] Error 1
make[1]: Leaving directory '/gdb-7.11'
make[1]: *** [Makefile:9157: all-gdb] Error 2
make: *** [Makefile:847: all] Error 2
包括我的Dockerfile
FROM python:3.7-slim
RUN apt update && \
apt-get install -y cmake libgtest-dev libboost-test-dev && rm -rf /var/lib/apt/lists/*
COPY eccodes-2.18.0-Source.tar.gz .
# install gdb - this is where I am getting a problem
ADD "http://ftp.gnu.org/gnu/gdb/gdb-7.11.tar.gz" gdb-7.11.tar.gz
RUN tar -xvzf gdb-7.11.tar.gz &&\
cd gdb-7.11 && ./configure && make &&\
make install &&\
cd ..\
#install fortran compiler
RUN apt-get install -y gcc-gfortran
RUN tar -xzf eccodes-2.18.0-Source.tar.gz
RUN cmake -DCMAKE_INSTALL_PREFIX=. ../eccodes-2.18.0-Source
RUN pip install xarray
RUN pip install eccodes-python
RUN pip install cfgrib
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。