On 10/31/2017 12:23 PM, John Harragin wrote:
However my asterisk server is still running and it still has that file open. I don't know if this keeps new processes referencing the .so file that is open in ram.
No. New processes will use the .so that they find in their library path, in the filesystem.
I'm not sure how the package manager addresses such issues.
It doesn't.
Does it run ldconfig as part of the installation and defer resolving issues till the involved files are closed?
Packages may specifically run "ldconfig" in their post install script (rpm -q --scripts), but rpm won't otherwise.
If you remove a package that provides an .so file, the files are deleted from the filesystem by rpm. If those files are open by an active process, the inode and data blocks will not be freed by the kernel at that time, because there is still an in-memory reference to those. When those processes exit, the reference count is decreased. When the reference count reaches zero, and nothing refers to that inode any longer, the kernel will clear the inode and free the data blocks it is using.