【发布时间】:2014-10-14 20:32:41
【问题描述】:
Debian Snapshot Archive 描述了能够将快照存储库添加到/etc/apt/sources.list,以便可以使用apt-get 直接从存档安装debian 二进制文件。
这听起来很简单。但是,当我按照sources.list 指向存储库的快照版本的描述配置 vanilla Debian 机器时,apt-get install 拒绝安装依赖项。比如调用:
apt-get -o Acquire::Check-Valid-Until=false update \
&& apt-get install -y --no-install-recommends r-base
导致错误:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
r-base : Depends: r-base-core (>= 2.11.1-6) but it is not going to be installed
Depends: r-recommended (= 2.11.1-6) but it is not going to be installed
Recommends: r-base-html but it is not going to be installed
E: Broken packages
apt-cache show r-base-core 等显示请求的包和版本存在,所以不清楚为什么它不简单地安装它们。
使用 Dockerfile like this 很容易说明这个问题,以便尝试从任何运行 docker 的计算机上在 vanilla Debian 版本上安装 debian 软件包。
我注意到,如果我从快照存档中获取特定的.deb 文件(例如this dockerfile),从快照存档安装就可以正常工作,但显然这不是Debian Snapshot Archive 中概述的预期方法,它说只需将存储库添加到souces.list。
【问题讨论】:
-
如果你将它扩展到列出的包,即这里的
apt-get install r-base r-base-core r-recommended并继续下去,你最终会遇到真正的或明显的包冲突。值得记住的是,Debian 制作发行版,并努力使发行版的所有内容保持一致。滚动发布(“测试”)也有效;随机跳转到某个时间点更难——因此可能会发生冲突。 -
谢谢!所以这个问题仅限于我当时选择的包裹。如果我将(早期)标准版本中的存储库添加到 sources.list,则始终安装标准版本中的旧版本。甚至
apt-cache show只显示旧版本(apt-get updateing 之后),所以它似乎忽略了快照 repos? -
您能否更新您正在使用的快照? IE。你的sources.list。您正在执行此操作的 Dockerfile sn-p 也会非常有帮助。
-
@Crackers
sources.list已链接(请参阅“使用 Dockerfile,像这样”),使用sources.list和Dockerfile指向此页面 抱歉,不是更清楚。 github.com/rocker-org/rocker-versioned/tree/master/binary/… -
由于 debian 名称,它忽略了快照存储库。我不知道为什么,但如果你使用 sid 它会起作用:“deb snapshot.debian.org/archive/debian/20101017sid main”
标签: linux debian docker apt-get