4 ms·
stow was a really useful tool for me once at work. I had a "local" usr/* in my home directory for custom packages I'd install. Occasionally I'd need to swap dif
by BeetleB 3y ago
stow was a really useful tool for me once at work. I had a "local" usr/* in my home directory for custom packages I'd install. Occasionally I'd need to swap different versions of the same library, etc. stow made the process a lot more manageable.
- saghm 3y agoI've found it useful occasionally for when I've needed to install something via source that didn't include an "uninstall" target in their build configuration. Being able to "unstow" all of the symlinks will clean up all of the system directories, at which point you can just delete the entire folder where the actual installation occurred if you don't want to keep it around at all.
- BeetleB 3y agoExactly!
- mistrial9 3y agoI saw a german after-midnight guy setup postgresql like this once, on linux.. rather quickly ;-) All the significant system parts were in an alternate LD_LIBRARY_PATH plus the postgresl libs
- Karellen 3y ago> I had a "local" usr/* in my home directory I always just used `--prefix="$HOME"` so that everything went into `~/bin`, `~/lib`, `~/man`, etc... I did look into stow a couple of times, and would have been fine with it dropping symlinks going into those dirs if I'd have used it. (A few years after XDG started being commonly used I moved everything in my `~/etc` into `~/.config`, and `~/etc` is now a symlink to it. I occasionally wonder if doing it the other way around and setting up XDG_CONFIG_DIR would be more old-skool, before catching my reflection in my monitor and realising how daft that thought is.)
- BeetleB 3y ago> I always just used `--prefix="$HOME"` so that everything went into `~/bin`, `~/lib`, `~/man`, etc... Forgive my ignorance, but how do you uninstall stuff a year or two later?
- oarsinsync 3y ago`rm`, everything’s contained within your homedir.
- fransje26 3y agoDon't forget the `-fr *` parameters.
- BeetleB 3y agoWith the described setup: > I always just used `--prefix="$HOME"` so that everything went into `~/bin`, `~/lib`, `~/man`, etc... You can't just use rm as a blunt instrument. ~/bin will contain lots of binaries from lots of packages. You want to uninstall only one package. How do you know which files correspond to that package?
- Karellen 3y ago`make uninstall` (If a project's build system does not provide an "uninstall" target (coughcmakecough) then the project likely has other deficiencies and should be avoided.)
- BeetleB 3y agoWouldn't that require me to keep the source code for that particular version lying around?
- Karellen 3y agoWell, yes. I mean, you could probably get away with just keeping the `Makefile` around. But for the stuff I installed from source, I was often interested in keeping the source code around anyway, for curiosity's sake. And hard drives are big, while source code trees generally aren't - comparatively speaking.