apt-get und aptitude sind verschiedene Benutzeroberflächen, die Teil desselben Paketverwaltungssystems, APT, dem Advanced Packaging Tool, sind . Beispielsweise werden beide mit konfiguriert /etc/apt/apt.conf
, beide verwenden denselben Dateibereich und dieselben Formate, um den Paketstatus darzustellen, und denselben Dateibereich, um heruntergeladene .debs zu speichern.
Wie sie sich unterscheiden, ist ihr internes Regelsystem, das potenzielle Konflikte zwischen Paketen darstellt, wie sie gelöst werden (z. B. während apt-get dist-upgrade
vs. aptitude full-upgrade
) und wie diese bei der Interaktion mit dem Benutzer ausgedrückt werden. Im Allgemeinen können beide in schwierigen Situationen das Falsche tun, aber apt-get macht es viel wahrscheinlicher falsch als aptitude.
aptitude
entfernt sie sofort,apt-get
fordert Sie jedoch nur durch Eingabe des Befehls auf, sie zu entfernenapt-get autoremove
. Im Allgemeinen möchten sie dieselben Elemente entfernen. Siehe diesen Link für einen komplexen Fall, in dem sie sich nicht einig warenViele gute Ratschläge sind bereits hier, aber lassen Sie mich eine Sache hinzufügen, die niemand erwähnt hat. Wenn Sie sich für einen Wechsel entscheiden, möchten Sie diesen Befehl möglicherweise ausführen, je nachdem, was Sie bisher gemacht haben
apt-get
:Dieser Befehl setzt
aptitude
die Wahrnehmung zurück , welche Pakete Waisen sind und entfernt werden sollten.Hier ist der Grund , warum es manchmal nützlich: für eine Weile jetzt, beide
apt-get
undaptitude
werden Pakete verfolgen , die automatisch als Abhängigkeit von etwas anderem installiert wurden. Wenn Sie beispielsweise installierenmpd
, erhalten Sie möglicherweiselib-so-and-so
eine Abhängigkeit. Sie tun dies, damit, wenn Sie später entfernenmpd
, auchlib-so-and-so
entfernt wird. Aberaptitude
undapt-get
damit anders aufräumen.aptitude
versucht sofort, alle verwaisten Abhängigkeiten zu entfernen; aberapt-get
schlägt nur vor, dass Sie laufen,apt-get autoremove
um aufzuräumen. (Die Logik dahinter ist, dass Sie die Bibliothek erst erhalten haben, seit Sie siempd
benötigt haben. Wenn Sie sie nicht behaltenmpd
, sollten Sie sie nicht mehr benötigen. Wenn noch ein anderes Paket davon abhängt, dann beideaptitude
undapt-get
wird dies wissen und nicht versuchen, die Bibliothek zu entfernen.)Was ist mein Punkt? Nun, wenn Sie ständige Anstöße gesehen haben
apt-get autoremove
und zu wechseln,aptitude
können Sie beim ersten Versuch, etwas zu installieren, einen Schock erleben.aptitude
Ich werde sofort versuchen, all diese Waisenkinder zu entfernen. Im Allgemeinen ist dies in Ordnung (sie sind schließlich Waisen und nicht notwendig), aber es gibt einen komplizierenden Fall. Die Desktop-Metapakete beinhalten alle eine komplexe Abhängigkeitskette, in der jedes einzelne Programm als Abhängigkeit eines virtuellen Paket-Wrappers abgerufen wird. Wenn Sie beispielsweise Gnome installiert haben, weil Sie dasgnome
Paket installiert haben , wurden alle Ihre normalen Desktop-Programme als Abhängigkeiten installiert. Wenn Sie eines dieser Programme (z. B. Ekiga oder Gedit) deinstalliert haben, dann in den Augen vonaptitude
Der Rest Ihres Desktops sollte ebenfalls entfernt werden. Beachten Sie, dassaptitude
immer gefragt wird, bevor Dinge entfernt werden, aber die Leute oft 'Y' eingeben, ohne zu lesen. Nach meiner Erfahrung ist dies die häufigste Beschwerde / Verwirrung für Leute, die neu bei Debian sind.Zwei allgemeine Ratschläge:
aptitude
oderapt-get
sorgfältig, bevor ja zu etwas zu sagen.aptitude -s safe-upgrade
oder immer einen Trockenlauf durchführen könnenaptitude -s install foo
. Die-s|--simulate
Flagge ist dein Freund.quelle
Auf der Debian-Mailingliste wurde vor Jahren gesagt, dass der Wechsel von apt-get zu aptitude riskant sei. Dies ist zwei Debian-Versionen (sagen wir 10 Jahre) vor. All diese Probleme scheinen jetzt gelöst zu sein, und sicherlich habe ich weder unter Debian noch unter Ubuntu Probleme gesehen.
quelle
apt-get
zuaptitude
. Damals haben sie viele wesentliche Funktionen sehr unterschiedlich gehandhabt. Im Laufe der Zeit sind sie sich viel ähnlicher geworden undaptitude
eine Tonne gereift. In 90% der Fälle sollte es jetzt keine Probleme geben, wenn Sie wechseln. Siehe meinen Beitrag für einen Randfall.Ich würde auch sagen, mach weiter und benutze
aptitude
.Aptitude
hat ein besseres Abhängigkeitsmanagement alsapt-get
. Dies hilft dabei, die Anzahl verwaister Pakete niedrig zu halten.Ich habe vor einiger Zeit gelesen, dass
aptitude
der Algorithmus zum besseren dist-Upgrade im Vergleich zuapt-get
. Aber das ist kaum ein Killer-Feature, da es in der Lebensdauer eines Systems nicht so oft verwendet wird.Außerdem haben Sie mehr Dinge in einem Tool vereint. Anstatt mich daran zu erinnern, wann oder mit welchen Schaltern ich anrufen soll
apt-get
, benutze ich einfach die Fähigkeit und erledige die meisten Dinge.apt-cache
dpkg
Was die Komplikationen beim Wechsel "in der Mitte" betrifft: Ich kann mich nicht erinnern, welche gehabt zu haben, als ich es getan habe.
quelle
Sind sie nicht nur eine andere Schnittstelle zum selben Backend?
quelle
aptitude
ist eine funktionsfähigere Oberfläche ...dpkg
.dpkg
installiert aber nur die Pakete; Es sind die Frontends, die für die Suche, die Auflösung von Abhängigkeiten und das Herunterladen zuständig sind.Nach meiner Erfahrung haben sie eine andere Art, Paketversionen zu fixieren. In meinem Fall habe ich aptitude angewiesen, bestimmte Pakete zu sperren, vorausgesetzt, ich bin vor zukünftigen Updates sicher. Ich lag falsch; Der von Cron geplante Update-Manager, der apt-get verwendet, aktualisiert es zu meiner Bestürzung.
Drats, als ich dies schrieb, googelte ich und fand heraus, dass der Fehler ( # 557580 Eignung gehorcht nicht den Pins in den Einstellungen.d / *) bereits behoben wurde!
quelle
Ich benutze sowohl apt-get als auch aptitude ohne Probleme: Ich habe die gleiche Frage ... Warum sagen die Leute das ??? : D.
Gehen Sie weiter, und keine Sorge: Eignung ist nur ein Text-gui für apt-get, dass Sie auch als Kommandozeilen - Anwendung verwenden, zum Beispiel könnten
apt-get install foo
die gleiche ist wieaptitude install foo
.Grüße
quelle
apt-get
bieten auch das automatische Entfernen von Paketen, die nur als Abhängigkeiten installiert sind. Der verbleibende Unterschied in dieser Hinsicht besteht darin, dassaptitude
die Abhängigkeiten (je nach Bedarf) sofort entfernt werden, Sie jedochapt-get
nur aufgefordert werden, den Befehl auszuführenapt-get autoremove
. Aber beide verfolgen Abhängigkeiten jetzt auf die gleiche Weise. Sie unterscheiden sich jedoch immer noch in der Behandlung komplexer Abhängigkeiten und Randfälle (sehr komplizierte Installationen oder Entfernungen), aber für die Mehrheit der Menschen und die meisten Situationen funktionieren sie jetzt gleich.