3 ms·
Curious: How do you uninstall stuff you manually installed in /usr/local?
by BeetleB 3y ago
Curious: How do you uninstall stuff you manually installed in /usr/local?
- kazinator 3y agoAnything I install in /usr/local is stuff is going to be something I really need, and for which there isn't a distro package. It stays for the life of the system. If I wanted to install something into /usr/local that would be suspected of needing removal later, I'd build it with /usr/local as a prefix, but install it in a temporary directory, then make a tarball package out of that to keep track of the file list. That could be used to remove it. I could trivially generate an uninstall script by using find in the package directory to get a list of relative paths; converting each to a rm command. The uninstall script would be put into /usr/local and run from there.
- BeetleB 3y ago> If I wanted to install something into /usr/local that would be suspected of needing removal later, I'd build it with /usr/local as a prefix, but install it in a temporary directory, then make a tarball package out of that to keep track of the file list. That could be used to remove it. I could trivially generate an uninstall script by using find in the package directory to get a list of relative paths; converting each to a rm command. The uninstall script would be put into /usr/local and run from there. Compared to using stow, this is two orders of magnitude more complicated :-) With stow, you simply install it anywhere, and stow will make the symlinks into /usr for you. When you want to uninstall it, stow will remove all the symlinks. This way, I would install each package into its own directory. When I want to remove it, I use stow to delete all the symlinks, and then just delete the directory. No need for "make uninstall", etc.
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- kazinator 3y agoIt's only theoretical; I've never uninstalled anything out of a /usr/local. What Stow is doing, by the way, is better achieved with overlayfs, which didn't exist when Stow was first introduced. With overlayfs you can specify multiple directories that are merged together. Multiple packages that are rooted at /usr/local can be mapped there with overlayfs.
- fiddlerwoaroof 3y agoI’ve used this a lot on Debian systems so that I could just use apt to remove the manually-compiled version: https://en.m.wikipedia.org/wiki/CheckInstall https://en.m.wikipedia.org/wiki/CheckInstall These days I mostly use Nix which basically elominates this problem.
- nequo 3y agoI don’t know how I never heard about CheckInstall! This is great. Can Nix do what CheckInstall does, or do you need to manually build a Nix package for the program version that you want to install?
- fiddlerwoaroof 3y agoI mostly use nix with direnv so I never have to install anything globally and, between overrides and a minimal understanding of how to write a custom package, it’s surprisingly easy to get the tools you need for each project.