Mark Evenson wrote:
On 02 Dec 2014, at 17:19, Robert P. Goldman rpgoldman@sift.info wrote:
Sorry if this is a stupid question, but is there a way to install ABCL in the standard sort of location (e.g., /usr/local/bin and /usr/local/lib, etc.)?
There is no standard installation procedure for ABCL, mainly because a) we want to keep UNIX/Windows parity for which such abstraction is not trivial and b) because Java doesn’t provide built-in class-platform support for determining things easily. We rely instead on various OS package managers to somehow package the install process.
That being said, there isn’t too much to an ABCL “install”, just a wrapper script and two jar files (‘abcl.jar’ and ‘abcl-contrib.jar’). The subtlety arises from figuring out how to invoke Java, and then keeping this working when the underlying JVM gets upgraded.
I’d be willing to give up UNIX/Windows parity for a UNIX-specific installation script maintained as part of the ABCL distribution, but I don’t want to figure out how to interface with an N-multiple of methods to invoke Java locally.
Maybe my fears are not well-founded. Does anyone have suggestions for JVM specific technology? Maybe something like IZPack, but I’d like there to be a non-GUI method available as well.
I didn't want anything too fancy, just something stow-friendly. I ended up with this shell script:
#! /bin/bash -x
INSTALL_DIR=/usr/local/stow/abcl ant -Dabcl.runtime.jar.path=/usr/local/share/java/abcl/abcl.jar -Dadditional.jars=/usr/local/share/java/abcl/abcl-contrib.jar abcl.wrapper mkdir -p ${INSTALL_DIR}/bin/ cp abcl ${INSTALL_DIR}/bin/ mkdir -p ${INSTALL_DIR}/share/java/abcl/ cp dist/abcl.jar ${INSTALL_DIR}/share/java/abcl/ cp dist/abcl-contrib.jar ${INSTALL_DIR}/share/java/abcl/
I like to use the bleeding edge, so this makes it easy to build and install.
This install method is *not* robust to updating the java package. I could probably change the java to just "java" (trusting my PATH variable), but right now I trust ant to give me something reasonable.
Cheers, r