Unterschied zwischen `dpkg -i` und` apt-get install`

16

Aus all den anderen Fragen und Antworten (wie: Was ist der Unterschied zwischen dpkg und aptitude / apt-get? ) Verstehe ich, dass dies apt-getein Wrapper ist dpkgund ein Abhängigkeitsmanagement bietet.

Angenommen, ich installiere etwas, das keine Abhängigkeiten hat (oder gleichzeitig installiert wird), gibt es einen Unterschied zwischen der Installation mit apt-getvsdpkg

ZB (irgendwie konkrete Unterschiede, die ich suche)

  • sagen wir dpkgkönnen die pkg von irgendwo nicht herunterladen, ich vor dem Start der Installation heruntergeladen werden müssen, während apt-getin meinem Namen tun dies.
  • dpkgpkg wird nicht konfiguriert, es werden nur Dateien kopiert. apt-getwird auch konfigurieren.

...

Kashyap
quelle

Antworten:

16

dpkg -iInstalliert *.debPakete, dh Pakete, die Sie bereits heruntergeladen haben. Sie werden auch konfiguriert, es werden jedoch keine Abhängigkeiten heruntergeladen / installiert. Sie müssen die Binärpaketdatei (en) manuell von irgendwoher heruntergeladen haben. Das Herunterladen von Paketen von Speicherorten, die nicht die von Ihrer Distribution standardmäßig enthaltenen / aktivierten Repositorys sind, kann ebenfalls Gefahren bergen, da Pakete von Drittanbietern böswilliger Natur sein können.


apt-get/aptitude install greift automatisch auf die von Ihnen aktivierten Repositorys und PPAs-Indizes zu, sucht nach dem besten Kandidaten, lädt ihn und alle seine Abhängigkeiten herunter und installiert und konfiguriert ihn automatisch.

Mit apt-get install -fkönnen Sie fehlende Abhängigkeiten von Paketen automatisch installieren, z dpkg -i. B. durch .

Byte Commander
quelle
5
Eine kurze Anmerkung hier, apt-getkann Abhängigkeiten von Paketen installieren, die mit installiert wurden dpkg -i. Führen Sie apt-get install -f, um das zu erreichen.
Noirscape
1
@ Ev1l0rd Richtig, das habe ich zu meiner Antwort hinzugefügt.
Byte Commander
2
Ein weiterer wichtiger Unterschied und ein Argument für die Verwendung von apt-getoder aptitudeist, dass sie sich daran erinnern, ob ein Paket manuell installiert wurde (speziell angefordert) oder ob es installiert wurde, um eine Abhängigkeit zu erfüllen. Auf diese Weise können sie beim späteren Entfernen eines Pakets automatisch Pakete entfernen (oder zumindest darüber informieren), die "automatisch installiert wurden und nicht mehr benötigt werden". Wenn Sie jedes Paket mit installiert dpkghaben, müssen Sie nicht nur Ihr Paket, sondern auch alle Abhängigkeiten manuell entfernen (vorausgesetzt, nichts anderes hängt davon ab).
Benjamin Staton
1
@BenjaminStaton Nun, da dpkg -iAbhängigkeiten keine Rolle spielen, wird natürlich alles, was damit installiert wird, "manuell" installiert.
Byte Commander