I have a debian package that installs a file to
/usr/local/java is a symlink to where the jvm is actually installed, in this case
The new version of this package installs the jar elsewhere. The problem is that installing the new version causes dpkg to try and tidy up after itself, ending up deleting the
This is a deeply undesirable state to be in, even temporarily.
I haven't been able to find the flag for dpkg that will persuade it to leave the symlink in place, and it does not appear to be possible to set the immutable bit on symlinks.
Here are the changes to the debian packaging config:
diff --git a/debian/dirs b/debian/dirs --- a/debian/dirs +++ b/debian/dirs @@ -1 +1 @@ -usr/local/java/jre/lib/ext +usr/share/java diff --git a/debian/rules b/debian/rules --- a/debian/rules +++ b/debian/rules @@ -30,7 +30,7 @@ install: build # Add here commands to install the package into debian/tmp. # $(MAKE) pure_install - cp thejar.jar $(TMP)/usr/local/java/jre/lib/ext + cp thejar.jar $(TMP)/usr/share/java # Build architecture-independent files here. binary-indep: build install
I imagine that leaving
dirs would have the desired effect, but this is just kicking the problem down the road - I'd rather that this package not be responsible for maintaining the symlink.
So: what are my options?