Frage Was ist der Unterschied zwischen apt-get und aptitude?


Ich verstehe nicht, warum es zwei verschiedene Programme in einer minimalen Installation gibt, um Software zu installieren. Tun sie nicht dasselbe? Gibt es einen großen Unterschied? Ich habe überall gelesen, um Eignung über apt-get zu verwenden, aber ich weiß immer noch nicht den Unterschied


55
2018-06-06 12:25


Ursprung




Antworten:


aptitude ist ein Wrapper für dpkg, genau wie apt-get / apt-cache, aber es ist ein One-Stop-Shop-Tool zum Suchen / Installieren / Entfernen / Abfragen. Einige Beispiele, die apt nicht liefern könnte:

$ aptitude why libc6
i   w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.

$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-perl (< 1.15-2), 
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs 
 on the system. This package includes shared versions of the standard 
 C library and the standard math library, as well as many others.

47
2018-06-06 12:34



nicht zu erwähnen: $ aptitude changelog bash - pgs


mikeage@linode ~$ aptitude -h | tail -n 1
              This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
                   This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
    There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
mikeage@linode ~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course. 

44
2018-06-07 18:27





Das offizielle Tool, das derzeit im Debian-Installer verwendet wird und in den Versionshinweisen empfohlen ist aptitude.

Aptitude bietet eine curses-Schnittstelle (wenn sie ohne Parameter ausgeführt wird) und eine Befehlszeilenschnittstelle, die fast alles ermöglicht apt-cache/apt-get tut. Es hat auch eine bessere Abhängigkeit Resolver, die Sie zwischen mehreren Lösungen durchsuchen können. Auch wenn Sie die Befehlszeilenversion verwenden, können Sie mit der vorgeschlagenen Lösung interagieren und zusätzliche Befehle oder Hinweise geben (z. B. das Installieren oder Entfernen eines Pakets, das von einem anderen empfohlen wird).

Aber aptitude basiert auf der libapt-Bibliothek (es ist kein direkter Wrapper von dpkg) und hängt daher von der apt Paket, so dass Sie aptitude nicht ohne apt-get installieren können (was auch im apt-Paket der Fall ist).

$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get

Um mehr darüber zu erfahren, wie apt / dpkg / aptitude interagiert, können Sie die Diagramm von Daniel Burrows (Hauptautor von aptitude). Ein weiteres Diagramm zeigt die Informationen, die von den verschiedenen Paketverwaltungswerkzeugen gespeichert werden: Eine Karte der apt- und dpkg-Statusdateien.

Sie können auch meinen Artikel lesen apt-get, aptitude, ... wählen Sie den richtigen Paketmanager für Sie


18
2018-06-07 14:19



Ausgezeichnete Links Raphaël - danke! - icyrock.com


aptitude merkt, welche Pakete Sie absichtlich installiert haben und welche automatisch installiert wurden, um die Abhängigkeiten zu erfüllen. Nach dem Entfernen eines Pakets entfernt aptitude diese automatisch installierten Pakete, um Ihr System aufgeräumt zu halten. apt-get ist nicht so schlau.

Sobald Sie verschiedene Repositories mit verschiedenen Versionen eines Pakets verwenden, wird aptitude schnell zu einem unverzichtbaren Werkzeug. Stellen Sie sich vor, Sie arbeiten mit backports.org oder inoffiziellen Repositories wie debian-multimedia.org. Dann zeigt aptitude (unten auf der Detailseite eines bestimmten Pakets) die verfügbare Versionsnummer an und ermöglicht Ihnen, eine auszuwählen.

Wenn Sie in eine Situation geraten, in der Programme aufgrund der Verwendung von inoffiziellen Repositories in Konflikt geraten, sehen Sie oben eine "Broken: ..." Anzeige. Sie können l ~ b (limit / flag / broken) eingeben und erhalten nur eine Liste von Paketen, die miteinander in Konflikt stehen. Erleichtert die manuelle Lösung des Konflikts.

Außerdem können Sie "l" verwenden, um die Paketliste zu begrenzen. Stellen Sie sich vor, Sie suchen nach Paketen, die mit "openoffice" beginnen, dann drücken Sie "l" und geben "^ openoffice" ein (es ist ein regulärer Ausdruck) und Sie werden nur diese Pakete sehen. Wählen Sie eine "Pauschal-Paketliste" aus dem Menü und Sie werden Ihr Ziel schnell erreichen.

Das komplette Handbuch ist sehr groß und bietet Ihnen viele weitere Filter und Möglichkeiten. Auch wenn Sie sie nicht kennen, ist aptitude ein praktischer Ersatz für apt-get und Sie können es mit gängigen Parametern wie z

