我安装了openSUSE 13.1,我想安装Oracle jdk。我的目的是首先卸载 open_jdk/ice tea 的东西,因为无论如何我都不需要它们,但似乎在没有安装其他非 Oracle java 包的情况下我无法卸载它们。
us...r@linux-rvhj:/tmp/mc-junip> sudo zypper rm java-1_7*
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following 4 NEW packages are going to be installed:
gcc48-gij gcc-gij java-1_5_0-gcj-compat libgcj48
The following 3 packages are going to be REMOVED:
icedtea-web java-1_7_0-openjdk java-1_7_0-openjdk-headless
4 new packages to install, 3 to remove.
Overall download size: 9.3 MiB. After the operation, 25.8 MiB will be freed.
Continue? [y/n/p/? shows all options] (y):
如何只卸载软件包而不被迫使用任何替代方案?为什么 zypper 会有这样的行为?为了防止其他包的依赖关系被删除的情况?
答案1
这不是直接答案(我不是 SUSE/zypper 用户),而是根据您对实际问题的描述提出的建议:“我想安装 Oracle jdk。我的目的是首先卸载 open_jdk/ice茶的东西”)。
你不需要卸载冰茶,而包管理器的麻烦是第一个迹象表明,如果您不卸载它。同时安装这两个版本并没有什么坏处,并且如果您需要的话,可以将系统配置为首选 Oracle 版本。我假设您打算直接使用来自 Oracle 的软件包,而不是某些 SUSE 非免费存储库(如果有这样的东西)。使用 Oracle 的 linuxtar.gz
软件包(就是不是标有“RPM”;请注意,如果您的系统是 64 位,则需要“x64”),然后按照解压说明进行操作。
您现在需要将该bin
目录放入可执行路径中。您可以随心所欲地执行此操作,但在系统范围内执行此操作的规范方法是将.sh
文件添加/etc/profile.d
到
export PATH=/path_to_java/bin:$PATH
您必须再次登录才能生效,然后仔细检查 w/ echo $PATH
。开头的目录将优先,因此任何调用java
现在都将调用 Oracle 版本,并且包管理器会很高兴 WRT 需要 JRE/JDK 的东西。