I’ve followed the main website to download the tool jar files and it’s installed into /usr/local/bin. But, seperately, I’ve downloaded and compiled clojure and tools.dep. I want to replace the old clojure with the newer compiled version. The thing is, there’s a bunch of tools.xxx repos and I’m not sure what to do to make it all look like the downloaded version. I could replace the older jar file with the newer one, but I’d like to know why the official download, with clojure-tools looks so different from a compiled version.
I’ve downloaded and compiled clojure and tools.dep. I want to replace the old clojure with the newer compiled version.
Why? What is the problem you’re trying to solve by doing that?
Apart from potential differences in what you have included in your JAR, the compilation process is AFAIK not deterministic, at the very least due to the unspecified compilation order.
If just see the size difference and want to know what’s actually different, you can extract the JAR and decompile the classes with e.g.
jd-gui or any other Java decompiler.
The system admin side of me doesn’t like that an official downloaded install script producing artifacts different from the official repo without any instructions on how to replicate the installation.
Did you look at the clojure/brew-install: Clojure CLI installer (github.com) repo? That’s the source of the CLI itself, with the exec code which is bundled into the uberjar and it should show you how to replicate the build of what’s in the CLI.
The reason there are no instructions is because there’s no expectation that anyone would do what you are trying to do (and it isn’t a supported approach).
Thanks ! I wasn’t familiar with how the different repos interacted, and the initial documentation didn’t really mention anything