如何在取消法律条款屏幕后完成 Sun JDK 的安装?

如何在取消法律条款屏幕后完成 Sun JDK 的安装?

我是 Linux 新手,在新安装的 Ubuntu 11.10 上安装 Java 时遇到了很多问题。我使用名为 R 的统计编程环境,那里的许多软件包都需要 Java(据说是 Sun 的)。我尝试了以下方法:

sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

(在此之后,我想继续(但从未走那么远):

sudo apt-get install sun-java6-jdk

此后,出现了一个窗口,标题为“配置 jre”或类似的内容。下面是一长串关于接受 Sun 条款的法律文本。我不知道如何关闭这个窗口(没有明显的选项,例如按回车键)。过了很长时间,似乎什么也没发生,我终于关闭了窗口。之后,我无法打开 synaptic。

我收到错误信息:

dpkg 已中断。您必须手动运行“sudo dpkg --configure -a”

我这样做了。但这没有帮助。我的 Java 是一个“损坏”的程序。当我尝试从 Synaptic 中删除该程序时,我收到一条消息,提示我必须重新安装它。我不知道该怎么办。

我想安装 jdk6。同时删除系统中仍然存在的打开的 jdk。

我尝试了下面显示的清理和清除命令。接下来,我尝试从 synaptic 中删除 sun-java6-jre。我收到以下消息:E:sun-java6-jre:软件包处于非常糟糕的不一致状态 - 您应该在尝试删除之前重新安装它。当我尝试按照相关问题中建议的步骤(来自下面建议的链接)操作时,我再次尝试安装时收到以下消息:无法标记所有软件包以进行安装或升级。以下软件包具有无法解析的依赖关系。确保在首选项中添加并启用了所有必需的存储库。sun-java6-bin:依赖:sun-java6-jre 但不会安装


Eliah,感谢您的回复。我喜欢您原则性的立场以及您在提供的链接中对此的激烈辩护。我稍后会再讨论这个问题(以及关于安装 jdk7 的多种选择和意见)。我可能还必须在 R 论坛中讨论 open jdk 与 oracle jdk 的问题。但我必须首先解决在我的安装中删除损坏的 jre 程序的问题,这个问题仍未解决。我在这里展示了您建议的命令的结果:

ravi@raviM1330:~$ sudo apt-get purge sun-java6-jre sun-java6-plugin sun-java6-fonts
[sudo] password for ravi: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package sun-java6-fonts is not installed, so not removed
Package sun-java6-plugin is not installed, so not removed
The following package was automatically installed and is no longer required:
  java-wrappers
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  sun-java6-jre*
0 upgraded, 0 newly installed, 1 to remove and 26 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
dpkg: error processing sun-java6-jre (--purge):
 Package is in a very bad inconsistent state - you should
 reinstall it before attempting a removal.
Errors were encountered while processing:
 sun-java6-jre
E: Sub-process /usr/bin/dpkg returned an error code (1)
ravi@raviM1330:~$ 

我现在很高兴地报告,我安装 sun jdk6 时遇到的问题现已解决。实际上,我自己并没有做太多事情。我只是运行了更新管理器,这解决了安装中断的问题。加载了新程序。在这次更新进行到一半时,带有法律条款屏幕的窗口再次出现。这一次,我可以勾选其中一个框,表明我接受条款(以前没有这样的框,或者至少我没有找到它)。之后,我回到 synaptic,从与 sun jdk6 关联的 PPA 中选择其余项目并安装它们。

剩下的唯一步骤是删除打开的 jdk(从 ubuntu 软件中心),然后根据 R(我需要 Java 的统计编程环境)的要求配置 Java。我通过运行以下命令完成此操作:R CMD javareconf。这在 /etc/R 中设置了 java 配置。

答案1

首先,您应该知道ferramroberto/javaPPA 不再包含最新版本的 Oracle Java 6(可能永远不会包含,因为 Oracle 更改了许可条款,因此新版本可能不会以这种方式分发)。此外,Oracle Java 7 已发布。因此,如果您想使用专有版本的 Java(尽管 OpenJDK 是免费的开源软件,大多数时候运行良好,并且可以通过官方的、自动启用的 Ubuntu 软件源获得),最好从Oracle 网站。(请参阅第 13 篇帖子这个问题,以及其中的链接,了解详情。)

话虽如此,生化鲨回答apt-get purge仅清除正在删除的软件包中的文件,给出的命令实际上并未告诉软件包管理器删除任何软件包。此命令应该足够了(您不需要执行apt-get clean,这会删除缓存的 .deb 软件包,而不是配置文件):

sudo apt-get purge sun-java6-jre sun-java6-plugin sun-java6-fonts

然后您应该能够重新安装 Java,并且在执行此操作时系统应该提示您阅读并签署许可协议。

答案2

尝试这个:

sudo apt-get clean && sudo apt-get purge

如果您的软件包损坏,此方法应该可行。然后重新安装。

相关内容