lddwrap¶
Wrap ldd *nix utility to determine shared libraries required by a program.
-
class
lddwrap.Dependency(found, soname=None, path=None, mem_address=None, unused=None)¶ Represent a shared library required by a program.
Variables: - found (bool) – True if
lddcould resolve the library - soname (Optional[str]) – library name
- path (Optional[pathlib.Path]) – path to the library
- mem_address (Optional[str]) – hex memory location
- unused (Optional[bool]) – library not used
Establishes: not (self.mem_address is None and self.found) or ( self.soname is not None and self.path is not None)
not (self.path is None and self.found) or ( self.soname is not None and self.mem_address is not None)
not (self.soname is None and self.found) or ( self.path is not None and self.mem_address is not None)
-
as_mapping()¶ Transform the dependency to a mapping.
Can be converted to JSON and similar formats.
Return type: Mapping[str,Any]
- found (bool) – True if
-
lddwrap.list_dependencies(path, unused=False, env=None)¶ Retrieve a list of dependencies of the given binary.
>>> import shutil >>> ls = shutil.which("ls") >>> path = pathlib.Path(ls) >>> deps = list_dependencies(path=path) >>> deps[0].soname 'linux-vdso.so.1'
Parameters: - path (
Path) – path to a file - unused (
bool) – if set, check if dependencies are actually used by the program - env (
Optional[Dict[str,str]]) –the environment to use.
If
envis None, currently active env will be used. Otherwise specified env is used.
Return type: List[Dependency]Returns: list of dependencies
Requires: path.is_file()
- path (