Ale*_*exW 3 python debian docker
我在 docker 中使用了一个 python 图像,并添加了一些依赖项,如下所示:
RUN apt-get update -y \
&& apt-get install -y apt-utils libsasl2-dev python3-dev libldap2-dev libssl-dev libsnmp-dev snmp-mibs-downloader
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
E: Package 'snmp-mibs-downloader' has no installation candidate
Run Code Online (Sandbox Code Playgroud)
搜索后是因为我需要一个非免费的repo添加:http : //installion.co.uk/debian/wheezy/non-free/s/snmp-mibs-downloader/install/index.html
我相信我需要编辑 /etc/apt/sources.list 并添加以下内容:
deb http://http.us.debian.org/debian jessie main contrib non-free
deb http://security.debian.org jessie/updates main contrib non-free
Run Code Online (Sandbox Code Playgroud)
但我如何通过 docker 文件做到这一点?
虽然这是正确的命令,
sed -i -e's/ main/ main contrib non-free/g' /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
如果您打算这样做,您应该将其作为第一张图片其余部分的一部分,
RUN \
sed -i -e's/ main/ main contrib non-free/g' /etc/apt/sources.list \
&& apt-get -q update \
&& apt-get -qy dist-upgrade \
&& apt-get install -qy foobar \
&& foobar whatever \
&& apt-get -qy --purge remove foobar \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists
Run Code Online (Sandbox Code Playgroud)
上面在完整的流程中显示了这个命令和其余的apt东西。
与将non-free组件添加到您的sources.list. 编辑/etc/apt/sources.listDockerfile 中的文件并替换如下所示的行:
deb http://http.us.debian.org/debian jessie main contrib
Run Code Online (Sandbox Code Playgroud)
经过
deb http://http.us.debian.org/debian jessie main contrib non-free
Run Code Online (Sandbox Code Playgroud)
您可以在 Dockerfile 中使用如下命令来执行此操作
sed -i "s#deb http://http.us.debian.org/debian jessie main contrib non-free#deb http://http.us.debian.org/debian jessie main contrib non-free#g" /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
对于 也一样security.debian.org。
| 归档时间: |
|
| 查看次数: |
2474 次 |
| 最近记录: |