Ubuntu – Why isn’t there a useful JBoss package

jbosspackage-management

Why isn't there a JBoss package available? Tomcat is well-served, but what passes for a jboss package in Ubuntu is completely useless.

EDIT

Since people answering don't seem to have bothered looking into the package in question, let me detail my answer by showing it:

$ dpkg -L jbossas4
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/jbossas4
/usr/share/doc/jbossas4/README.Debian
/usr/share/doc/jbossas4/copyright
/usr/share/doc/jbossas4/changelog.Debian.gz
/usr/share/java
/usr/share/java/jboss-run-4.2.3.GA.jar
/usr/share/java/jboss-shutdown-4.2.3.GA.jar
/usr/share/java/jboss-run.jar
/usr/share/java/jboss-shutdown.jar

$ cat /usr/share/doc/jbossas4/README.Debian
jbossas4 is currently in a very alpha stage of packaging. I can be used
to build other libraries depending on JBoss like libhibernate3-java but
it is not complete and cannot be used as an application server yet.

 -- Torsten Werner <twerner@debian.org>  Mon, 19 Nov 2007 16:53:36 +0100

Best Answer

Having attempted to package jboss myself, I'm pretty sure I know why there isn't a good package for it.

  1. Business requirements. It's an "enterprise-ish" RedHat product. Ubuntu is a Debian-esque distribution. So, not many people use it on Ubuntu or Debian, because most people who want the "enterprise" bit of it also want the enterprise support, and figure it's better to just go RedHat all the way.

  2. Stricter requirements. Have you taken a look at the tomcat package? It's a mess. All over the place. The Tomcat tarball distribution (and the RedHat package, for that matter) place everything in /usr/share, last I checked, which was a couple years ago. The Debian/Ubuntu packages, in contrast, have the variable data in /var/lib/tomcat* (CATALINA_HOME), the static java libraries in /usr/share/tomcat* (TOMCAT_HOME), the JNI's in /usr/lib/tomcat*, and use symlinks to tie it all together. This is because the Debian package is designed to have a single tomcat installation be able to serve multiple running tomcat instances, and because the packaging requirements are much more strict for Debian/Ubuntu and actually insist that configuration is in /etc, variable data is in /var, and so on. RedHat has no such requirements, and the JBoss distribution rather lumps it all together in a way that is difficult to parcel out.

  3. Perfectionism in the face of poor/nonexistent documentation. If you look at the Debian/Ubuntu packages for libjboss-*, you'll see that all the libraries are separate packages. This is because they're not actually a single product, but a collection of them, that just happen to work together. In the standard JBoss tarball, you have "default" and "all" (and "minimal", I think...) that are a few "example" combinations...but many combinations are actually possible. I'm certain the packager knows this, and is trying to make a way to only install those libraries you need in the system JBoss installation, as is good practice (but hardly ever followed, in the case of JBoss, where nearly everyone just uses the "all" example).

  4. Difficulty of integration. There are no service start scripts that are anywhere near the level of sophistication that is normal in Ubuntu. The server process itself just spits to stdout, even. You'd need to find ways of redirecting to log files, in a rotate-able manner, set up the cron/logwatch to deal with it, write the init script, etc. This is not trivial, especially considering that JBoss is a collection of "whatever" libraries the user decides to use, and is not designed with system installations in mind -- it's clearly a "run this out of your home directory" type of setup, out of the box.

  5. Lack of need. The tarball, placed in /opt, perhaps with checkinstall, does the job for anyone who actually does large-scale deployments. If you're doing large-scale deployments, you typically have your own package repository anyway, so one more isn't much of an issue. There just isn't enough need to make a good package for it.

That said, I've been working on making on such a package. I've been "working on it" for two years, though I actually need it now. Hopefully, there will be a PPA for it soon. :-) If you have done .deb packaging before, and know JBoss internals, perhaps we can collaborate.

Related Question