aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenaud Métrich <rmetrich@redhat.com>2018-05-02 14:32:56 +0200
committerBryn M. Reeves <bmr@redhat.com>2018-06-06 15:55:43 +0100
commitff74942afb5b1f0d2b840204325f709fa0896452 (patch)
tree46d67b3fa90590a398817f172ceb7c75b4bd1a96
parente2152cc02234ebe5b6a52deed48c91fe9e5c0471 (diff)
downloadsos-ff74942afb5b1f0d2b840204325f709fa0896452.tar.gz
[libraries] collect standard library paths
Collects the paths to the libraries cached by "ldconfig". This is useful when a customer replaced a standard library by its own or when he added his own libraries to the standard paths or through symbolic links. Resolves: #1282 Signed-off-by: Renaud Métrich <rmetrich@redhat.com> Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-rw-r--r--sos/plugins/libraries.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/sos/plugins/libraries.py b/sos/plugins/libraries.py
index 4acdeb57..03f79dab 100644
--- a/sos/plugins/libraries.py
+++ b/sos/plugins/libraries.py
@@ -24,6 +24,23 @@ class Libraries(Plugin, RedHatPlugin, UbuntuPlugin):
self.add_copy_spec(["/etc/ld.so.conf", "/etc/ld.so.conf.d"])
if self.get_option("ldconfigv"):
self.add_cmd_output("ldconfig -v -N -X")
- self.add_cmd_output("ldconfig -p -N -X")
+
+ ldconfig_file = self.get_cmd_output_now("ldconfig -p -N -X")
+
+ if not ldconfig_file:
+ return
+
+ # Collect library directories from ldconfig's cache
+ dirs = set()
+ with open(ldconfig_file) as f:
+ for l in f.read().splitlines():
+ s = l.split(" => ", 2)
+ if len(s) != 2:
+ continue
+ dirs.add(s[1].rsplit('/', 1)[0])
+
+ if dirs:
+ self.add_cmd_output("ls -lanH %s" % " ".join(dirs),
+ suggest_filename="ld_so_cache")
# vim: set et ts=4 sw=4 :