jak używać polecenia LDD w Linuksie
zastanawiasz się, jak używać polecenia LDD w Linuksie?
Linux oferuje dużą elastyczność, ponieważ pozwala dostosować system do Twoich potrzeb. Oznacza to, że możesz łatwo obsługiwać swój system za pośrednictwem terminala. Co więcej, możesz kontrolować różne parametry i sprawdzać pliki udostępniane i używane przez różne programy w systemie.
jedno polecenie, w szczególności, pozwala rozpoznać biblioteki używane przez dany program pod kontrolą. Jest to komenda LDD opracowana przez Rolanda McGratha i Ulricha Dreppera.
LDD (List Dynamic Dependencies) ułatwia użytkownikowi identyfikację zależności bibliotek, które są udostępniane w różnych plikach wykonywalnych.
ten przewodnik pomoże Ci nauczyć się używać polecenia LDD w Linuksie.
więc bez zbędnych ceregieli, zaczynajmy!
typy bibliotek.
Biblioteka jest dobrze zdefiniowanym zestawem funkcji, obiektów, zmiennych, klas, specyfikacji typów, warunków i podprogramów, które dyktują operacje na plikach i programach, bez konieczności utrzymywania kodu źródłowego.
istnieją trzy typy bibliotek:
- biblioteki dynamiczne: są to biblioteki używane przez programy skompilowane na mniejszą skalę. Jak sama nazwa wskazuje, jest on ładowany dynamicznie w momencie wykonania, więc jedna kopia jest dynamicznie używana do uruchamiania wielu programów.
zmniejsza to zużycie pamięci, zmniejszając tym samym rozmiar programu i poprawiając wydajność. Zwykle mają rozszerzenia” .so
“.
- Biblioteki statyczne: te biblioteki są używane przez kompletne programy. Łączą one programy bez rekompilacji kodu źródłowego, oszczędzając w ten sposób czas. Biblioteki te są oddzielnie zawarte w plikach programu, które wymagają jego funkcji. Po nich zwykle następuje rozszerzenie “
.a
“. - biblioteki współdzielone: są to indywidualnie zainstalowane biblioteki, które są automatycznie używane przez programy na raty. Mogą one nadpisać określone części istniejącej biblioteki, gdy program wykonuje określone zadania. Ponadto mogą być używane w czasie wykonywania z naszym kodem lub programem.
większość plików wykonywalnych, których używamy na co dzień, zawiera biblioteki współdzielone. Polecenie LDD wyświetla zależności bibliotek dynamicznych. Biblioteki te są ponownie wykorzystywane i współdzielone między programami, aby ułatwić ich rozwój i zmniejszyć ich rozmiar i obciążenie pamięci komputera.
w Linuksie pliki te są w formie rozszerzenia “.so
” i są przechowywane w /usr/lib*
lub po prostu /lib*
.
róşne dystrybucje systemĂłw Linuksowych mogÄ … zapakowaÄ ‡ inny zestaw bibliotek dla programu, dziaĹ ‘ ajÄ … c inaczej na róşnych wersjach systemu operacyjnego. Gdy biblioteka współdzielona programu nie jest dostępna w systemie, pojawia się błąd, który może wyglądać następująco:
Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.
następnie możemy sprawdzić biblioteki współdzielone pod kątem konkretnego programu za pomocą polecenia LDD.
instalowanie polecenia LDD.
polecenie LDD jest z natury dostępne w prawie każdej dystrybucji Linuksa. Jeśli tak nie jest, możesz użyć następującego polecenia, aby go zainstalować:
$ sudo apt-get install libc-bin
polecenie $ ldd
ma następującą składnię:
$ ldd <options> <executable>
lub bardziej ogólnie:
$ ldd -v /path/to/program/executable
LDD to podstawowe, ale potężne polecenie. Oferuje pomoc i inne warianty przy użyciu różnych flag. Są one krótko opisane poniżej.
ion: aby wyświetlić aktualnie używaną wersję ldd.
-v --verbose
: aby wyświetlić informacje misternie.
-u --unused
: aby wyświetlić nieużywane zależności.
-d --data-relocs
: aby przenieść i zidentyfikować brakujące obiekty.
-r --function-relocs
: przenoszenie obiektów i funkcji danych, a także identyfikowanie brakujących funkcji lub obiektów.
–-help
: aby zapewnić pomoc dotyczącą użycia poleceń.
używając polecenia LDD.
po zakończeniu instalacji jesteś gotowy, aby nauczyć się używać polecenia LDD w Linuksie. Zademonstrujemy to wraz z tym, jak pomaga to zidentyfikować biblioteki współdzielone.
przyjrzymy się bibliotekom współdzielonym dla Bash, standardowej powłoki w Linuksie. Jest odpowiedzialny za wykonywanie poleceń i dostarczanie interfejsu między Użytkownikiem a systemem operacyjnym.
aby użyć polecenia LDD, wykonaj następujące kroki:
- zacznij od otwarcia terminala poleceń, naciskając Ctrl + Alt + T na klawiaturze.
- następnie znajdź ścieżkę za pomocą polecenia
which
lubwhereis
, a następnie polecenia LDD, wpisując następujące polecenie:
$ which bash$ whereis bash$ ldd /usr/bin/bash
jak widać, zależności biblioteki współdzielonej są widoczne. Aby uzyskać szczegółowy i bardziej skomplikowany przegląd, Użyj flagi -v
z poleceniem $ ldd
w następujący sposób:
$ ldd -v /usr/bin/bash
Podobnie, możemy użyć flagi -u
, aby wyświetlić nieużywane zależności.
$ ldd -u /usr/bin/bash
w powyższym przypadku nie ma nieużywanych zależności. Zawsze zaleca się kontrolowanie, które biblioteki są bezczynne i zużywają pamięć. Niezastosowanie się do tego może załadować jądro z nieużywanymi plikami, co w konsekwencji utrudnia wydajność. Byłoby pomocne, aby sprawdzić nasz artykuł o tym, jak zwolnić miejsce na Ubuntu.
do relokacji danych i funkcji używamy odpowiednio znaczników -d
i -r
wraz z poleceniem $ ldd
.
$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
flagi te pomagają również zidentyfikować brakujące obiekty i funkcje.
wreszcie, możemy użyć flagi --help
do szybkiego sprawdzenia FLAG i ich odpowiednich działań.
ograniczenia polecenia LDD.
należy zauważyć, że polecenie LDD nie będzie działać na programach, które nie są dynamicznie wykonywalne, bibliotekach współdzielonych “a.out
” lub plikach, które są przestarzałe lub zostały opracowane przed wydaniem LDD.
wreszcie, zaleca się, aby polecenia LDD nie były używane z niezaufanymi źródłami, ponieważ może to spowodować nagłe błędy i wyjątki.
strona podręcznika dla LDD sugeruje alternatywne polecenie, które składa się z narzędzi objdump
i grep
.
~/$objdump -p /path/program/grep NEEDED
LDD jest jedną z tych instrukcji, które, jeśli zostaną użyte we właściwy sposób, mogą znacząco wpłynąć na interakcję z systemem operacyjnym. Jest to potężne polecenie łączące o określonym celu i zdecydowanie zapewnia. Aby uzyskać więcej informacji na temat polecenia i jego użycia, możesz przejść do strony podręcznika dla polecenia LDD.
Leave a Reply