Ich weiß, dass beide apt-get
und aptitude
Kommandozeilen-Paketverwaltungsoberflächen unter von Debian abgeleitetem Linux mit unterschiedlichen Optionen sind, aber ich bin immer noch etwas verwirrt. Verwenden sie nicht unter der Haube dasselbe APT-System?
Warum unterhält Debian diese parallelen Werkzeuge? ( Bonusfrage : Was um alles in der Welt ist Wajig ?)
debian
package-management
apt
aptitude
Kevin Cantu
quelle
quelle
Antworten:
Der offensichtlichste Unterschied besteht darin, dass
aptitude
eine Terminal-Menüoberfläche bereitgestellt wird (ähnlich wie bei Synaptic in einem Terminal), wohingegenapt-get
dies nicht der Fall ist.Betrachtet man nur die Befehlszeilenschnittstellen, so sind sie sich ziemlich ähnlich, und zum größten Teil ist es wirklich egal, welche Sie verwenden. In den neuesten Versionen von beiden wird nachverfolgt, welche Pakete manuell installiert wurden und welche als Abhängigkeiten installiert wurden (und daher zum automatischen Entfernen berechtigt sind). Tatsächlich glaube ich, dass die beiden Tools in jüngerer Zeit aktualisiert wurden, um tatsächlich dieselbe Datenbank von manuell oder automatisch installierten Paketen gemeinsam zu nutzen. Daher sind Fälle, in denen Sie etwas mit apt-get installieren und dann von aptitude deinstallieren möchten, meist eine Sache von die Vergangenheit.
Es gibt ein paar kleine Unterschiede:
Es gibt noch andere kleine Unterschiede, aber das sind die wichtigsten, die ich mir vorstellen kann.
Kurz gesagt, Aptitude gehört mit Synaptic und anderen übergeordneten Paketmanager-Frontends besser in die Kategorie. Es ist einfach so, dass es auch eine Befehlszeilenschnittstelle gibt, die apt-get ähnelt.
Bonusrunde: Was ist Wajig?
Erinnerst du dich, wie ich diese "Begleiter" -Tools wie apt-cache und apt-mark erwähnt habe? 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, eine Hülle um all diese Werkzeuge. Es gilt auch sudo, wenn nötig. Wenn Sie sagen
wajig install foo
, sagt wajig "Ok,install
wird von bereitgestelltapt-get
und erfordert Administratorrechte" und wird ausgeführtsudo apt-get install foo
. Wenn Sie sagenwajig search foo
, sagt wajig "Ok,search
wird von bereitgestelltapt-cache
und erfordert keine Administratorrechte" und wird ausgeführtapt-cache search foo
. Wenn Sie wajig anstelle von apt-get, apt-mark, apt-cache und anderen verwenden, wird dieses Problem nie auftreten:Wenn Sie wissen möchten, was wajig hinter den Kulissen tut, welche Tools es verwendet, um einen bestimmten Befehl zu implementieren, verfügt es über
--simulate
und--teaching
Modi.Zwei wajig Befehle, die ich oft benutze, sind
wajig listfiles foo
undwajig whichpkg /usr/bin/foo
.quelle
aptitude install linux-im
tab) zu erhalten, während es für apt-get sehr schnell ist. In der Apt-Get-Familie scheint es etwas Caching zu geben, das für Eignung fehlt.aptitude
Habenaptitude search
Sie auch die tolle , die Sie mit sehr leistungsfähigen Suchmustern verwenden können . Du hastaptitude reinstall
. Sie können auch die ncurses (Terminal - Menü) Schnittstelle verwenden , um komplexe Paketoperationen vorbereiten wie Teil Upgrade, ein Paket entfernen, ein anderes einfrieren, diese ein Upgrade, dass Sie dann in einer einzigen Operation ausführen kann ... Oh, und es hat eine interaktiver Konfliktlöser .aptitude
auchaptitude download package-name
das Paket .deb abrufen!aptitude
sondern drin istapt-get
, und das istapt-get --compile source package-name
.apt-get build-dep package-name
gibt es aber ich denke dasaptitude build-dep package-name
macht einen besseren job.Ich habe mich oft gefragt. Wikipedia hebt hervor, dass das Hauptunterscheidungsmerkmal darin besteht, dass aptitude über eine Vollbild-Textmodus-Oberfläche (Curses) verfügt. Die Tatsache, dass Sie die meisten
apt-get
Befehlsargumente mit sichaptitude
selbst verwenden können, ist nur eine Entwurfsentscheidung, umapt-get
Benutzern den Wechsel zuaptitude
und umgekehrt zu erleichtern .Ich habe es noch nie benutzt
wajig
, aber die Dokumentation legt nahe, dass es nur ein Skript ist, das weiß, ob Sie ihm einedeb
Datei (wenn es ausgeführt wirddpkg
) oder einenapt
Paketnamen (wenn esapt-get
stattdessen ausgeführt wird) übergeben. Könnten Sie es ausprobieren und sehen, ob es das ist, was es tut?Der wirkliche Unterschied ist natürlich :
quelle
aptitude
hat mehr. Sie haben vergessen, die endlosen-v
Flaggen zu setzenmoo
. (Sie können nach oben gehen-vvvvvv
)apt-get
gibt,aptitude
aber nicht gibt. (Probieren Sie--help
beide aus)aptitude ist das bevorzugte Programm für die Paketverwaltung über die Konsole, sowohl für Paketinstallationen als auch für Paket- oder Systemupgrades in Debian.
Hier ist eine Übersicht über das Tool und die Funktionen, die es bietet: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude
Also, mein Rat ist, apt-get aptitude einfach zu installieren :)
quelle
aptitude
verfügen jedoch über viele erweiterte Funktionen wie die Suche und den Vollbildmodus alsapt-get
.aptitude
merkt sich, welche Pakete explizit angefordert und welche nur aufgrund von Abhängigkeiten installiert wurden. Es werden automatisch Pakete deinstalliert, die nicht explizit angefordert wurden, wenn sie nicht mehr benötigt werden.apt-get
Behandelt explizit angeforderte Pakete und deren Abhängigkeiten gleich.Eine bessere Verwendung
aptitude
trägt dazu bei, Ihr System sauber zu halten.quelle
apt-get autoremove
Befehl zum Entfernen von Paketen hat, die nur als Abhängigkeiten installiert sind. Ich weiß nicht, wann dieses Feature hinzugefügt wurde, aber eine Website schlägt vor, dass es mit Debian Lenny (Juni 2010) geschehen sein könnte.apt-get autoremove
Entfernt keine Pakete, die nur als Abhängigkeiten installiert wurden, sondern verwaiste Abhängigkeiten, was ein subtiler Unterschied ist. Es kann nicht sagen, ob ein 'leaf'-Paket mit Absicht oder als Abhängigkeit installiert wurde, sodass es dort verbleibt, wo aptitude es wissen und entfernen würde.aptitude
aber dies ist zweifellos ein Killer-Feature.apt-get
Wie auch die verschiedenen Begleittools verbrauchen sie erheblich weniger Speicher als die entsprechenden Befehlszeilenaufrufe vonaptitude
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 das Swap-Thrashingapt-get
erfolgreich abgeschlossen war.aptitude
würde scheitern, wenn ich länger nachdenke.Diese Unterscheidung ist für alles, was einem modernen Desktop-System ähnelt, mehr oder weniger irrelevant.
quelle
Aufbauend auf der Antwort von @ Gaurav sind die Ostereier in den beiden Paketmanagern ziemlich lustig !:
und so weiter.
quelle
Sie bieten die gleichen grundlegenden Funktionen: Installieren und Entfernen von Paketen über die Befehlszeile.
Hier ist ein detaillierterer Vergleich, der auf der Ubuntu Stack Exchange-Website veröffentlicht wird : https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749
quelle
Wie bereits erwähnt , ist die Verwendung der Befehlszeilenschnittstelle unter http://pthree.org/2007/08/12/aptitude-vs-apt-get/
aptitude
wesentlich einfacher.Das zugrunde liegende System ist nicht nur
apt
, sonderndpkg
. Dieses System ist genauso doof wie RPM, es kann nur die Installation und Verwaltung einzelner Pakete übernehmen. Es wird nachverfolgt, 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, die dann mithilfe von installiert werdendpkg
.aptitude
tut dasselbe mit einer anderen Schnittstelle.quelle
Apt-get und aptitude hängen von der APT-Bibliothek ab, ja.
Siehe meine Antwort auf serverfault.com .
Debian ist keine monolithische Einheit, es gibt Leute mit unterschiedlichen Meinungen, und der Aptitude-Betreuer entschied, dass apt-get einige Mängel hatte und etwas Besseres mit Aptitude 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 .
quelle
Ich bin mir nicht sicher, ob dies noch gilt, aber der neueste Debian-Entwickler Joey Hess pflegte immer, die Eignung gegenüber apt-get zu vertreten. Natürlich müssen die Dinge geändert werden, wenn sich Software weiterentwickelt. Apt-get verarbeitet 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.
Eignung kann genauso aussehen wie apt-get
Wenn Sie 'aptitude update' oder 'aptitude upgrade' oder 'aptitude install' ausführen, sieht es mit ein paar Verbesserungen genauso aus und funktioniert genauso wie apt-get. Es gibt also keine Lernkurve.
(Wenn Sie ein selektierter Benutzer sind, ist die Lernkurve offensichtlich nicht eines Ihrer Probleme.)
aptitude verfolgt automatisch installierte Pakete
Sorgen Sie sich nicht mehr darum, nicht verwendete Bibliotheken und Support-Pakete von Ihrem System zu entfernen. Wenn Sie aptitude verwenden, um alles zu installieren, wird protokolliert, welche Pakete nur von Abhängigkeiten abgerufen werden, und diese Pakete werden entfernt, wenn sie nicht mehr benötigt werden.
Aptitude behandelt sanft empfiehlt
Ein langjähriger Misserfolg von apt-get war der Mangel an Unterstützung für die Recommends-Beziehung. Was ein Problem ist, weil viele Pakete in Debian auf Empfehlungen beruhen, um Software einzuspielen, die der durchschnittliche Benutzer im Allgemeinen mit dem Paket verwendet. Dies ist eine nicht seltene Ursache für Probleme, auch wenn apt-get in letzter Zeit zumindest empfohlene Pakete erwähnen konnte, ist es leicht, die Warnungen zu übersehen.
Aptitude unterstützt standardmäßig Empfehlungen und kann so konfiguriert werden, dass auch Vorschläge unterstützt werden. Im Befehlszeilenmodus werden sogar empfohlene Pakete installiert.
Verwenden Sie aptitude als normalen Benutzer und vermeiden Sie es, Ihr System zu beschmutzen
Vielleicht wussten Sie nicht, dass Sie als normaler Benutzer Aptitude im GUI-Modus ausführen können. Nehmen Sie die Änderungen vor, die Sie ausprobieren möchten. Wenn Sie in ein echtes Durcheinander geraten, können Sie 'q' drücken und den Vorgang beenden. Ihre Änderungen werden nicht gespeichert. (Mit Aptitude können Sie auch die Tastenkombination Strg-U verwenden, um Änderungen rückgängig zu machen.) Da das Programm als normaler Benutzer ausgeführt wird, können Sie Ihr System erst dann mit einem Schlauch füllen, wenn Sie aptitude auffordern, etwas zu tun. An diesem Punkt werden Sie zur Eingabe Ihres Root-Kennworts aufgefordert.
aptitude verfügt über eine leistungsstarke Benutzeroberfläche und Suchfunktionen
Zwischen dem kategorialen Browser von aptitude und seiner großartigen Unterstützung für das Filtern und Durchsuchen von Paketen nach Name, Beschreibung, Betreuer, Abhängigkeiten usw. im Mutt-Stil sollten Sie in der Lage sein, Pakete schneller als je zuvor zu finden, bevor Sie aptitude verwenden.
aptitude macht es einfach, veraltete Software im Auge zu behalten
Wenn Debian die Verteilung eines Pakets einstellt, belä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.
aptitude hat eine Schnittstelle zum Debian-Task-System
Mit Aptitude können Sie das Task-System von Debian so verwenden, wie es entwickelt wurde. Sie können die verfügbaren Aufgaben durchsuchen, eine Aufgabe für die Installation auswählen und dann darin suchen und Teile der Aufgabe abwählen, die Sie nicht möchten. apt-get unterstützt keine Aufgaben, und aptitude ist sogar besser als spezielle Tools wie tasksel.
Aptitude unterstützt mehrere Quellen
Wenn Ihre sources.list so konfiguriert ist, dass mehrere Versionen eines Pakets verfügbar sind, können Sie mit aptitude 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 einfach auf die getestete Version zurück.
Aptitude protokolliert seine Aktionen
Das Aptitude-Protokollpaket wird installiert, aktualisiert und nach / varlog / aptitude entfernt. Dies kann hilfreich sein, um herauszufinden, warum nach dem gestrigen Upgrade Probleme aufgetreten sind oder wann Sie ein Partiticlar-Paket entfernt haben.
- siehe schüchterne jo
=================== ab 2010 gibt es hier auch eine neuere Diskussion https://superuser.com/questions/93437/aptitude-vs-apt-get-which- ist-das-empfohlene-aka-das-richtige-Tool-für- StackExchange.
quelle