aptitude install ... (Installieren oder Aktualisieren eines Pakets) aptitude remove ... (entferne die binären Teile eines Pakets, behalte aber deine / etc-Konfiguration) apttitide clean ... (entfernen Sie das Paket komplett inklusive Ihrer Konfiguration)


7
2018-06-07 20:22



Tatsächlich verfolgt apt-get, genau wie Lenny, auch Pakete, die nur als Abhängigkeiten von etwas installiert sind, das Sie explizit angefordert haben. Ich benutze Eignung selbst, aber apt-get autoremoveentfernt jetzt Pakete, die als Abhängigkeiten eines Pakets installiert wurden, das seitdem entfernt wurde. - Telemachus


Abgesehen davon, dass Sie beim Ausführen eine hübsche Konsolenoberfläche bereitstellen aptitude ohne Argumente kombiniert es die verschiedenen apt-* Befehle (und dselect) in ein Dienstprogramm.

Um nach einem Paket zu suchen und es zu installieren, verwenden Sie apt-get:

apt-cache search somepkg
apt-get install somepkg

..aber mit Eignung ist es der gleiche Befehl:

aptitude search somepkg
aptitude install somepkg

aptitude hat einige zusätzliche Funktionen, wie aptitude changelog somepkg und Dinge wie das Halten von Paketen (um zu verhindern, dass sie aktualisiert werden) - nichts, was du nicht mit anderen Befehlen / Methoden erreichen könntest, es ist einfach einheitlicher und netter zu benutzen.


5
2018-06-06 15:08



Schade, dass es kein "Apt-Cache Policy" Äquivalent gibt. - hayalci


Wie Sie wissen, wenn Sie ein Paket installieren, wenn es andere Pakete (Abhängigkeiten) benötigt, werden sie auch heruntergeladen und installiert. aptitude trackt zum Zeitpunkt der Installation die Pakete, die mit dem installierten Paket geliefert werden. Wenn Sie die letztere Möglichkeit entfernen, werden Sie nach dem Entfernen der anderen (jetzt nicht verwendeten) "verwaisten" Abhängigkeiten gefragt. apt-get speichert sie automatisch in Ihrem System, wenn Sie das Paket "main" entfernen.

Es sieht so aus, als ob die neuesten Versionen von apt-get ähnliche Funktionen haben: http://www.psychocats.net/ubuntu/aptitude


4
2018-06-06 12:35





Der größte Unterschied besteht darin, dass aptitude interaktiv gestaltet wurde, wobei die apt-Tools besser für die Skripterstellung geeignet sind. Sie können letztere, d. H. Die apt-Werkzeuge, interaktiv einfach mit viel mehr Aufwand verwenden, um die gleichen Ergebnisse zu erzielen, die aptitude bietet. Wenn Sie aus irgendeinem Grund nur mit einem oder dem anderen Werkzeug auskommen mussten, müssen Sie entscheiden, wie viel Aufwand Sie in Ihr Paketmanagement investieren möchten.


3
2018-06-06 12:56





Einer der gravierenden Vorteile von aptitude ist die Fähigkeit, Abhängigkeiten zu berechnen. Erstens kann es komplizierte Interdependenzen ohne Intervention von Ihnen selbst behandeln, was häufig nicht gelingt. Aber wenn Ihnen die Lösung, die sie Ihnen präsentiert hat, nicht gefällt (und sie wird ihre eigene Lösung finden, um zu demonstrieren, wie gut sie dies meint), können Sie sie bitten, wegzugehen und eine andere Lösung zu finden, um den Konflikt zu lösen.

Es macht wirklich eine tolle Paketverwaltung.


1
2018-06-06 12:55





Der größte Unterschied ist: Geben Sie "aptitude" ohne Parameter ein.

Sie erhalten eine textbasierte Benutzeroberfläche, Sie können die Tastatur zum Suchen / Navigieren verwenden usw. Informationen zu Abhängigkeiten, Abhängigkeiten in umgekehrter Richtung, alle verfügbaren Versionen eines Pakets anzeigen und auf diesem Bildschirm können Sie eine Paketmanager-Operation für sie ausführen.

Sie können "g" drücken, um die Änderungen zu überprüfen, ggf. die Paketerweiterungen und -entfernungen zu ändern und alle ausstehenden Vorgänge anzuwenden.

Eine großartige visuelle Möglichkeit der Paketverwaltung über eine SSH-Verbindung oder ein einfaches altes Terminal.


1
2018-06-06 13:52