Was ist der wirkliche Unterschied zwischen „apt-get“ und „aptitude“? (Wie wäre es mit „wajig“?)

Was ist der wirkliche Unterschied zwischen „apt-get“ und „aptitude“? (Wie wäre es mit „wajig“?)

Ich weiß, dass sowohl apt-getals auch aptitudeBefehlszeilenschnittstellen 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 aptitudeeine Terminalmenüschnittstelle bereitgestellt wird (ähnlich wie Synaptic in einem Terminal), während apt-getdies 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-cacheund 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. wajigist eine Lösung für dieses Problem. Es ist im Wesentlichen ein Dispatcher, ein Wrapper um all diese Tools. Es wird auch sudobei Bedarf angewendet. Wenn Sie sagen wajig install foo, sagt wajig „Ok, installwird bereitgestellt von apt-getund erfordert Administratorrechte“, und es wird ausgeführt sudo apt-get install foo. Wenn Sie sagen wajig search foo, sagt wajig „Ok, searchwird bereitgestellt von apt-cacheund 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 --simulateund --teachingwelche Modi es hat.

Zwei Wajig-Befehle, die ich häufig verwende, sind wajig listfiles foound 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-getBefehlsargumente mit sich selbst verwenden können, ist nur eine Designentscheidung, um Benutzern den Wechsel zu und umgekehrt aptitudezu erleichtern .apt-getaptitude

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 debDatei (wenn es ausgeführt wird dpkg) oder einen aptPaketnamen (wenn es apt-getstattdessen 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.

verwandte Informationen