Ich weiß, dass beide apt-get
und aptitude
sind Befehlszeilen-Paketverwaltungsschnittstellen auf von Debian abgeleitetem Linux mit unterschiedlichen Optionen, aber ich bin immer noch etwas verwirrt. Verwenden sie unter der Haube nicht dasselbe APT-System?
Warum pflegt Debian diese parallelen Tools? (Bonusfrage:Was um alles in der Welt ist Wajig?)
Akzeptierte Antwort:
Der offensichtlichste Unterschied ist aptitude
bietet eine Terminalmenüschnittstelle (ähnlich wie Synaptic in einem Terminal), wohingegen apt-get
nicht.
Wenn man nur die Befehlszeilenschnittstellen betrachtet, sind sie ziemlich ähnlich, und zum größten Teil spielt es wirklich keine Rolle, welche Sie verwenden. Neuere Versionen von beiden verfolgen, welche Pakete manuell installiert wurden und welche als Abhängigkeiten installiert wurden (und daher für die automatische Entfernung geeignet sind). Tatsächlich glaube ich, dass die beiden Tools noch vor kurzem aktualisiert wurden, um tatsächlich dieselbe Datenbank mit manuell und automatisch installierten Paketen zu teilen, also Fälle, in denen Sie etwas mit apt-get installieren und dann aptitude es deinstallieren möchte, sind meistens eine Sache von die Vergangenheit.
Es gibt ein paar kleine Unterschiede:
- aptitude entfernt geeignete Pakete automatisch, während apt-get dafür einen separaten Befehl benötigt
- Die Befehle für Upgrade vs. dist-upgrade wurden passenderweise in die wahrscheinlich treffenderen Namen safe-upgrade umbenannt und vollständiges Upgrade bzw. .
- aptitude führt tatsächlich nicht nur die Funktionen von apt-get aus, sondern auch einige seiner Begleitwerkzeuge, wie apt-cache und apt-mark.
- aptitude hat eine etwas andere Abfragesyntax für die Suche (im Vergleich zu apt-cache)
- aptitude hat das warum und Warum nicht Befehle, um Ihnen mitzuteilen, welche manuell installiert Pakete verhindern eine Aktion, die Sie möglicherweise ausführen möchten.
- Wenn die Aktionen (Pakete installieren, entfernen, aktualisieren), die Sie ausführen möchten, Konflikte verursachen, kann aptitude mehrere mögliche Lösungen vorschlagen. apt-get sagt einfach „Es tut mir leid, Dave, ich kann dir das nicht erlauben.“
Es gibt noch andere kleine Unterschiede, aber das sind die wichtigsten, die mir einfallen.
Kurz gesagt, aptitude gehört eher in die Kategorie mit Synaptic und anderen übergeordneten Paketmanager-Frontends. Es hat zufälligerweise auch eine Befehlszeilenschnittstelle, die apt-get ähnelt.
Bonusrunde:Was ist Wajig?
Erinnern Sie sich, wie ich diese „begleitenden“ Tools wie apt-cache und apt-mark erwähnt habe? Nun, es gibt eine Menge davon, und wenn Sie sie häufig verwenden, erinnern Sie sich möglicherweise nicht mehr daran, welche welche Befehle bereitstellen. Wajig ist eine Lösung für dieses Problem. Es ist im Wesentlichen ein Dispatcher, ein Wrapper um all diese Tools. Es wendet bei Bedarf auch sudo an. Wenn Sie wajig install foo
sagen , wajig sagt „Ok, install
wird von apt-get
bereitgestellt und erfordert Administratorrechte“, und es wird sudo apt-get install foo
ausgeführt . Wenn Sie wajig search foo
sagen , wajig sagt „Ok, search
wird von apt-cache
bereitgestellt und erfordert keine Administratorrechte“, und es führt apt-cache search foo
aus . Wenn Sie wajig anstelle von apt-get, apt-mark, apt-cache und anderen verwenden, werden Sie dieses Problem nie haben:
$ apt-get search foo
E: Invalid operation search
Wenn Sie wissen möchten, was wajig hinter den Kulissen tut, welche Tools es verwendet, um einen bestimmten Befehl zu implementieren, gibt es --simulate
und --teaching
Modi.
Zwei Wajig-Befehle, die ich oft verwende, sind wajig listfiles foo
und wajig whichpkg /usr/bin/foo
.