8

I recently set up a build server that requires a JDK to run (for example, to compile the Java sources). The OpenJDK package in Ubuntu pulls in the OpenJDK JRE as a dependency which, in turn, depends on a large number of packages that are only relevant for graphical environments. For the standard JRE, there's a headless version of the package, but for the JDK, no.

This issue has been discussed in various places before, and one solution that I found and used was this:

$ apt-get --no-install-recommends -d install openjdk-6-jdk
$ dpkg -i --ignore-depends=openjdk-6-jre /path/to/just-downloaded.deb

While this worked, it now leaves my system with a broken dependency tree and apt-get refuses further installs untill I run apt-get -f.

Is there a better solution to this?

Hanno Fietz
  • 1,062

3 Answers3

4

This has been discussed in the following ubuntu bug.

As far as I can see you have the following options:

  1. Use the non-free Java JDK from Sun. (You can use the JavaPackage program from debian/ubuntu to create a deb pacakge of the non-free java JDK).
  2. Work with ubuntu developers to solve this issue.
  3. Create your own OpenJDK-headless package.

Of course, option 2 is the best in the long term, as it solves the problem for everyone, and options 1 and 3 solve it only for you, however 1 and 3 are quicker.

Tom Feiner
  • 18,598
2

Couldn't you just download and install Sun's JDK? No compiling, no X11 required. I prefer it to the packaged options.

chmod +x ~/jdk-6u14-linux-i586.bin
cd /usr
sudo mkdir java
cd java
sudo ~/jdk-6u14-linux-i586.bin
export JAVA_HOME=/usr/java/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
0

I suspect he just needed to update his etc-alternatives links:

update-alternatives --set java /usr/lib/jvm/default-java/bin/java

(or something like that)

djangofan
  • 4,230