1

I tried to update my Java installation on a SLES 11 SP3 system using

rpm -i jre-8u51-linux-x64.rpm

(for some reasons I want to run the original Java and not the IBM Java provided by SUSE) and I got the following error message:

error: Failed dependencies:
    /usr/sbin/alternatives is needed by jre1.8.0_51-1.8.0_51-fcs.x86_64

I see that SLES 11 has /usr/sbin/update-alternatives in place of /usr/sbin/alternatives. I am not versed with the details of rpm packaging, how can I fix the rpm package to install on my box? Please give the details, not only the greater picture.

P.S. The java installation is meant for a servlet container (Apache tomcat) running some services including a Fedora Commons repository.

EDIT (update): With jre-8u65-linux-x64.rpm the dependencies are no longer needed, but the rpm still needs /usr/sbin/alternatives to complete sucessfully (so either provide it as a softlink or edit the rpm file as described in the accepted answer).

1
+50

A few caveats here:

  • The below article assumes you're using Firefox as your browser.
  • If you have more than one browser, update Step 4 appropriately.
  • The article may be the wrong Service Pack, but this should get you started.

From the Novell Knowledgebase Article 7010472: (Quoted)

Disclaimer

This Support Knowledgebase provides a valuable tool for NetIQ/Novell/SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.

Situation

As a result of a license change SUSE is no longer able to provide Oracle/Sun Java in the distribution or through the update channels. As a result Java will need to be downloaded from the java.com site and manually installed.

This also means that we cannot provide support for Oracle Java. Any support issues should be directed to Oracle. The following information is provided as a potential solution but is not guaranteed.


Resolution

  1. Use YaST -> Software -> Software Management and remove all previous versions of Java (e.g. java-1_6_0-sun, icedtea-web). Do not remove the openjdk version of Java if you have it installed. This is required for Java functionality in LibreOffice.

  2. Download Oracle Java

    Check if you have i586 or x86_64 version of Mozilla Firefox (this can be different from the architecture of the system). The easiest way is to open a console and type:

    rpm -q --queryformat '%{arch}\n' MozillaFirefox

    If x86_64 appears, use the version marked as "Linux x64 RPM".

    Visit http://java.com/ and click on Free Java Download. Download the "Linux RPM" (32 bit) or "Linux x64 RPM" (64 bit) as appropriate.

  3. As the root user install the downloaded rpm from a terminal by using the command:

    rpm -Uvh <file-name>

    Of course replace with the path and name of the rpm file downloaded from java.com.

  4. Enable the plugin for Firefox.

    Logged in as the user that will be running firefox open a terminal window and do the following:

    mkdir -v ~/.mozilla/plugins (if it already exists that's okay)

    rm ~/.mozilla/plugins/libnpjp2.so

    ln -s /usr/java/jre1.7.0_05/lib/amd64/libnpjp2.so ~/.mozilla/plugins/ (The "jre1.7.0_05" will need to match the version just installed)

  5. Close all instances of the Firefox browser then open it up again.

    Browse to http://java.com/en/download/installed.jsp to verify that java is installed properly.


Update

After reading the forum mentioned in my comments, it was decided that the following approach works (See Page 2 Post by rjfleck):

Use rpmrebuild Make sure you are not root, as you want the modified rpm in your user directory.

Set your favorite editor e.g.

setenv EDITOR xemacs

or alternatively:

EDITOR=xemacs;export EDITOR 

If EDITOR isn't set it will default to vi. See the rpmrebuild manpage.

rpmrebuild -e -p jdk-<version>-linux-x64.rpm
  1. After the rpm is unpacked, your chosen EDITOR should open. Use the Search and Replace function of the chosen editor to replace all occurrences of alternatives with update-alternatives.
  2. Save and Exit the updated file, and the rpm should be repackaged.
  3. Answer Y if asked to continue.

it should output where the rpm was saved to e.g.

/usr/people/<your username>/rpmbuild/RPMS/x86_64/jdk-<version>-fcs.x86_64.rpm
6
  • I see I should improve my question. It is the step rpm -i jre-8u51-linux-x64.rpm that fails with jre-8u51 (it works with the releases bofore that) – jk - Reinstate Monica Oct 6 '15 at 10:26
  • 1
  • The quoted forum indeed offers a "working" solution: Patch your system by creating a softlink /usr/sbin/alternatives and installing the rpm with the --nodeps flag ... this is twice unclean: I have to remember and maintain the little system patch (the softlink), and there could be other resolvavable dependencies to be ignored. I'd like to have a more clean approach. – jk - Reinstate Monica Oct 8 '15 at 17:30
  • For a Cleaner Approach you would need to repackage the RPM, which was also suggested in the forum. – eyoung100 Oct 8 '15 at 19:39
  • 1
    Or an even cleaner approach: install the .tar.gz version from Oracle (that actually involves simply unpacking the archive file) into a directory, and link the plugin .so into your browser, and that's is. – Laszlo Valko Oct 9 '15 at 12:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.