我想在基于r的docker映像中安装python。当我尝试这个:
FROM r-base:3.4.1
RUN apt-get update && apt-get install -y python3
我收到错误消息:
Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
当我尝试这样做时:
FROM r-base:3.5.1
RUN apt-get update && apt-get install -y python3
我收到错误消息:
The repository 'http://deb.debian.org/debian testing Release' does not have a Release file.
如果我从jupyter笔记本基础开始,我可以同时使用R和Python,但我确实希望此图像纤细,因此我想从r-base开始。请注意,USER root也不能解决这些问题。
答案 0 :(得分:1)
这真的很奇怪,见此link
服务器deb.debian.org本身没有程序包,但是名称中有SRV记录,可以让DNS扩展并随后找到位置。
也许您的本地网络很特别,例如:
如果由于使用较旧的apt或由于使用不支持SRV记录的HTTP代理而直接访问deb.debian.org后面的服务器,则请求将HTTP重定向到CDN实例之一。如果要避免重定向,则可以直接选择一个实例。
因此,建议在Dockerfile
中添加apt的直接来源,如下所示:
FROM r-base:3.5.1
RUN echo "deb http://cdn-fastly.deb.debian.org/debian stable main" > /etc/apt/sources.list && \
echo "deb http://cdn-fastly.deb.debian.org/debian-security stable/updates main" >> /etc/apt/sources.list && \
rm -fr /etc/apt/apt.conf.d/default && \
apt-get update && apt-get install -y python3
如果您有代理人,也请在ENV http_proxy "http://your_proxy"
中添加Dockerfile
之类的内容,希望对您有所帮助。