在Alpine容器上获取apt-get

56

我需要在我的docker容器上安装一些依赖项,我想使用python:3.6-alpine版本以使其尽可能轻巧,但是与alpine一起提供的apk包管理器给我带来了麻烦,因此我想获取apt-get软件包管理器。 我尝试过:

apk add apt-get

它没有起作用。

我怎样才能将它放到容器中?


5
apk是阿尔派Linux上的默认软件包管理器。您不需要使用apt - lependu
1
你想安装什么apk出了问题? - Julio Daniel Reyes
@JulioDanielReyes apk没有所有的包,例如php-gearman - SP Singh
它有php7-gearman包。您只需要添加此处指定的其他存储库https://unix.stackexchange.com/a/491257。然后,`apk update && apk add php7-gearman`应该可以工作... - Julio Daniel Reyes
“你想安装什么apk出了问题?” - 它停止安装Python了。 - Ark-kun
1个回答

48

使用多个软件包管理系统通常是一个非常糟糕的想法,原因有很多。软件包很可能会相互冲突和破坏,你最终会陷入比开始时更大的混乱中。
详见这个出色的答案:使用多个软件包管理器存在什么陷阱?

一个更可行的方法是解决您使用 apk 遇到的问题。 apk 旨在简单快速,并且应该很容易上手。在我看来,它真的是一个出色的软件包管理器。

对于一个好的教程,我强烈推荐 Alpine Wiki 网站上的 apk 介绍页面:https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management

如果你决定不使用 apk,并且想要尝试使用 apt 作为实验,那么作为第一步,你需要先从源代码构建 apthttps://github.com/Debian/apt。然后,如果它能产生一个功能性的版本(很可能不兼容 musl libc),你还需要将其连接到一些软件源,但是 Alpine 的软件源只适用于 apk,而不适用于 apt。如你所见,这并不现实,并且不是你想要走的路线。


2
这很公平,但这让我想到了 - 为什么这与使用pip以及其他软件包管理器(pip是Python软件包管理器)不同,而每个人都在使用呢? - NotSoShabby
4
Python有自己的包管理系统,由pip管理,与管理Linux系统二进制文件和程序的apkapt不同。 pip 的影响仅限于Python程序的范围内。可以这样想——如果pip中发生了问题,可能会导致Python出现问题,但如果apkapt发生故障,整个Linux系统可能会崩溃。 - valiano
4
换句话说,pipapk / apt 是正交的 - 它们彼此独立。 - valiano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接