apt-get install因Not Found错误而失败,因为从存储库中删除了包

时间:2016-01-13 22:26:39

标签: ubuntu-14.04 apt-get libpng

我一直试图在Ubuntu Trusty Tahr上安装软件包r-base,并且上周已经破坏了软件包依赖。

我的命令如下:

apt-get update -y
apt-get dist-upgrade -y
apt-get install -y r-base-dev
...
Err http://archive.ubuntu.com/ubuntu/ trusty-security/main libpng12-dev amd64 1.2.50-1ubuntu2.14.04.1
  404  Not Found [IP: 91.189.91.23 80]
Fetched 92.8 MB in 28s (3262 kB/s)
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-dev_1.2.50-1ubuntu2.14.04.1_amd64.deb  404  Not Found [IP: 91.189.91.23 80]

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
The command '/bin/sh -c sudo apt-get install -y r-base-dev' returned a non-zero code: 100

我试图通过--fix-missing--ignore-missing,但仍然失败。

由于安全补丁,该软件包似乎于2016年1月8日被删除:https://launchpad.net/ubuntu/+archive/primary/+sourcepub/5711916/+listing-archive-extra

查看http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/确认ubuntu2.14.04。 1 文件不存在,但1.2.50-1ubuntu2.14.04。 2 存在。< / p>

我该如何解决? 我的目标是让r-base安装。

如果我能以某种方式使它使用版本&#34; 2&#34;文件而不是&#34; 1&#34;它可能会找到文件并快乐地进行,但我不确定如何使apt-get这样做。

或者,也许可以更新我身边的依赖列表?或者由r-base维护者来决定吗?

或者第三,是否可以添加仍具有旧包的存储库?我没有在AMD处理器上运行,所以无论如何我都不需要在运行时使用这个特定的软件包。

更新 对我有用的解决方案是显式删除具有破坏的依赖关系的包,下载更新的版本,然后在运行apt-get update之前重新安装它。

$ apt-get remove -y libpng12-0
$ curl -O http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.50-1ubuntu2.14.04.2_amd64.deb
$ dpkg -i libpng12-0_1.2.50-1ubuntu2.14.04.2_amd64.deb
$ apt-get update -y

问题显然与r-baser-base-dev个包没有太大关系,即使r-base-dev偶然取决于libpng12

1 个答案:

答案 0 :(得分:1)

在我看来,这个问题可能会在几天内解决。但是,如果你不能等待,这就是你能做的。

首先,找出要安装的软件包的libpng版本取决于。

$ apt-cache depends r-base
r-base
  Depends: r-base-core
  Depends: r-recommended
  Recommends: r-base-html
  Recommends: r-doc-html
  Suggests: ess
 |Suggests: r-doc-info
  Suggests: r-doc-pdf

r-base本身不依赖于libpng,但r-base-core可能会依赖{。}}。

$ apt-cache depends r-base-core | grep png
  Depends: libpng12-0

现在我们想知道libpng

的具体版本
$ apt-cache show r-base-core
... libpng12-0 (>= 1.2.13-4) ...

如果您在Ubuntu的存储库中找到此软件包,则可以 下载并尝试手动安装。

$ wget <url>
$ sudo dpkg -i <filename>

然后使用r-base安装apt-get install r-base。但是如果dpkg 拒绝安装libpng你不应该强迫它,因为它意味着 package不可安装,它会破坏其他依赖项。