Vor einiger Zeit habe ich gelesen, dass dies aptitude
das bevorzugte Tool für die Installation auf Debian-basierten Systemen ist. Wenn Sie sich jedoch umsehen, wie Sie ein Debian-basiertes System verwalten, wird Aptitude selten erwähnt. Die meisten Leute scheinen es zu bevorzugen apt-get
- und das gilt sogar für die Debian-Wiki-Seiten!
Ich frage mich also, ob ich etwas verpasst habe. Welches ist das richtige Werkzeug?
aptitude
standardmäßig installiert .apt-get source package-name
werde es tun, aber ich habe keine entsprechende Eignung gesehenaptitude search package-name
in Eignung funktioniert. Ein anderer istaptitude why package-name
auch nützlich, aber nicht inapt-get
. Ich finde auch, dass die Kommandozeileaptitude
etwas aufgeräumt ist im Vergleich zuapt-get
. Aber wie du bemerkt hast, gibt esaptitude build-dep package-name
doch keineaptitude source package-name
.Antworten:
aptitude
undapt-get
arbeiten für viele Aufgaben gleich, aber für die schwierigsten Fälle, wie etwa Distributions-Upgrades (apt-get dist-upgrade
vs.aptitude full-upgrade
), gelten andere Regeln, und die Regeln von aptitude sind in der Praxis fast immer besser, wenn sie nicht übereinstimmen.Der Grund, warum Sie mehr Dokumentation für
apt-get
over sehen,aptitude
ist größtenteils Trägheit: Esaptitude
war lange nicht das empfohlene Front-End für APT, daher wurde ein Großteil der vorhandenen Dokumentation nicht aktualisiert, und es gibt viele Leute, die die Vorteile vonaptitude
over erkennenapt-get
aberapt-get
reflexartig verwenden.Ich habe vor kurzem den Punkt erreicht, an dem ich normalerweise
apt
mit einemi
und nicht mit einem folge,-
wenn ich tippe.Postscript Beachten Sie, dass die Regeln, die in
apt-get
undaptitude
für das Verschieben von Zielen verwendet werden, - wie Hubert in Kommentaren festhält, wird der von Debian Lenny empfohlene Aktualisierungspfad jetzt verwendetapt-get
, nichtaptitude
. Dies spiegelt die Tatsache wider, dass inapt-get
Bezug auf das aktuelle Paket weniger Status aufgezeichnet wird alsaptitude
und dass der APT-Status nicht mehr "sauber" ist und dieapt-get
Regeln intelligenter sind als früher. Ich benutze und empfehle immer nochaptitude
überapt-get
, aber es ist eine differenziertere Empfehlungquelle
apt-get
hat den Vorteil, speichereffizienter zu sein. Dies ist für die meisten Benutzer unwahrscheinlich. Ich war mir dessen nicht wirklich bewusst, bis ich versuchte, Pakete für eine vollständige Debian-Installation mit 32 MB RAM zu aktualisieren.aptitude
endete damit, ungefähr eine Stunde pro Lauf im Tausch zu krachen; apt-get war deutlich schneller.aptitude
Upgrade von Lenny durchgeführt werden soll, obwohl dies für frühere Upgrades unterstützt wurde. Ich denke also nicht, dass es nur Trägheit ist ...apt-get
fast immer Fehler (Erfahrung von Ubuntu Server 12.10, 14.04) dabeiaptitude
sind, die tatsächlich etwas bewirken können. Ich verstehe immer noch nicht, wie es Apt-Get noch gibt.aptitude
macht es bequem zu zeigen, welche Programme in einer Suche Sie bereits auf dem System installiert haben (mit Hilfe vongrep
):Tatsächlich ist
aptitude
die Suche bei weitem leistungsfähiger als die Weiterleitunggrep
, da sie die kontextbezogene Suche unterstützt:Dies findet zB alle Pakete mit 'flash' im Paketnamen, die installiert sind:
Eine äquivalente "lange Form" der "kurzen Form"
~i
:Beachten Sie, dass Suchmuster standardmäßig kostenlos (nicht verankert) sind. Um sie zu verankern, müssen Sie die Ankermuster '
^
' (Anfang der Zeichenfolge) und / oder '$
' (Ende der Zeichenfolge) verwenden.So finden Sie alle Pakete, deren Namen entweder mit 'ttf' oder 'font' beginnen:
(Hinweis: Dies ist eine Abhilfe für einen Fehler ist in
aptitude
, wie die richtige regex von'^(ttf|font)'
funktioniert nicht richtig - es findet Pakete , deren Namen beginnen mit ‚ttf‘ oder enthalten ‚font‘.)Weitere nützliche
aptitude
Funktionen:Zeige alle Pakete mit 'firmware' im Namen, die AUCH 'wireless' in ihrer Beschreibung haben:
oder lange Form:
(Hinweis: In der Kurzform werden durch Leerzeichen getrennte Argumente in Anführungszeichen UND-verknüpft. Wenn sie als separate argv [] -Befehlszeilenargumente übergeben werden, werden sie ODER-verknüpft.)
~U
Zeigt alle Pakete an, die von ihren aktuellen Versionen mit neuen Versionen aktualisiert werden können:Zeige Pakete, die 'gcc-multilib' empfehlen
Erklären Sie, warum möglicherweise 'Sicherungs-Utils' installiert werden müssen
(Dieses Beispiel zeigt, wie verrückt es ist, seit Squeeze (?) Alle "Recommends" -Pakete zu installieren. Wenn Sie gnome-terminal installieren, müssen Sie ntfsprogs und fuse-utils installieren, egad! Ich denke, die meisten Leute wollen nur die Terminalperspektive und nicht die integrierte NTFS-Integration, die optional ist, sofern sie nicht angegeben wurde.)
Hier finden Sie alle Pakete, die den Dienst "mail-transport-agent" anbieten:
Zeigen Sie alle installierten Paketnamen an, die nicht unbedingt erforderlich sind oder von Abhängigkeiten automatisch installiert werden:
Leider ist dieses Zeug ziemlich schlecht dokumentiert und schwer zu finden, aber hier ist die beste Referenz (vom 'Aptitude'-Betreuer).
quelle
apt-get
überapt-cache search NAME
Laut den Debian GNU / Linux-FAQ über Paketverwaltung ist aptitude komplexer als apt-get und hängt von den weniger komplexen Paketverwaltungstools apt-get und dpkg ab.
Daher können Sie für einfachere Anforderungen die einfacheren Tools verwenden, während Sie für komplexere Anforderungen auf das ausgefeiltere Tool (apitude) zählen können.
Zitat aus der Debian-FAQ: "aptitude bietet die Funktionalität von dselect und apt-get sowie viele zusätzliche Funktionen, die in keinem der beiden Programme zu finden sind."
quelle
aptitude kennzeichnet Pakete, die aufgrund einer Abhängigkeit installiert wurden, mit dem auto-Tag. Wenn Sie jetzt ein Paket bereinigen oder entfernen, entfernt aptitude automatisch die automatisch installierten Pakete, die nicht mehr neben dem Paket verwendet werden, das Sie bereinigen oder entfernen möchten.
Dies ist der Hauptgrund, warum ich persönlich denke, dass Eignung immer besser ist als Eignung.
quelle
apt-get
das eigentlich auch mitapt-get autoremove <package-name>
. Beideapt-get
undaptitude
markiere automatisch installierte Paketeaptitude
tun aufzuräumen Auto Pakete jedes Mal verwendet wird . Währendapt-get
Sie das explizit starten müssen.Es gibt kein geeignetes Werkzeug. Sie können beide kombinieren, je nachdem, welches für die jeweilige Aufgabe am besten geeignet ist. aptitude ist ein großartiges Tool für Test- / Sid-Benutzer, aber es ist in der Regel weniger zuverlässig für die Aktualisierung von einem Stall zum nächsten. Siehe meinen Artikel apt-get, aptitude,… wähle den richtigen Paketmanager für dich .
quelle