【问题标题】:Getting apt-get on an alpine container在高山容器上使用 apt-get
【发布时间】:2019-04-22 16:55:28
【问题描述】:

我必须在我的 docker 容器上安装一些依赖项,我想使用 python:3.6-alpine 版本让它尽可能轻,但是 alpine 附带的 apk 包管理器给我带来了麻烦,所以我想获取 apt-get 包管理器。我试过了:

apk add apt-get

它没有工作。

我怎样才能把它放在容器上?

【问题讨论】:

  • apk 是 alpine 上的默认 package manager。你不需要apt
  • 你想安装什么给你的apk带来麻烦?
  • @JulioDanielReyes apk 没有像 php-gearman 这样的所有包
  • 它有 php7-gearman 包。您只需添加此处指定的其他存储库unix.stackexchange.com/a/491257。然后 apk update && apk add php7-gearman 应该可以工作...
  • >"你想安装什么给你的 apk 带来麻烦?" - 它停止安装 python。

标签: docker apt-get apt alpine


【解决方案1】:

出于多种原因,使用多个软件包系统通常是一个非常糟糕的主意。包裹很可能会发生碰撞和损坏,您最终会遇到比开始时更大的混乱。
有关更多详细信息,请参阅这个出色的答案:Is there a pitfall of using multiple package managers?

更可行的方法是对apk 进行故障排除和解决您遇到的问题。 apk 是为简单和快速而设计的,应该花很少的时间来适应。它真的是一个优秀的包管理器,IMO。

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

如果您决定不使用apk,并且为了实验,想尝试使用apt,作为第一步,您必须首先从源代码:@987654323 构建apt @。然后,如果它生成一个功能构建(不太可能,因为它可能与 musl libc 不兼容),您必须将它连接到一些存储库,但 Alpine 存储库仅适用于 apk,而不适用于 apt。如您所见,这并不真正可行,也不是您想去的路线。

【讨论】:

  • 这很公平,但这让我开始思考 - 为什么这与使用 pip 以及每个人都使用的其他包管理器(pip 是 python 包管理器)有什么不同?
  • Python 有自己的包系统,由pip 管理,而apkapt 管理Linux 系统二进制文件和程序。 pip 效果仅限于 Python 程序的范围。可以这样想——如果 pip 出现问题,Python 可能会出现问题,但如果 apkapt 出现问题,你的整个 Linux 系统可能会出现问题。
  • @NotSoShabby 或者换句话说,pipapk / apt 正交——它们是相互独立的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多