Personal tools
     DOCUMENTATION

FAQ:Determine Dependencies for Installed Software

From rPath Wiki

Jump to: navigation, search
FAQ
Question: How can I determine the dependencies for installed software?


Answer: Use --deps with conary query to display a trove's dependency-related information:

$ conary q openssl:lib --deps
openssl:lib=0.9.7f-10-0.1[is: x86(~!i686)]
  Provides:
    trove: openssl:lib
    soname: ELF32/libcrypto.so.5(SysV x86)
    soname: ELF32/libssl.so.5(SysV x86)

  Requires:
    abi: ELF32(SysV x86)
    trove: openssl:config
    trove: openssl:data
    soname: ELF32/libc.so.6(GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.3 SysV x86)
    soname: ELF32/libcom_err.so.3(SysV x86)
    soname: ELF32/libcrypto.so.5(SysV x86)
    soname: ELF32/libdl.so.2(GLIBC_2.0 GLIBC_2.1 SysV x86)
    soname: ELF32/libgssapi_krb5.so.2(SysV x86)
    soname: ELF32/libk5crypto.so.3(SysV k5crypto_3_MIT x86)
    soname: ELF32/libkrb5.so.3(SysV krb5_3_MIT x86)
    soname: ELF32/libresolv.so.2(SysV x86)
    soname: ELF32/libz.so.1(SysV x86)

Dependency-related information is divided into two sections:

  • A provides section listing all the dependencies that the trove makes available
  • A requires section listing all the dependencies that must be met for the trove to operate properly

The dependency-related information can include:

  • Filenames
  • Trove names
  • User-related information
  • Group-related information
  • Java dependencies
  • Perl dependencies
  • Python dependencies
  • Application binary interface (ABI) specifications
  • Soname specifications for shared libraries

Use --file-deps with conary query to displays the individual provides and requires for each file:

$ conary q openssl:lib --file-deps
/lib/libcrypto.so.0.9.7f
  Provides:
    soname: ELF32/libcrypto.so.5(SysV x86)

  Requires:
    abi: ELF32(SysV x86)
    soname: ELF32/libc.so.6(GLIBC_2.0 GLIBC_2.1 GLIBC_2.1.3 GLIBC_2.3 SysV x86)
    soname: ELF32/libdl.so.2(GLIBC_2.0 GLIBC_2.1 SysV x86)
    soname: ELF32/libz.so.1(SysV x86)

/lib/libssl.so.0.9.7f
  Provides:
    soname: ELF32/libssl.so.5(SysV x86)

  Requires:
    abi: ELF32(SysV x86)
    soname: ELF32/libc.so.6(GLIBC_2.0 GLIBC_2.1.3 SysV x86)
    soname: ELF32/libcom_err.so.3(SysV x86)
    soname: ELF32/libcrypto.so.5(SysV x86)
    soname: ELF32/libdl.so.2(SysV x86)
    soname: ELF32/libgssapi_krb5.so.2(SysV x86)
    soname: ELF32/libk5crypto.so.3(SysV k5crypto_3_MIT x86)
    soname: ELF32/libkrb5.so.3(SysV krb5_3_MIT x86)
    soname: ELF32/libresolv.so.2(SysV x86)
    soname: ELF32/libz.so.1(SysV x86)

/usr/lib/libcrypto.so.5
/usr/lib/libssl.so.5

If a file has no dependencies, none will be listed. In this example, the files /lib/libcrypto.so.0.9.7f and /lib/libssl.so.0.9.7f have some provides and requires listed, and the files /usr/lib/libcrypto.so.5 and /usr/lib/libssl.so.5 have no dependencies.