If the package manager keeps track of where things are installed, any program that would need to know if a given program is installed and where would just check the place where the package manager stores that information. Regarding DLLs in Windows, in the rare cases i need a program to use an specific DLL instead of the one present in PATH i just put a copy of the DLL in question in the same folder as the executable, and in several instances i've updated a DLL because of one program, and didn't even had to do any tricks to keep other programs working, the newer version of the DLL remained compatible (perhaps nowadays developers are more carefull when releasing newer version of their DLLs? Or perhaps i've just been lucky all these years...) Many programs in Windows do offer the option of keeping it all in a single folder, for those that don't i can just install them inside Sandboxie on a pendrive or whatever. Regardless of the OS, i consider it much more tidy to keep things that are only for a given program instead of being shared be under a single folder than spread all over; ideally configuration files would all have the same extension so if i ever needed to find them all it would be just a matter of running a search. If i even need to backup things from a program i often just copy the install folder, and then i transfer whatever files back if after a reinstall they aren't kept (even better when the program divides it's files in subfolders according to what they are about). Another nice thing with this approach is there is no risk of name conflicts, all programs can have their own "config.ini" without needing to prepend their own names and versions making filenames long and annoying to read.