Dependency Installation for Software Projects
Here is a characterization of the various common ways there are to install the dependencies needed for a particular piece of software. For software development purposes. I'm taking a stand here and saying some ways are better than others, and I'm taking this stand based on years of experience seeing what seems to work better than others, and what causes more problems and headaches or consumes more time than others. Approximately speaking, the top-most methods are the best, descending down to the worst. One is ideal. But two also rocks. Three is doable but doesn't use humans time well, will NOT work on a headless device like a true server or embedded unit, and is prone to mistakes. The rest? All downhill from there.
all files needed are already in the repo tree at code checkout time, linked to automatically at build-time and runtime as needed; no install tasks needed, they're versioned along with your application source and go everywhere it goes
CLI script that automatically fetches, configures and installs everything needed, possibly outside the checkout tree; caching intelligently
single GUI wizard process, with clicky-clicky
multiple separate GUI wizard processes, with clicky-clicky-clicky-clicky-clicky
above plus having to manually tweak and edit random various config settings and params in GUI Control Panel and/or Terminal, clicky-clicky-clicky-clicky-tap-tap-tap-tap-toggle-tap-toggle-slide-toggle-clicky-clicky-tap-tap-clicky-tap-tap-#*%*&%*##
above and/or a binary "Registry" has been magically modified somewhere by the GUI install process, in mysterious ways with mysterious side effects, in seemingly duplicate locations, with hexadecimal jibber-jabber and/or XML, and woe unto him who does anything with just the files themselves or in Terminal without letting the Registry know --- *shoots self in head now*
AKA
the Java way (a lib subdir of jars)
the Unix way (ideally a single shell script that avoids PMS (package management system); less ideal: intelligent CLI invokable PMS)
the Mac/Windows way
the Mac/Windows way
often the Windows way, never seen it on Mac but can't rule it out ... smart BAT scripting can avoid it
the Windows way, of course ... and not sure it's avoidable for certain apps
UP