Programowanie w systemie UNIX/depend: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
m →pakiet deb: sudo apt-get build-dep <package> |
m →wykonywalny program: żródłą |
||
Linia 7: | Linia 7: | ||
** dev |
** dev |
||
** non-dev |
** non-dev |
||
== |
==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
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
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ż
- wikipedia: Piekło zależności
- autoapt[8]
- checkinstall
- autodeb
- biicode is a c/c++ dependency manager.
Źródła
- ↑ man ldd
- ↑ How to check what libraries are used by a program or process on Linux Posted on August 7, 2014 by Dan Nanni
- ↑ unix.stackexchange question how-to-find-out-the-dynamic-libraries-executables-loads-when-run
- ↑ stackoverflow question how-do-i-find-the-direct-shared-object-dependencies-of-a-linux-elf-binary
- ↑ unix.stackexchange question: get-list-of-required-libraries-when-installing-something-from-source
- ↑ askubuntu question how-can-i-check-dependency-list-for-a-deb-package
- ↑ checking-package-dependencies-with-apt-rdepends-on-debian-ubuntu
- ↑ AutoApt