管理依賴關係是維護 Linux 系統的一個重要組成部分。軟體是複雜的,依賴許多共享庫和文件。有時候,追蹤應用程式所需的文件變得困難。
這就是 Linux 中 ldd 指令發揮作用的地方。 Ldd是一款功能齊全的命令列工具,可用於追蹤應用程式對共享物件的依賴關係。
讓我們學習如何利用 ldd 指令,在 Linux 上成為一個管理依賴關係的專家!
軟體不僅包含獨立的原始程式碼,還匯集了本地原始碼和外部程式庫中使用的程式碼。如果您的系統缺少這些程式庫和其他共享對象,則依賴它們的應用程式可能會出現故障,甚至可能拒絕啟動。
在Linux系統中,所有的共用檔案、軟體套件、函式庫等被統稱為依賴項。雖然這個簡短的定義給您一個大致的概念,但實際情況比這更複雜,這就是為什麼深入了解軟體包依賴關係的重要性。
LDD 是 List Dynamic Dependencies 的縮寫。顧名思義,ldd 列出了應用程式所需的所有共用物件。
它透過設定特殊的環境變數來呼叫動態連結器。當您使用二進位檔案的位置執行 ldd 時,它會傳回一個輸出,其中包含依賴關係的清單、它們的位置以及表示它們載入到記憶體的十六進位值。
現在您對ldd 的基本概念有了清晰的了解,讓我們動手實踐並學習如何使用它來尋找軟體的依賴關係。
在學習如何使用ldd 之前,請先確認您的系統是否已安裝了ldd,可以透過列印已安裝的ldd版本來確認:
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ ldd --version
如果回傳「command not found」錯誤,則需要先安裝ldd。
在基於Ubuntu 和Debian 的系統上執行以下命令進行安裝:
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ sudo apt install libc-bin
對於基於Arch 的發行版:
sudo pacman -S glibc
對於RHEL 和Fedora:
sudo dnf install glibc-common
安裝了ldd 後,現在您可以專注於學習如何使用它。以下是ldd 命令的基本語法:
ldd 二进制文件路径
如果您不知道二進位檔案的位置,您可以利用Linux 命令列操作符之一,將which 命令的輸出與ldd 命令結合起來,以查找軟體包的依賴關係:
ldd -flag $(which binary_name)
ldd命令提供了四個不同的選項來修改輸出。它們是:
要確定給定的可執行守護程式是否支援TCP Wrapper,那就請執行以下命令:
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ sudo ldd /usr/sbin/sshd | grep libwrap
有了ldd 作為您的軟體工具,您將能夠解決與應用程式相關的共享物件依賴問題。
除此之外,透過ldd輸出庫的載入位置,您能夠進行應用程式偵錯並更深入地了解特定程式庫的實作方式。 ldd也列印出應用程式中使用的共用程式庫的版本。
利用這個功能,您可以檢查應用程式是否存在與過時版本的共用程式庫相關的潛在漏洞。
管理依賴關係是一項至關重要的核心技能,對於您的 Linux 系統的順暢運作非常重要。即使所有依賴項都正常,軟體包有時仍可能出現問題。因此,了解如何找到和修復損壞的軟體包非常重要。
以上是像專業人士一樣在 Linux 上使用 ldd 命令管理軟體包依賴關係的詳細內容。更多資訊請關注PHP中文網其他相關文章!