Was ist der wahre Unterschied zwischen “ apt-get ” und “ aptitude ”? (Wie wäre es mit “ wajig ”?)

Ich weiß dass sowohl apt-get als auch aptitude Befehlszeilen-Paketverwaltungsschnittstellen unter Debian-abgeleitetem Linux mit unterschiedlichen Optionen sind, aber ich bin immer noch etwas verwirrt. Verwenden sie unter der Haube nicht dasselbe APT-System?

Warum verwaltet Debian diese parallelen Tools? (Bonusfrage: Was um alles in der Welt ist wajig ?)

Kommentare

  • Ich weiß, dass es nicht der richtige Antwortende für Ihre Frage ist, aber warum können Sie es nicht mit synaptisch versuchen? Es ist sehr benutzerfreundlich und lädt Abhängigkeiten automatisch herunter und installiert sie. Ist Gnome auf Ihrem System nicht vorhanden?
  • Ich ‚ bin voreingenommen, aber ich denke diese Frage Die Ubuntu SE-Site ist möglicherweise relevant.
  • Duplikat: unix.stackexchange.com/questions/244/apt-get-or-aptitude .
  • @Wim Wegen des wajig-Teils dieser Frage habe ich beschlossen, 244 in diese Frage einzufügen, anstatt umgekehrt.
  • Es ist erwähnenswert, dass die Eignung geplant ist zum Entfernen aus der Standardinstallation auf der nächsten Version von Ubuntu (obwohl Sie es später immer mit apt-get installieren können)

Antwort

Der offensichtlichste Unterschied besteht darin, dass aptitude eine Terminalmenüschnittstelle bietet (ähnlich wie Synaptic in einem Terminal), während apt-get nicht.

Wenn man nur die Befehlszeilenschnittstellen der einzelnen 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 automatisch entfernt werden können). Tatsächlich glaube ich, dass die beiden Tools in jüngerer Zeit aktualisiert wurden, um tatsächlich dieselbe Datenbank mit manuell und automatisch installierten Paketen gemeinsam zu nutzen. In Fällen, in denen Sie etwas mit apt-get installieren und aptitude es dann deinstallieren möchte, ist dies meistens eine Sache die Vergangenheit.

Es gibt einige geringfügige Unterschiede:

  • aptitude entfernt automatisch berechtigte Pakete, während apt-get einen separaten Befehl erfordert, um dies zu tun.
  • The Befehle für upgrade vs. dist-upgrade wurden entsprechend den wahrscheinlich genaueren Namen safe-upgrade und full-upgrade umbenannt

