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 .