.png)
Ich weiß, dass sowohl apt-get
als auch aptitude
Befehlszeilenschnittstellen zur Paketverwaltung auf einem von Debian abgeleiteten Linux mit unterschiedlichen Optionen sind, aber ich bin immer noch etwas verwirrt. Verwenden sie unter der Haube nicht dasselbe APT-System?
Warum pflegt Debian diese parallelen Tools? (Bonusfrage: Was in aller Welt istwajig?)
Antwort1
Der offensichtlichste Unterschied besteht darin, dass aptitude
eine Terminalmenüschnittstelle bereitgestellt wird (ähnlich wie Synaptic in einem Terminal), während apt-get
dies nicht der Fall ist.
Betrachtet man nur die Befehlszeilenschnittstellen der beiden, sind sie recht ähnlich, und größtenteils ist es wirklich egal, welches Sie verwenden. Neuere Versionen beider Tools 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 sogar erst vor Kurzem aktualisiert wurden, um tatsächlich dieselbe Datenbank mit manuell und automatisch installierten Paketen zu verwenden, sodass Fälle, in denen Sie etwas mit apt-get installieren und Aptitude es dann deinstallieren möchte, größtenteils der Vergangenheit angehören.
Es gibt einige geringfügige Unterschiede:
- aptitude entfernt die entsprechenden Pakete automatisch, während apt-get hierfür einen separaten Befehl benötigt.
- Die Befehle fürAktualisierungVergleichedist-Upgradewurden in aptitude in die wahrscheinlich genaueren Namen umbenanntTresor-UpgradeUndVoll-Upgrade, jeweils.
- aptitude führt tatsächlich nicht nur die Funktionen von apt-get aus, sondern auch die einiger seiner Begleittools wie apt-cache und apt-mark.
- aptitude hat eine leicht andere Abfragesyntax für die Suche (im Vergleich zu apt-cache)
- Eignung hat dieWarumUndWarum nichtBefehle, die Ihnen sagen, welchemanuell installiertPakete verhindern eine Aktion, die Sie möglicherweise ausführen möchten.
- Wenn die von Ihnen gewünschten Aktionen (Installieren, Entfernen, Aktualisieren von Paketen) Konflikte verursachen, kann aptitude mehrere mögliche Lösungen vorschlagen. apt-get sagt einfach: „Es tut mir leid, Dave, ich kann dir das nicht erlauben.“
Es gibt noch weitere kleine Unterschiede, aber das sind die wichtigsten, die mir einfallen.
Kurz gesagt, aptitude gehört eher in die Kategorie Synaptic und andere Paketmanager-Frontends höherer Ebene. Es verfügt zufällig auch über eine Befehlszeilenschnittstelle, die apt-get ähnelt.
Bonusrunde: Was ist Wajig?
Erinnern Sie sich, dass ich diese „Begleit“-Tools wie apt-cache
und erwähnt habe apt-mark
? Es gibt eine ganze Menge davon, und wenn Sie sie häufig verwenden, können Sie sich vielleicht nicht merken, 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. Es wird auch sudo
bei Bedarf angewendet. Wenn Sie sagen wajig install foo
, sagt wajig „Ok, install
wird bereitgestellt von apt-get
und erfordert Administratorrechte“, und es wird ausgeführt sudo apt-get install foo
. Wenn Sie sagen wajig search foo
, sagt wajig „Ok, search
wird bereitgestellt von apt-cache
und erfordert keine Administratorrechte“, und es wird ausgeführt apt-cache search foo
. Wenn Sie wajig anstelle von apt-get, apt-mark, apt-cache und anderen verwenden, werden Sie dieses Problem nie haben:
$ apt-get search foo
E: Invalid operation search
Wenn Sie wissen möchten, was Wajig hinter den Kulissen macht, welche Tools es zur Implementierung eines bestimmten Befehls verwendet --simulate
und --teaching
welche Modi es hat.
Zwei Wajig-Befehle, die ich häufig verwende, sind wajig listfiles foo
und wajig whichpkg /usr/bin/foo
.
Antwort2
Das habe ich mich selbst oft gefragt.Wikipedia-Highlightsdass das Hauptunterscheidungsmerkmal darin besteht, dass Aptitude eine Vollbild-Textmodus-Oberfläche (Curses) hat. Die Tatsache, dass Sie die meisten apt-get
Befehlsargumente mit sich selbst verwenden können, ist nur eine Designentscheidung, um Benutzern den Wechsel zu und umgekehrt aptitude
zu erleichtern .apt-get
aptitude
Ich habe es noch nie verwendet wajig
, aber die Dokumentation legt nahe, dass es sich nur um ein Skript handelt, das weiß, ob Sie ihm eine deb
Datei (wenn es ausgeführt wird dpkg
) oder einen apt
Paketnamen (wenn es apt-get
stattdessen ausgeführt wird) übergeben. Könnten Sie es ausprobieren und sehen, ob es das tut?
Natürlich, dierealUnterschied ist:
gaurav@fern:~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
gaurav@fern:~$ aptitude moo
There are no Easter Eggs in this program.
Antwort3
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 seine Funktionen gegenüber apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude
Mein Rat ist also, einfach apt-get install aptitude auszuführen :)
Antwort4
Aufbauend auf der Antwort von @Gaurav sind die Easter Eggs 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.