Antworten:
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.
Viele 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
:
aptitude keep-all
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
und aptitude
werden Pakete verfolgen , die automatisch als Abhängigkeit von etwas anderem installiert wurden. Wenn Sie beispielsweise installieren mpd
, erhalten Sie möglicherweise lib-so-and-so
eine Abhängigkeit. Sie tun dies, damit, wenn Sie später entfernen mpd
, auch lib-so-and-so
entfernt wird. Aber aptitude
und apt-get
damit anders aufräumen. aptitude
versucht sofort, alle verwaisten Abhängigkeiten zu entfernen; aber apt-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 sie mpd
benötigt haben. Wenn Sie sie nicht behalten mpd
, sollten Sie sie nicht mehr benötigen. Wenn noch ein anderes Paket davon abhängt, dann beide aptitude
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 das gnome
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, dass aptitude
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
oder apt-get
sorgfältig, bevor ja zu etwas zu sagen.aptitude -s safe-upgrade
oder immer einen Trockenlauf durchführen können aptitude -s install foo
. Die -s|--simulate
Flagge ist dein Freund.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.
apt-get
zu aptitude
. Damals haben sie viele wesentliche Funktionen sehr unterschiedlich gehandhabt. Im Laufe der Zeit sind sie sich viel ähnlicher geworden und aptitude
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 als apt-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 zu apt-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.
Sind sie nicht nur eine andere Schnittstelle zum selben Backend?
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!
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 wie aptitude install foo
.
Grüße
apt-get
bieten auch das automatische Entfernen von Paketen, die nur als Abhängigkeiten installiert sind. Der verbleibende Unterschied in dieser Hinsicht besteht darin, dass aptitude
die Abhängigkeiten (je nach Bedarf) sofort entfernt werden, Sie jedoch apt-get
nur aufgefordert werden, den Befehl auszuführen apt-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.
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 waren