diff options
author | Renaud Métrich <rmetrich@redhat.com> | 2018-05-02 14:32:56 +0200 |
---|---|---|
committer | Bryn M. Reeves <bmr@redhat.com> | 2018-06-06 15:55:43 +0100 |
commit | ff74942afb5b1f0d2b840204325f709fa0896452 (patch) | |
tree | 46d67b3fa90590a398817f172ceb7c75b4bd1a96 | |
parent | e2152cc02234ebe5b6a52deed48c91fe9e5c0471 (diff) | |
download | sos-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.py | 19 |
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 : |