如果你是 linux 愛好者,應(yīng)該聽說過 Linux 中的包依賴項(xiàng)并很想知道它們究竟是什么。依賴關(guān)系可能看起來很混亂,但是 Linux 中有一些工具可以確保您安裝的每個(gè)程序都具有它需要的所有組件。
現(xiàn)在讓我們了解 Linux 依賴項(xiàng)及其對 Linux 包管理的影響。
Linux 程序是由軟件構(gòu)建塊組成的
Linux 依賴項(xiàng)只是程序需要運(yùn)行的東西。這是因?yàn)?Linux 開發(fā)人員傾向于以模塊化的方式編寫程序。這可以追溯到從較小的組件構(gòu)建程序的“Unix 哲學(xué)”。
依賴項(xiàng)通常是共享庫。它們可能用于訪問數(shù)據(jù)庫、使用網(wǎng)絡(luò)協(xié)議或在屏幕上繪制圖形元素。雖然專有程序也使用共享庫,但在 Linux 世界中這樣做更容易,因?yàn)樗鼈兺ǔR彩情_源的。
依賴項(xiàng)也可以是完整的程序。Linux 世界中的一種常見模式是為現(xiàn)有命令行程序構(gòu)建 GUI 前端。
使用共享庫使開發(fā)更容易,因?yàn)殚_發(fā)人員不必在每次要創(chuàng)建新應(yīng)用程序時(shí)都想出新的方法來做事。
包管理器如何使安裝 Linux 軟件更容易
您可以從開源程序的網(wǎng)站下載源代碼并嘗試自己編譯,但您經(jīng)常會看到缺少某些內(nèi)容的錯(cuò)誤。這是因?yàn)檫@些項(xiàng)目不包含任何與其程序的依賴關(guān)系。他們假設(shè)您已經(jīng)安裝了它們或者愿意安裝它們。
這在最初的 Unix 時(shí)代運(yùn)行良好,它在小型機(jī)和大型機(jī)上運(yùn)行,并有專門的管理人員,但當(dāng) Linux 開始在 PC 上流行時(shí),舊的方法對于可能沒有太多管理人員的用戶來說很難管理。
Linux 發(fā)行版開始包含包管理工具,用于跟蹤依賴項(xiàng)、通過互聯(lián)網(wǎng)下載它們、安裝它們,并在新版本發(fā)布時(shí)保持更新。
Flatpak 和 Snap 是通過將依賴項(xiàng)與應(yīng)用程序一起發(fā)布來管理依賴項(xiàng)的最新嘗試。這樣,依賴項(xiàng)和應(yīng)用程序可以更好地保持同步。開發(fā)人員可以更好地控制應(yīng)用程序到達(dá)用戶時(shí)的行為方式。
如何在 Linux 上查看包依賴關(guān)系
Linux 發(fā)行包網(wǎng)站可以顯示任何包依賴項(xiàng)。您也可以使用包管理器查看包具有哪些依賴項(xiàng)。
在 Debian 或 Ubuntu 上,使用 APT:
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
? apt show vlc
在 Arch 上,使用帶 -Si 選項(xiàng)的 pacman。“依賴于”部分將顯示依賴關(guān)系。
~/www.linuxmi.com pacman -Si vlc
在 Red Hat 系列的 Linux 發(fā)行版上,使用 DNF:
[linuxmi@localhost www.linuxmi.com]$ dnf deplist vlc
現(xiàn)在你應(yīng)該了解 Linux 包依賴
依賴關(guān)系在 Linux 上并不那么神秘。它們展示了 Linux 程序是如何由較小的組件構(gòu)建的。包管理器通過跟蹤包使安裝軟件的工作變得更容易。
還可以查看包具有哪些依賴項(xiàng)。它們也是為什么在安裝新程序時(shí)應(yīng)該更新包管理器的原因。