二進制安裝檔如何處理依賴性?

二進制安裝檔如何處理依賴性?

在 Ubuntu 儲存庫中,當應用程式或程式庫依賴其他應用程式或程式庫時,透過 apt-get 安裝將首先自動下載並安裝相依性。這種方式是否從二進位安裝檔安裝,例如.deb

當透過建立原始程式碼來安裝應用程式或程式庫時,./configure會告訴我缺少哪些依賴項,我將首先手動安裝它們。

當透過執行從 Ubuntu ppa 等網站下載的檔案來安裝應用程式時.deb,我不記得必須處理依賴項。.deb文件的內容中是否包含依賴項,或者它是否會自動下載並安裝依賴項?

答案1

當您通過 和 從存儲庫獲取包列表時apt-get update,您/var/lib/apt/var/lib/dpkg在表單中找到所有包的信息

Package: apt
Priority: important
Section: admin
Installed-Size: 3462
Maintainer: APT Development Team <[email protected]>
Architecture: i386
Version: 1.3.1
Replaces: apt-utils (<< 1.3~exp2~)
Depends: adduser, gpgv | gpgv2 | gpgv1, debian-archive-keyring, init-system-helpers (>= 1.18~), libapt-pkg5.0 (>= 1.3~rc2), libc6 (>= 2.15), libgcc1 (>= 1:4.2), libstdc++6 (>= 5.2)
Recommends: gnupg | gnupg2 | gnupg1
Suggests: apt-doc, aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), powermgmt-base, python-apt
Breaks: apt-utils (<< 1.3~exp2~)
Filename: pool/main/a/apt/apt_1.3.1_i386.deb
Size: 1208426
MD5sum: 9d35afa0f8220cabf0c837f8073569c2
Description: commandline package manager
Description-md5: 9fb97a88cb7383934ef963352b53b4a7
Tag: admin::package-management, devel::lang:ruby, hardware::storage,
 hardware::storage:cd, implemented-in::c++, implemented-in::perl,
 implemented-in::ruby, interface::commandline, network::client,
 protocol::ftp, protocol::http, protocol::ipv6, role::program,
 scope::application, scope::utility, sound::player, suite::debian,
 use::downloading, use::organizing, use::searching, works-with::audio,
 works-with::software:package, works-with::text
SHA256: 9111e4e9ffe3f3dd3c62c4e67485d3495c15bf5d24f4f1c532db4430b389eb19

debian/control此資訊也作為每個.deb包中的文件存在。如您所見,它包含一行Depends: ...列出所有依賴項。根據這些依賴關係apt-get遞歸計算需要安裝的所有套件。

建立包時,包維護者會添加此資訊(儘管有一些工具可以幫助完成此操作),類似於您自己編譯包時手動添加包的方式。

答案2

.deb首先打包該文件的人遵循的過程類似於您描述的手動安裝過程。當他們這樣做時(如果他們正確地完成了工作),他們還在來源包的debian/control文件中添加了有關所需依賴項的資訊。

apt-get和其他dpkg前端確實只對.deb包和關聯的包資料庫以及有關這些包的元資訊進行操作。有時您會想要建立一個.deb本地生成的軟體包,以便整個鏈能夠正常工作,並且您可以獲得自動依賴項安裝等的好處。

答案3

當您嘗試安裝(使用dpkg -i)某些*.deb缺少(不滿足)依賴項的套件時,您會收到錯誤訊息,指出缺少的套件。然後您可以apt-get installaptitude install這些遺失的軟體包。

相關內容