我尝试使用以下命令更新 SLES 11 SP3 系统上的 Java 安装
rpm -i jre-8u51-linux-x64.rpm
(由于某些原因,我想运行原始 Java 而不是 SUSE 提供的 IBM Java)并且收到以下错误消息:
error: Failed dependencies:
/usr/sbin/alternatives is needed by jre1.8.0_51-1.8.0_51-fcs.x86_64
我看到 SLES 11 已/usr/sbin/update-alternatives
取代/usr/sbin/alternatives
.我不熟悉 rpm 打包的详细信息,如何修复 rpm 包以安装在我的盒子上?请提供详细信息,而不仅仅是大局。
PS java 安装适用于运行一些服务(包括 Fedora Commons 存储库)的 servlet 容器(Apache tomcat)。
编辑(更新):jre-8u65-linux-x64.rpm
不再需要依赖项,但 rpm 仍然需要 /usr/sbin/alternatives 才能成功完成(因此要么将其作为软链接提供,要么按照接受的答案中的描述编辑 rpm 文件)。
答案1
这里有一些注意事项:
- 以下文章假设您使用 Firefox 作为浏览器。
- 如果您有多个浏览器,请适当更新步骤 4。
- 本文可能是错误的 Service Pack,但这应该可以帮助您入门。
来自Novell 知识库文章 7010472:(引用)
免责声明
该支持知识库为 NetIQ/Novell/SUSE 客户以及对我们的产品和解决方案感兴趣的各方提供了一种宝贵的工具,以获取信息、想法并相互学习。提供的材料仅供您组织内的信息、个人或非商业用途,并“按原样”提供,不提供任何形式的保证。
情况
由于许可证更改,SUSE 无法再通过发行版或更新渠道提供 Oracle/Sun Java。因此,需要从 java.com 站点下载 Java 并手动安装。
这也意味着我们无法提供对 Oracle Java 的支持。任何支持问题都应直接联系 Oracle。以下信息作为潜在解决方案提供,但不提供保证。
解决
使用
YaST -> Software -> Software Management
并删除所有以前版本的 Java(例如 java-1_6_0-sun、icedtea-web)。如果已安装 Java 的 openjdk 版本,请勿删除它。这是 LibreOffice 中 Java 功能所必需的。下载 Oracle Java
检查您是否有 i586 或 x86_64 版本的 Mozilla Firefox(这可能与系统架构不同)。最简单的方法是打开控制台并输入:
rpm -q --queryformat '%{arch}\n' MozillaFirefox
如果出现 x86_64,请使用标记为“Linux x64 RPM”的版本。
访问http://java.com/并单击“免费 Java 下载”。根据需要下载“Linux RPM”(32 位)或“Linux x64 RPM”(64 位)。
以 root 用户身份使用以下命令从终端安装下载的 rpm:
rpm -Uvh <file-name>
当然替换为从java.com下载的rpm文件的路径和名称。
启用 Firefox 插件。
以将运行 Firefox 的用户身份登录,打开终端窗口并执行以下操作:
mkdir -v ~/.mozilla/plugins
(如果它已经存在那就可以了)rm ~/.mozilla/plugins/libnpjp2.so
ln -s /usr/java/jre1.7.0_05/lib/amd64/libnpjp2.so ~/.mozilla/plugins/
(“jre1.7.0_05”需要与刚刚安装的版本匹配)关闭 Firefox 浏览器的所有实例,然后再次打开。
浏览至http://java.com/en/download/installed.jsp验证java是否安装正确。
更新
在阅读了我的评论中提到的论坛后,决定以下方法有效(请参阅第 2 页 发表者:rjfleck):
使用rpmrebuild
确保您不是 root,因为您希望修改后的 rpm 位于您的用户目录中。
设置您最喜欢的编辑器,例如
setenv EDITOR xemacs
或者:
EDITOR=xemacs;export EDITOR
如果EDITOR
未设置,则默认为vi
.请参阅rpmrebuild 联机帮助页。
rpmrebuild -e -p jdk-<version>-linux-x64.rpm
- rpm 解压后,您选择的
EDITOR
应该会打开。使用所选编辑器的搜索和替换功能将所有出现的 替换alternatives
为update-alternatives
。 - 保存并退出更新的文件,然后重新打包 rpm。
- 如果要求继续,请回答 Y。
它应该输出 rpm 保存到的位置,例如
/usr/people/<your username>/rpmbuild/RPMS/x86_64/jdk-<version>-fcs.x86_64.rpm