Python实现RPM的elfdeps
项目描述
ELF依赖关系
Python实现RPM的elfdeps
工具。该elfdeps
工具可以从ELF二进制文件中提取依赖关系和提供者。
示例
$ elfdeps --requires /usr/bin/python3.12
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libpython3.12.so.1.0()(64bit)
libc.so.6()(64bit)
rtld(GNU_HASH)
$ elfdeps --provides /usr/lib64/libpython3.12.so
libpython3.12.so.1.0()(64bit)
$ elfdeps --provides /lib64/libc.so.6
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.2.6)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
...
libc.so.6(GLIBC_2.36)(64bit)
libc.so.6(GLIBC_2.38)(64bit)
libc.so.6(GLIBC_ABI_DT_RELR)(64bit)
libc.so.6(GLIBC_PRIVATE)(64bit)
libc.so.6()(64bit)
RPM
在基于Fedora的发行版中,RPM软件包提供和需要具有ELF sonames和版本的虚拟软件包。包管理器可以安装虚拟提供者。
python3
基本软件包依赖于libpython3.12.so.1.0()(64bit)
和libc.so.6(GLIBC_2.34)(64bit)
$ rpm -qR python3
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libpython3.12.so.1.0()(64bit)
...
rtld(GNU_HASH)
python3-libs
软件包虚拟提供libpython3.12.so.1.0()(64bit)
$ rpm -qP python3-libs
bundled(libb2) = 0.98.1
libpython3.12.so.1.0()(64bit)
libpython3.so()(64bit)
python-libs = 3.12.3-2.fc39
python3-libs = 3.12.3-2.fc39
python3-libs(x86-64) = 3.12.3-2.fc39
python3.12-libs = 3.12.3-2.fc39
$ sudo dnf install 'libc.so.6(GLIBC_2.34)(64bit)' 'libpython3.12.so.1.0()(64bit)'
Package glibc-2.38-18.fc39.x86_64 is already installed.
Package python3-libs-3.12.3-2.fc39.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
公共API
- 数据类
elfdeps.ELFAnalyzeSettings
- 异常
elfdeps.ELFError
- 数据类
elfdeps.ELFInfo
- 数据类
elfdeps.SOInfo
elfdeps.analyze_dirtree(dirname, settings=None) -> Generator[ELFInfo, None, None]
elfdeps.analyze_elffile(elffile, *, filename, is_exec, settings=None) -> ELFInfo
elfdeps.analyze_file(filename, *, settings=None) -> ELFInfo
elfdeps.analyze_tarfile(tfile, *, settings=None) -> Generator[ELFInfo, None, None]
elfdeps.analyze_tarmember(tfile, tarinfo, *, settings=None) -> ELFInfo
elfdeps.analyze_zipfile(zfile, *, settings=None) -> Generator[ELFInfo, None, None]
elfdeps.analyze_zipmember(zfile, zipinfo, *, settings=None) -> ELFInfo
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源分布
elfdeps-0.2.0.tar.gz (23.3 kB 查看散列)
构建分布
elfdeps-0.2.0-py3-none-any.whl (18.5 kB 查看散列)
关闭
elfdeps-0.2.0.tar.gz散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | d99002612d9e08548e14dda6396c7146071cf4150d674eb98f4ced0ea052968b |
|
MD5 | 7a7e7d5754b981cdb4a2a8fdb0da33ab |
|
BLAKE2b-256 | a4d8bc6a3d2a99ee83733bfc825201baf53700fbad7bab026a40377a1de2fa6f |
关闭
elfdeps-0.2.0-py3-none-any.whl散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8df0b4f0deceae9faf37bf5f1ad1b46fa5bc7c1731d016df0bdec2513ec82750 |
|
MD5 | 23d7124ca071126816c1926e8143117a |
|
BLAKE2b-256 | 02e6c142be7a103580b65fab706bebe0626c695f677acacbbbbd8852733659fb |