Wie gehen binäre Installationsdateien mit Abhängigkeiten um?

Wie gehen binäre Installationsdateien mit Abhängigkeiten um?

Wenn eine Anwendung oder Bibliothek im Ubuntu-Repository von anderen abhängig ist, werden bei der Installation über apt-get die Abhängigkeiten automatisch zuerst heruntergeladen und installiert. Funktioniert diese Methode bei der Installation von binären Installationsdateien wie .deb?

Wenn Sie eine Anwendung oder Bibliothek durch Erstellen des Quellcodes installieren, ./configurewerden Ihnen die fehlenden Abhängigkeiten angezeigt und ich werde diese zunächst manuell installieren.

Wenn ich eine Anwendung installiere, indem ich ihre .debvon Websites wie Ubuntu ppa heruntergeladene Datei ausführe, muss ich mich nicht um Abhängigkeiten kümmern. Enthält eine .debDatei die Abhängigkeiten in ihrem Inhalt oder werden die Abhängigkeiten automatisch heruntergeladen und installiert?

Antwort1

Wenn Sie die Liste der Pakete aus einem Repository über abrufen , finden Sie apt-get updatesowohl in /var/lib/aptals auch Informationen zu allen Paketen in der Form/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

Diese Information ist auch als Datei debian/controlin jedem .debPaket vorhanden. Wie man sieht, enthält diese eine Depends: ...Zeile, die alle Abhängigkeiten auflistet. Aus diesen Abhängigkeiten apt-getwerden rekursiv alle Pakete berechnet, die installiert werden müssen.

Wenn ein Paket erstellt wird, werden diese Informationen vom Paketbetreuer hinzugefügt (es gibt jedoch einige Tools, die hierbei helfen), ähnlich wie Sie Pakete manuell hinzufügen, wenn Sie es selbst kompilieren.

Antwort2

Die Person, die die .debDatei ursprünglich gepackt hat, hat ein ähnliches Verfahren befolgt, wie Sie es für die manuelle Installation beschreiben. Dabei hat sie (sofern sie ihre Arbeit richtig gemacht hat) auch Informationen zu den erforderlichen Abhängigkeiten in der debian/controlDatei des Quellpakets hinzugefügt.

apt-getund andere dpkgFrontends arbeiten tatsächlich ausschließlich mit .debPaketen und der zugehörigen Paketdatenbank mit Metainformationen zu diesen Paketen. Manchmal möchten Sie ein .debPaket lokal produzierter Software erstellen, damit die gesamte Kette ordnungsgemäß funktioniert und Sie von der automatischen Installation von Abhängigkeiten usw. profitieren können.

Antwort3

dpkg -iWenn Sie versuchen , ein Paket mit einer fehlenden (unerfüllten) Abhängigkeit zu installieren (mithilfe von *.deb), erhalten Sie eine Fehlermeldung mit Hinweis auf die fehlenden Pakete. Sie können dann diese fehlenden Pakete apt-get installherunterladen .aptitude install

verwandte Informationen