.

  • 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 verfügt über die Befehle why und why-not Welche manuell installierten Pakete verhindern eine Aktion, die Sie möglicherweise ausführen möchten.
  • Wenn die Aktionen (Installieren, Entfernen, Aktualisieren von Paketen), die Sie ausführen möchten, Konflikte verursachen, kann aptitude schlagen mehrere mögliche Lösungen vor. apt-get sagt nur „Es tut mir leid, Dave, ich kann dir das nicht erlauben.“
  • Es gibt andere kleine Unterschiede, aber das sind die wichtigsten, die ich habe kann sich vorstellen.

    Kurz gesagt, Eignung gehört besser in die Kategorie mit Synaptic und anderen übergeordneten Paketmanager-Frontends. Es gibt zufällig auch eine Befehlszeilenschnittstelle, die apt-get ähnelt.

    Bonusrunde: Was ist wajig?

    Denken Sie daran, wie ich diese „Begleiter“ -Tools wie apt- erwähnt habe. Cache und Apt-Mark? Nun, es gibt eine Menge von ihnen, und wenn Sie sie häufig verwenden, können Sie sich möglicherweise nicht erinnern, 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 Wendet bei Bedarf auch sudo an. Wenn Sie wajig install foo sagen, sagt wajig „Ok, install wird von apt-get und erfordert Administratorrechte „, und es wird sudo apt-get install foo ausgeführt. Wenn Sie wajig search foo sagen, sagt wajig“ Ok, search wird von apt-cache bereitgestellt und erfordert keine Administratorrechte „und führt apt-cache search foo aus Verwenden Sie wajig anstelle von apt-get, apt-mark, apt-cache und anderen, dann wird dieses Problem nie auftreten:

    $ apt-get search foo E: Invalid operation search 

    Wenn Sie möchten wissen, was wajig hinter den Kulissen tut, mit welchen Tools es einen bestimmten Befehl implementiert, es hat --simulate und --teaching m odes.

    Zwei häufig verwendete Wajig-Befehle sind wajig listfiles foo und wajig whichpkg /usr/bin/foo.

    Kommentare

    • Ein großes Problem, das ich mit der Eignung hatte, ist, dass es lange dauert, Tabulatoren für Paketnamen zu vervollständigen (z. B. aptitude install linux-im tab), während es für apt-get sehr schnell ist. In der apt-get-Familie scheint ein gewisses Caching vorhanden zu sein, das für die Eignung fehlt.
    • aptitude hat auch die fantastische aptitude search, die Sie mit sehr leistungsfähigen Suchmustern verwenden können. Sie haben aptitude reinstall. Sie können auch die Schnittstelle ncurses (Terminalmenü) verwenden, um komplexe Paketoperationen vorzubereiten wie ein teilweises Upgrade, ein Paket zu entfernen, ein anderes einzufrieren, dieses zu aktualisieren, das Sie dann in einem einzigen ausführen können Operation … Oh, und es gibt einen interaktiven Konfliktlöser .
    • @Totor Heilige Kuh unter Verwendung der Eignung ‚ s ncurses Schnittstelle zur Vorbereitung von Befehlen hat mich ein für alle Mal auf Eignung verkauft! (Nach Jahren des Denkens lohnt es sich, Aptitude zu tun, aber Apt-Get aus dem Muskelgedächtnis einzugeben.)
    • … und aptitude haben auch aptitude download package-name, um die Paket-.deb-Datei zu erhalten!
    • Es ist ‚ nur eine Sache, die ich gefunden habe, die nicht t in aptitude, aber in apt-get, und das ist apt-get --compile source package-name . apt-get build-dep package-name existiert, aber ich denke, dass aptitude build-dep package-name einen besseren Job macht.

    Antwort

    Ich habe mich oft gefragt. Wikipedia hebt hervor , dass das Hauptunterscheidungsmerkmal darin besteht, dass Eignung eine hat Vollbild-Textmodus-Schnittstelle (Flüche). Die Tatsache, dass Sie die meisten apt-get Befehlsargumente mit aptitude selbst verwenden können, ist nur eine Entwurfsentscheidung um apt-get Benutzern das Wechseln zu aptitude und umgekehrt zu erleichtern.

    Ich habe es nie verwendet wajig, aber die Dokumentation legt nahe, dass es sich nur um ein Skript handelt, das weiß, ob Sie ihm eine deb -Datei übergeben (wenn es ausgeführt wird) dpkg) oder ein apt -Paketname (wenn stattdessen apt-get ausgeführt wird). Könnten Sie es ausprobieren und sehen, ob es das ist, was es tut?

    Natürlich ist der echte Unterschied:

    gaurav@fern:~$ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"... gaurav@fern:~$ aptitude moo There are no Easter Eggs in this program. 

    Kommentare

    • Nein! aptitude hat mehr. Sie haben vergessen, die endlosen -v -Flaggen auf moo zu setzen. (Sie können bis zu -vvvvvv gehen.)
    • ‚ Vergessen Sie nicht die wichtigen Super Cow Powers, die apt-get hat, aber aptitude nicht. (Versuchen Sie --help auf beiden)
    • lmao. Das ist eine unterhaltsame Antwort zum Lesen, obwohl die Antwort von @ryan ‚ weitaus ausführlicher ist;)

    Antwort

    aptitude ist das bevorzugte Programm für die Paketverwaltung von der Konsole aus, sowohl für Paketinstallationen als auch für Paket- oder System-Upgrades in Debian.

    Hier finden Sie eine Übersicht über das Tool und Die Funktionen, die es über apt-get hat: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

    Also, mein Rat ist zu einfach apt-get install aptitude 🙂

    Kommentare

    • Die Versionshinweise Angenommen, apt-get wird jetzt über aptitude für Upgrades zum Drücken empfohlen.
    • Ja, aber nur dafür. Andernfalls werden sie als gleich angesehen, aber aptitude verfügt über viele erweiterte Funktionen wie Such- und Vollbildmodus als apt-get.
    • Aus irgendeinem Grund wurde Eignung verwendet, um Emacs zu installieren und ohne es zu sehen, entfernte gdm! Im Moment werde ich apt-get verwenden, bin aber sehr neugierig auf Eignung.

    Antwort

    aptitude merkt sich, welche Pakete explizit angefordert und welche nur aufgrund von Abhängigkeiten installiert wurden. Pakete, die nicht explizit angefordert wurden, wenn sie nicht mehr benötigt werden, werden automatisch deinstalliert.

    apt-get behandelt explizit angeforderte Pakete und ihre Abhängigkeiten gleich.

    Verwenden Sie also besser aptitude, um Ihr System sauber zu halten.

    Kommentare

    • Dies war früher der Fall, aber ich weiß, dass mein apt-get einen apt-get autoremove -Befehl zum Entfernen von Paketen hat, die nur als Abhängigkeiten installiert wurden. Ich ‚ weiß nicht, wann diese Funktion hinzugefügt wurde, aber eine Website schlägt vor, dass dies möglicherweise mit Debian Lenny (Juni 2010) geschehen ist.
    • apt-get autoremove ‚ entfernt keine Pakete, die nur als Abhängigkeiten installiert wurden, sondern verwaiste Abhängigkeiten, was ein subtiler Unterschied ist ;; ‚ kann nicht sagen, ob ein ‚ leaf ‚ -Paket mit Absicht oder als installiert wurde eine Abhängigkeit, damit sie es verlässt, wo die Eignung sie kennen und entfernen würde.
    • Ich ‚ bin verkauft! Es gibt noch andere nette Dinge über aptitude, aber dies ist zweifellos eine Killer-Funktion.

    Antwort

    apt-get sowie die verschiedenen Begleittools verbrauchen deutlich weniger Speicher als die jeweiligen Befehlszeilenaufrufe von aptitude und sind etwas schneller. Ich war mir dessen glücklicherweise nicht bewusst, bis ich versuchte, die Debian-Installation auf einem alten Pentium-Thinkpad mit 32 MB RAM zu aktualisieren. Es würde ein oder zwei Stunden dauern, bis apt-get ausgeführt wurde, was erfolgreich abgeschlossen wurde. aptitude würde nach einem längeren Zeitraum fehlschlagen.

    Diese Unterscheidung ist für alles, was einem modernen Desktop-System ähnelt, mehr oder weniger irrelevant.

    Antwort

    Aufbauend auf der Antwort von @Gaurav sind die Ostereier in den beiden Paketmanagern ziemlich lustig!:

    siddhartha@siddhartha-dev:~$ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ..."Have you mooed today?"... siddhartha@siddhartha-dev:~$ aptitude moo There are no Easter Eggs in this program. siddhartha@siddhartha-dev:~$ aptitude -v moo There really are no Easter Eggs in this program. siddhartha@siddhartha-dev:~$ aptitude -vv moo Didn"t I already tell you that there are no Easter Eggs in this program? siddhartha@siddhartha-dev:~$ aptitude -vvv moo Stop it! siddhartha@siddhartha-dev:~$ aptitude -vvvv moo Okay, okay, if I give you an Easter Egg, will you go away? siddhartha@siddhartha-dev:~$ aptitude -vvvvv moo All right, you win. /----\ -------/ \ / \ / | -----------------/ --------\ ---------------------------------------------- siddhartha@siddhartha-dev:~$ aptitude -vvvvvv moo What is it? It"s an elephant being eaten by a snake, of course. siddhartha@siddhartha-dev:~$ aptitude -vvvvvvv moo What is it? It"s an elephant being eaten by a snake, of course. siddhartha@siddhartha-dev:~$ aptitude -vvvvvvvv moo What is it? It"s an elephant being eaten by a snake, of course. 

    und so weiter.

    Antwort

    Sie bieten die gleiche Grundfunktionalität: Installieren und Entfernen von Paketen über die Befehlszeile.

    Hier ist ein detaillierterer Vergleich, der auf der Ubuntu Stack Exchange-Website : https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749

    Kommentare

    • Sie sind ziemlich ähnlich, ich kann einfach genug zwischen ihnen wechseln.

    Antwort

    Wie bereits erwähnt, http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude hat einen Schleim h Einfachere Verwendung der Befehlszeilenschnittstelle.

    Verwenden sie unter der Haube nicht dasselbe APT-System? Ja.

    Das zugrunde liegende System ist nicht nur apt, sondern dpkg. Dieses System ist genauso dumm wie RPM, es kann nur die Installation und Verwaltung einzelner Pakete übernehmen. Es verfolgt, welche installierten Dateien zu welchem Paket gehören.

    apt übernimmt das Herunterladen von Repositorys, das Verfolgen von Abhängigkeiten usw. für alle einzelnen Pakete – und das dann Installiert mit dpkg. aptitude macht dasselbe mit einer anderen Schnittstelle.

    Antwort

    Beide apt -get und Eignung hängen von der APT-Bibliothek ab, ja.

    Siehe meine Antwort auf serverfault.com .

    Debian ist keine monolithische Einheit, es gibt Menschen mit unterschiedlichen Meinungen und der Eignungspfleger entschied, dass apt-get einige Mängel hatte und mit Eignung etwas Besseres bauen wollte. Er verbesserte die Logik, um Lösungen für komplexe Upgrade-Szenarien zu finden, fügte eine GUI für die Konsole hinzu usw. Und es gibt mehr als nur apt-get und aptitude, siehe meinen Artikel apt -get, aptitude, … wähle den richtigen Paketmanager für dich aus .

    Antwort

    Ich bin mir nicht sicher Wenn dies immer noch zutrifft, aber der neueste Debian-Entwickler Joey Hess immer für Eignung gegenüber Apt-Get eintrat. Natürlich müssen sich die Dinge ändern, wenn sich die Software weiterentwickelt. Apt-get behandelt Abhängigkeiten jetzt besser als früher. Von http://lists.debian.org/debian-user/2004/04/msg03138.html

    Datum: Di, 20. April 2004, 22:27:12 -0400 Von: Joey Hess

    Neun Gründe, warum Sie aptitude anstelle von apt-get oder dselect verwenden sollten.

    1. aptitude kann genauso aussehen wie apt-get

      Wenn Sie „aptitude update“ oder „aptitude upgrade“ oder „aptitude install“ ausführen, sieht es genauso aus und funktioniert genauso wie apt-get, mit einigen Verbesserungen. Es gibt also keine Lernkurve.

      (Wenn Sie ein ausgewählter Benutzer sind, ist die Lernkurve offensichtlich nicht eines Ihrer Probleme.)

    2. Eignungsspuren automatisch installierte Pakete

      Machen Sie sich keine Gedanken mehr über das Entfernen nicht verwendeter Bibliotheken und Support-Pakete von Ihrem System. Wenn Sie die Fähigkeit verwenden, alles zu installieren, wird verfolgt, welche Pakete allein durch Abhängigkeiten abgerufen werden, und diese Pakete wann entfernt Sie werden nicht mehr benötigt.

    3. Eignung behandelt Empfehlungen mit Bedacht

      Ein langjähriger Fehler von Apt-Get war die mangelnde Unterstützung für die Empfehlungsbeziehung Dies ist ein Problem, da viele Pakete in Debian auf Empfehlungen angewiesen sind, Software zu verwenden, die der durchschnittliche Benutzer im Allgemeinen mit dem Paket verwendet. Dies ist eine nicht ungewöhnliche Ursache für Probleme, obwohl apt-get kürzlich in der Lage war, zumindest empfohlene Pakete zu erwähnen Es ist leicht, seine Warnungen zu übersehen.

      Aptitude unterstützt standardmäßig Empfehlungen und kann so konfiguriert werden, dass auch Vorschläge unterstützt werden. Es unterstützt sogar die Installation empfohlener Pakete, wenn diese im Befehlszeilenmodus verwendet werden.

    4. Verwenden Sie aptitude als normalen Benutzer und vermeiden Sie das Abspritzen Ihres Systems.

      Vielleicht haben Sie es nicht getan. “ Ich weiß nicht, dass Sie aptitude im GUI-Modus als normaler Benutzer ausführen können. Nehmen Sie alle Änderungen vor, die Sie ausprobieren möchten. Wenn Sie in ein echtes Chaos geraten, können Sie „q“ drücken und beenden, Ihre Änderungen werden nicht gespeichert. (Mit Aptitude können Sie auch Änderungen mit Strg-u rückgängig machen.) Da es als normaler Benutzer ausgeführt wird, können Sie Ihr System erst dann abspritzen, wenn Sie aptitude anweisen, etwas zu tun. An diesem Punkt werden Sie zur Eingabe Ihres Root-Passworts aufgefordert.

    5. aptitude verfügt über eine leistungsstarke Benutzeroberfläche und Suchfunktionen

      Zwischen dem kategorialen Browser von aptitude und seiner hervorragenden Unterstützung für das Filtern und Suchen von Paketen nach Namen im Mutt-Stil. Beschreibung, Betreuer, Abhängigkeiten usw. Mit aptitude sollten Sie Pakete schneller als je zuvor finden können.

    6. aptitude erleichtert das Verfolgen veralteter Software

      Wenn Debian die Verteilung eines Pakets beendet, lässt apt es auf unbestimmte Zeit auf Ihrem System, ohne Warnungen und ohne Upgrades. Aptitude listet solche Pakete im Abschnitt „Veraltete und lokal erstellte Pakete“ auf, damit Sie über das Problem informiert werden und etwas dagegen unternehmen können.

    7. aptitude verfügt über eine Schnittstelle zum Debian Task-System

      Mit Aptitude können Sie das Task-System von Debian so verwenden, wie es verwendet werden soll. Sie können die verfügbaren Aufgaben durchsuchen, eine zu installierende Aufgabe auswählen, sie durchsuchen und Teile von abwählen die Aufgabe, die Sie nicht wollen. apt-get unterstützt keine Aufgaben und aptitude ist sogar besser als spezielle Tools wie tasksel.

    8. aptitude unterstützt mehrere Quellen

      Wenn Ihre Quellen. list ist so konfiguriert, dass mehrere Versionen eines Pakets verfügbar sind. Mit aptitude können Sie einen Drilldown durchführen, um die verfügbaren Versionen anzuzeigen und eine nicht standardmäßige Version für die Installation auszuwählen. Wenn ein Paket instabil wird, setzen Sie es beim Testen einfach auf die Version zurück.

    9. aptitude protokolliert seine Aktionen

      Aptitude protokolliert das installierte Paket, aktualisiert, und wird nach / varlog / aptitude entfernt. Dies kann hilfreich sein, um herauszufinden, warum nach dem gestrigen Upgrade oder beim Entfernen eines partiticlar-Pakets Probleme aufgetreten sind.

    – siehe schüchtern jo

    ==================== ab 2010 gibt es hier auch eine neuere Diskussion https://superuser.com/questions/93437/aptitude-vs-apt-get-which-is-the-recommended-aka-the-right-tool-to-use bei StackExchange.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.