oracle-java8-installer 导致“apt”删除?

Lan*_*oli 14 apt java

自从第一个 alpha 版本发布以来,我一直在运行,每天更新。我还从 WebUpd8 PPA 安装了 oracle-java7-installer。今天我在 dist 升级过程中注意到 oracle-java7-installer 被删除了。在我的边缘系统上,我只允许所有默认值,所以我允许删除,但无论如何都希望尝试使用 java 8 版本。但是,当我去安装 oracle-java8-installer 包时,它想删除“apt”!?这显然引起了我的担忧,因为它甚至感觉像是一个安全问题。帮助理解这一点将不胜感激。

$ sudo apt-get install oracle-java8-installer
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  visualvm ttf-baekmuk ttf-unfonts ttf-unfonts-core ttf-kochi-gothic ttf-sazanami-gothic ttf-kochi-mincho ttf-sazanami-mincho
  ttf-arphic-uming
The following packages will be REMOVED:
  apt apturl nautilus-share python3-software-properties software-center software-properties-common software-properties-gtk
  ubuntu-extras-keyring ubuntu-minimal unattended-upgrades
The following NEW packages will be installed:
  oracle-java8-installer
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 1 newly installed, 10 to remove and 0 not upgraded.
Need to get 18.7 kB of archives.
After this operation, 7,838 kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
 ?] 
Run Code Online (Sandbox Code Playgroud)

And*_*y S 8

'apt' 包 ChangeLog 中引用的最近更改似乎是罪魁祸首:

apt (0.9.15.4ubuntu4) trusty; urgency=low

  Cherry pick fixes from the apt 1.0 branch:

  [ Michael Vogt ]
  * add sun-java{5,6}-jdk to breaks/replaces as that provided a "apt"
    binary as well
Run Code Online (Sandbox Code Playgroud)

oracle-java8-installer 包“提供”了“sun-java6-jdk”包,所以这个冲突会冒泡并阻止我们安装 WebUpd8 包——即使 oracle-java7-installer 和 oracle-java8-installer 实际上都不是安装 apt 更改日志中提到的有问题的“apt”二进制文件。

我继续为此提交了一个错误报告:https : //bugs.launchpad.net/ubuntu/+source/apt/+bug/1302736


Ava*_*ava 7

Andy S 在这里有潜在的问题,我希望很快就能解决。请使用他提供的错误报告链接,并指出它也会影响您,以便获得更高的优先级。

如果您实在等不及了,这里有一个临时的解决方法来忽略依赖问题并强制安装:

  • 从 apt 下载 .deb 包 sudo apt-get download oracle-java7-installer

  • 安装你刚刚下载的 .deb 文件,忽略 apt 抱怨的任何依赖项: sudo dpkg -i --ignore-depends=apt file-you-just-downloaded.deb

两个注意事项:

  1. 通过相应地更改上面的命令,您可以类似地将它用于 Java 8。
  2. 至少目前,您的 apt 会认为它的依赖项已损坏并请求删除 oracle-java7-installer。您可以使用apt-get -f install.