Programowanie w systemie UNIX/depend: Różnice pomiędzy wersjami

Z Wikibooks, biblioteki wolnych podręczników.
Usunięta treść Dodana treść
m →‎pakiet deb: sudo apt-get build-dep <package>
Linia 7: Linia 7:
** dev
** dev
** non-dev
** non-dev
==wykonywalny program==
==Program ==
===wykonywalny ===


Za pomocą komendy ldd<ref>[https://linux.die.net/man/1/ldd man ldd]</ref>
Za pomocą komendy ldd<ref>[https://linux.die.net/man/1/ldd man ldd]</ref>
Linia 20: Linia 21:


readelf -d /bin/ls | grep 'NEEDED'
readelf -d /bin/ls | grep 'NEEDED'

===Żródła===

Jeśli program był zainstalowany za pomocą autotools to wyszukujemy ( grep) w pliku configure.ac : <ref>[https://unix.stackexchange.com/questions/2606/get-list-of-required-libraries-when-installing-something-from-source unix.stackexchange question: get-list-of-required-libraries-when-installing-something-from-source]</ref>
* AC_SEARCH_LIBS (
* AC_CHECK_HEADERS
* PKG_CHECK_MODULES


==czynny proces==
==czynny proces==

Wersja z 18:54, 14 cze 2017

Piekło zależności

Jak sprawdzić zależności?

Biblioteka

  • pakiety
    • dev
    • non-dev

Program

wykonywalny

Za pomocą komendy ldd[1]

 ldd /path/to/program

lub bezpieczniej (program ldd może uruchamiać badany program co jest potencjalnie szkodliwe, gdy pochodzi z nieznanego źródła) [2]

 objdump -p /path/to/program | grep NEEDED

lub [3][4]

 readelf -d /bin/ls | grep 'NEEDED'

Żródła

Jeśli program był zainstalowany za pomocą autotools to wyszukujemy ( grep) w pliku configure.ac : [5]

  • AC_SEARCH_LIBS (
  • AC_CHECK_HEADERS
  • PKG_CHECK_MODULES

czynny proces

  sudo pldd <PID>
 sudo pmap <PID>

pakiety

W ubuntu :

sudo apt-get build-dep <package>

pakiet deb

Zależności pakietu za pomocą apt:

 apt-cache showpkg package-name

lub [6]

 dpkg -I package.deb

lub rekursywnie (zależności zależności: "it resolves dependencies recursively, i.e., not only does it show the direct dependencies of a package, but also the dependencies' dependencies.")[7]

 apt-rdepends package

odwrotne

Pakiety zależne od pakietu (reverse dependencies):

 apt-cache rdepends package-name

Zobacz również

Źródła

  1. man ldd
  2. How to check what libraries are used by a program or process on Linux Posted on August 7, 2014 by Dan Nanni
  3. unix.stackexchange question how-to-find-out-the-dynamic-libraries-executables-loads-when-run
  4. stackoverflow question how-do-i-find-the-direct-shared-object-dependencies-of-a-linux-elf-binary
  5. unix.stackexchange question: get-list-of-required-libraries-when-installing-something-from-source
  6. askubuntu question how-can-i-check-dependency-list-for-a-deb-package
  7. checking-package-dependencies-with-apt-rdepends-on-debian-ubuntu
  8. AutoApt