Programowanie w systemie UNIX/depend: Różnice pomiędzy wersjami
m →pakiet deb: descr |
m →pakiety: repo |
||
Linia 82: | Linia 82: | ||
to build things based on libfoo, you need libfoo-dev |
to build things based on libfoo, you need libfoo-dev |
||
===repozytoria pakietów=== |
|||
Lista <ref>[https://tecadmin.net/view-installed-repositories-in-ubuntu/ tecadmin : view-installed-repositories-in-ubuntu]</ref> |
|||
* plik /etc/apt/sources.list |
|||
* pliki w katalogu /etc/apt/sources.list.d/ |
|||
sudo grep -rhE ^deb /etc/apt/sources.list* |
|||
sudo apt-cache policy |
|||
===pakiet deb === |
===pakiet deb === |
Wersja z 16:23, 22 lip 2021
Zależności ( ang dependencies)[1]
uaktualnianie systemu
sudo apt-get update sudo apt-get autoremove sudo apt-get install -f
Pierwsze polecenie zaktualizuje listę pakietów, drugie usunie wszystkie pakiety, które nie są już potrzebne, a trzecie polecenie zainstaluje wszystkie pakiety, które są potrzebne innym pakietom, ale jeszcze nie zostały zainstalowane.[4]
Jak sprawdzić zależności?
Biblioteka
- pakiety
- dev
- non-dev
Program
wykonywalny
Za pomocą komendy ldd[5]
ldd /path/to/program
lub bezpieczniej (program ldd może uruchamiać badany program co jest potencjalnie szkodliwe, gdy pochodzi z nieznanego źródła) [6]
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 : [9]
- AC_SEARCH_LIBS (
- AC_CHECK_HEADERS
- PKG_CHECK_MODULES
czynny proces
sudo pldd <PID>
sudo pmap <PID>
biblioteki
Biblioteki [10]
dzielone
Lista bibliotek dzielonych ( ang. shared library), pliki z rozszerzeniem "so"
ldconfig -p
Sprawdzamy czy są i jakie wersje maja zainstalowane biblioteki "libname" ( nazwa do zmiany) [11]
ldconfig -v | grep libname
Zależności bibliotek dzielonych[12]
pakiety
W ubuntu :
sudo apt-get build-dep <package>
lub
dpkg -l | grep -i nazwa_paklietu
sudo apt list --installed | grep -i nazwa_pakietu
Pakiety dev: [13]
to build things based on libfoo, you need libfoo-dev
repozytoria pakietów
Lista [14]
- plik /etc/apt/sources.list
- pliki w katalogu /etc/apt/sources.list.d/
sudo grep -rhE ^deb /etc/apt/sources.list*
sudo apt-cache policy
pakiet deb
Zależności pakietu za pomocą apt:
apt-cache showpkg package-name
apt-cache depends package-name
lub apt-file [15]
apt-file search fontconfig/fontconfig.h
lub [16]
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.")[17]
apt-rdepends package
odwrotne
Pakiety zależne od pakietu (reverse dependencies):
apt-cache rdepends package-name
Jak uruchomić stary program na nowym systemi ?
- snap[18]
- live OS: uruchomić system bez instalacji za pomoca live CD lub usb
- emulator
- maszyna virtualna[19][20]
Zobacz również
- wikipedia: Piekło zależności
- autoapt[21]
- checkinstall
- autodeb
- biicode is a c/c++ dependency manager.
Źródła
- ↑ askubuntu question: what-are-dependencies
- ↑ stackoverflow question: find-a-directory-in-shared-library-search-path
- ↑ ostechnix: list-dependencies-package-linux
- ↑ askubuntu question: cant-install-several-development-libraries
- ↑ 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
- ↑ yolinux TUTORIAL: LibraryArchives-StaticAndDynamic
- ↑ linuxquestions : bash-command-to-list-installed-libraries-and-version-numbers
- ↑ simplified.guide: linux show-shared-library-dependency
- ↑ stackoverflow question: how-to-install-gtk-development-dependencies-on-ubuntu
- ↑ tecadmin : view-installed-repositories-in-ubuntu
- ↑ apt-file command with examples by Computer Hope
- ↑ askubuntu question how-can-i-check-dependency-list-for-a-deb-package
- ↑ checking-package-dependencies-with-apt-rdepends-on-debian-ubuntu
- ↑ ubuntu blog: how-to-preserve-old-software-with-snaps
- ↑ help.ubuntu : VirtualMachines
- ↑ osboxes : ubuntu
- ↑ AutoApt