apt-get oder aptitude?

Diskussion rund um unser Wiki.
suno
Beiträge: 354
Registriert: 25.07.2008 17:33:40

Re: apt-get oder aptitude?

Beitrag von suno » 04.04.2010 18:40:53

nikaya hat geschrieben:Neulich im Sidux-Forum hat ein gewisser "modax" einige interessante Klärungen zu Aptitude gemacht:

http://sidux.com/index.php?name=PNphpBB ... 539#154539 ff.
Zitat:
Apart from that, there is no real difference between "apt-get dist-upgrade" and "aptitude dist-upgrade" as long ...

Kleiner bug, aptitude dist-upgrade gibts eigenlich gar nicht bzw. nur als alias
/pedantic-mode on
s/aptitude dist-upgrade/aptitude full-upgrade/
/pedantic-mode off
:D

Fjunchclick

Re: apt-get oder aptitude?

Beitrag von Fjunchclick » 04.04.2010 19:09:34

suno hat geschrieben: aptitude zu verwenden macht aus technischer Sicht Sinn. Man hat z.B. kein logging mit apt-get.
/var/log/apt
Und: Sinn kann nicht gemacht werden. :wink:
Auch andere Dinge macht aptitude entweder ueberhaupt d.h. diese fehlen mit apt-get, oder, aptitude macht Dinge besser als apt-get.
Nämlich?
Debian-FAQ, Version 4.0.3, 26 June 2008

Hier noch einmal die relevanten Beiträge von Danielx:
Danielx hat geschrieben:
Ibex hat geschrieben:ja, soweit war mir das schon klar, allerdinsg speichern ja soweit ich weiß aptitude und apt-get die informationen über installierte Programme an unterschiedlichen Orten, weswegen es zu problemen kommt, wenn man die beiden abwechselnd verwendet, zumindestens wenn man sie verwendet um nicht länger benötigte Pakete zu entfernen.
Das ist seit Lenny kein Problem mehr.

Aptitude entfernt standardmäßig Pakete per "autoremove", um bei apt-get das gleiche Verhalten zu erreichen kann man Pakete auch so entfernen:

Code: Alles auswählen

apt-get autoremove <Paketname>
Aber auch wenn man Pakete mit apt-get nur per "remove" entfernt, bleiben die Datenbanken synchron!
Wenn man Pakete mit apt-get oder aptitude installiert, auf hold setzt, ein safe-upgrade bzw. upgrade oder ein full-upgrade bzw. dist-upgrade macht, bleiben die Datenbanken ebenfalls synchron!

Siehe auch:
http://www.go2linux.org/apt-get_and_aptitude
viewtopic.php?f=29&t=108185#p683793
viewtopic.php?f=27&t=101372#p636024

Und da es gerade so schön dazu passt:
http://algebraicthunk.net/~dburrows/blo ... m-diagram/

Gruß,
Daniel
Danielx hat geschrieben:
nikaya hat geschrieben:Und der Kommentar von dburrows dazu:
dburrows hat geschrieben:There's a lot of folklore in the Debian community about how apt works. Unfortunately, a lot of it is also just plain wrong. For instance, I often hear people confidently say things like "aptitude is a frontend to apt-get" (it isn't).

These misconceptions are understandable -- all the programs that use apt perform the same tasks, many of them imitate each other's interfaces, and they all share common code. It's easy to assume that they must all be invoking apt-get under the hood.
Und was willst du damit sagen?
nikaya hat geschrieben:Da ich apt-get nicht nutze sondern ausschließlich Aptitude kann ich nur spekulieren, aber laut obigem Diagramm von dburrows greift Aptitude für einige Infos auf eine eigene Datenbank zurück (in /var/lib/aptitude/pkgstates):
Aptitude reads and updates /var/lib/aptitude/pkgstates -->
Stores the actions that are queued up on each package and which packages are "new". Also used to remember the last dpkg state so that aptitude states are consistent with dpkg.
Ja, das ist richtig.

Wenn du dir das Schaubild genau ansiehst, wirst du feststellen, dass sowohl apt-get als auch aptitude auf extended_states zugreifen, bei den Paketlisten ist das ebenso.

Hier mal einige Beispiele:
  • Wenn man mit apt-get die Paketlisten aktualisiert, dann sind diese auch unter aptitude verfügbar und umgekehrt gilt das ebenso.
  • Wenn man ein Paket mit apt-get manuell installiert, dann ist das auch für aptitude als manuell installiert markiert und umgekehrt gilt das ebenso.
  • Wenn ein Paket mit apt-get automatisch mit installiert wird, dann ist das auch für aptitude als auto-installiert markiert und umgekehrt gilt das ebenso.
  • Aptitude und apt-get installieren die gleichen Pakete, da beide empfohlene Pakete (Recommends) mit installieren, aber vorgeschlagene Pakete (Suggests) nicht.
  • Wenn man über die Datei /etc/apt/preferences die Priorität von Paketen u.s.w. anpasst, dann sind diese Prioritäten sowohl für apt-get als auch aptitude angepasst.
  • Wenn man Pakete mit "apt-get autoremove <Paketname>" entfernt, dann werden exakt die selben Pakete entfernt, wie wenn man "aptitude remove <Paketname>".
  • u.s.w.
D.h. apt-get und aptitude sind also synchron.[/color]
Ibex hat geschrieben:Vielen Dank für die Antworten und für das schöne Diagramm. Wenn ich es richtig lese, speichert apt-get Informatione darüber, welche Pakete händisch oder automatisch installiert wurden, in der Datei apt state (/var/lib/apt) und aptitude in der Datei aptitude state (/var/lib/aptitude).
Nein, das ist falsch.
Ibex hat geschrieben:Es ist also nicht ratsam, beide Programme abwechselnd zu verwenden, weil es dann zu inkonsitenzen in diesen Dateien kommt.
Das sehe ich nicht so.
Ibex hat geschrieben:Oder mach ich mir zu viel Gedanken, und es ist einfach egal, was man verwendet?
Ein Mischen/Wechseln von apt-get und aptitude ist seit Lenny problemlos möglich, zu "hold", siehe unten.
KBDCALLS hat geschrieben:Da bin ich anderer Meinung. Ich hatte ein Paket mit aptitude auf hold gesetzt. APT hat sie einen feuchten Kehricht darum geschert.
apt-get selbst kann kein hold setzen, dies geht nur über den Umweg mit dpkg.
Aptitude übernimmt den über dpkg gesetzten hold-Status problemlos in seine eigene Datenbank und apt-get verwendet den hold-Status aus der dpkg-Datenbank (/var/lib/dpkg/status) problemlos.
Allerdings ändert Aptitude den hold-Status in der dpkg-Datenbank (/var/lib/dpkg/status) nicht, wenn man ein Paket per "aptitude hold <Paketname>" auf hold bzw. unhold setzt, man sollte also Pakete nur per dpkg auf hold setzen und auf "aptitude hold" verzichten.
Das scheint mir ein Bug in Aptitude zu sein.

Gruß,
Daniel

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: apt-get oder aptitude?

Beitrag von catdog2 » 04.04.2010 20:49:16

Fjunchclick hat geschrieben:
Auch andere Dinge macht aptitude entweder ueberhaupt d.h. diese fehlen mit apt-get, oder, aptitude macht Dinge besser als apt-get.
Nämlich?
Die Abhägigkeitsauflösung ist bei aptitude einfach viel besser. Am anfang denkt man sich zwar schon "was macht das ding schon wieder für einen mist?". Aber wenn man sich mal daran gewöhnt hat merkt man, dass es irgendie deutlich besser funktionert.

//edit:
Ein paar beispiele was apt-get nicht kann:

Code: Alles auswählen

 forbid-version - Forbid aptitude from upgrading to a specific package version.
 changelog    - View a package's changelog.
 hold         - Place packages on hold.
 unhold       - Cancel a hold command for a package.
Es gibt auch was was nur apt-get kann: apt-get source
Zuletzt geändert von catdog2 am 04.04.2010 20:56:49, insgesamt 1-mal geändert.
Unix is user-friendly; it's just picky about who its friends are.

Fjunchclick

Re: apt-get oder aptitude?

Beitrag von Fjunchclick » 04.04.2010 20:56:04

Hast du denn die Beiträge von Danielx nicht gelesen?
Seit Lenny machen aptitude und apt genau das Gleiche! Gleiche Konfiguration natürlich vorausgesetzt.
Aber gut, es ist wohl wenig sinnvoll, das immer wieder zu wiederholen.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: apt-get oder aptitude?

Beitrag von catdog2 » 04.04.2010 21:10:39

Fjunchclick hat geschrieben:Hast du denn die Beiträge von Danielx nicht gelesen?
Seit Lenny machen aptitude und apt genau das Gleiche! Gleiche Konfiguration natürlich vorausgesetzt.
Aber gut, es ist wohl wenig sinnvoll, das immer wieder zu wiederholen.
Eben nicht genau das gleiche. Sie sind mittlerweile soweit kompatibel, dass sie austauschbar sind. Allerdings sind es immer noch 2 verschiedene Programme mit unterschiedlichem featureset und unterschiedlichem Verhalten im Detail.
Unix is user-friendly; it's just picky about who its friends are.

Benutzeravatar
schorsch_76
Beiträge: 2535
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: apt-get oder aptitude?

Beitrag von schorsch_76 » 02.02.2013 09:12:06

Fortsetzung von: http://debianforum.de/forum/viewtopic.p ... 85#p917030
Natureshadow hat geschrieben:
uname hat geschrieben:
Weil aptitude deine Paketverwaltung und NM dein Netzwerk kaputt macht.
Vorteil bei Debian ist, dass es verschiedene Wege gibt ein Ziel zu erreichen. Und dafür lohnt es sich dann mal auf die beiden Genannten übergangsweise zu verzichten.
Nein nein. Du hättest Recht, dass das ein Vorteil ist, wenn es stimmen würde. Aber schau mal meine Bugs an - aptitude führt NICHT zum selben Ziel - es benutzt eine eigene Datenbank, während alle anderen dpkg-Frontends tatsächlich die von dpkg benutzen. Deshalb ist es zu allem anderen inkompatibel - ein System, das einmal aptitude gesehen hat, kann ohne Aufwand nicht mehr verlässlich andere Tools benutzen.

Deshalb helfen Kommandos wie apt-cache und dpkg-* in diesem Thread auch nicht - weil sie nicht mehr zuverlässig funktionieren. Und deshalb ist das nicht wirklich supportbar.

Aber Diskussion dazu im Detail besser woanders.
@Natureshadow: Wenn dem so wäre, wären alle meine Systeme nicht am laufen und hoffnungslos defekt. Ausserdem wäre bei solchen extremen "grave" Bugs, aptitude nicht mehr im stable Repo und wäre entfernt worden. Als Beweis: [1] [2] [3] [4] [5] [6] [7]

Das Debian Anwenderhandbuch widerspricht deiner Aussage mit den getrennten Datenbanken. Siehe auch [7] hier im Thread.

Siehe auch der Thread hier. Hast du denn irgendwelche Quellen für deine Behauptung? Natürlich gibt es Bugs die lange nicht geschlossen werden. Die finde ich aber auch in apt Debian172050 oder bash Debian Bugreport158035. Der Bug von apt ist sicher in der selben Kategorie wie der den du bei aptitude aufgeführt hast.

Zu dem oben genannten Thread: Daas verteufeln von aptitude/NetworkManager ist ganz genau das gleiche wie das verteufeln von pulseaudio. Es mag mal wahr gewesen sein, das hat sich aber geändert.

Gruß
schorsch

[1] http://wiki.debian.org/Aptitude
[2] http://raphaelhertzog.com/2011/06/20/ap ... r-for-you/
[3] http://debianforum.de/forum/viewtopic.php?f=36&t=72006
[4] http://www.debian.org/doc/manuals/debia ... operations
[5] http://de.wikipedia.org/wiki/Aptitude
[6] http://www.debian.org/doc/manuals/debia ... de_literal
[7] http://debianforum.de/forum/viewtopic.p ... 90#p761164

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: AW: apt-get oder aptitude?

Beitrag von Natureshadow » 02.02.2013 10:01:33

schorsch_76 hat geschrieben:Hast du denn irgendwelche Quellen für deine Behauptung?
Äh ja, ist doch verlinkt...

Benutzeravatar
schorsch_76
Beiträge: 2535
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: apt-get oder aptitude?

Beitrag von schorsch_76 » 02.02.2013 15:03:48

aptitude nutzt aber auch dpkg als Backend. Das ist seit Lenny so. Siehe Anwenderhandbuch. Also stimmt die Aussage, dass ein System das nur ein einziges mal aptitude gesehen hat, nicht meht supportbar sei, nicht.

Darum ging es mir. Mir ist klar dass beide, apt und aptitude, Bugs haben.

Gruß
schorsch

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: apt-get oder aptitude?

Beitrag von rendegast » 02.02.2013 15:52:57

schorsch_76 hat geschrieben: Das Debian Anwenderhandbuch widerspricht deiner Aussage mit den getrennten Datenbanken. Siehe auch [7] hier im Thread.
Beide Tools "benutzen" /var/lib/dpkg/status.
Für ihre eigenen "Anmerkungen" sind
/var/lib/apt/extended_states
/var/lib/aptitude/pkgstates

Code: Alles auswählen

$ grep ^Package /var/lib/apt/extended_states | wc -l
781
$ grep ^Package /var/lib/aptitude/pkgstates | wc -l
44545
$ grep ^Package /var/lib/dpkg/status | wc -l
1093
Ein "unsupportbares" System kann zumindest für aptitude repariert werden, eine reine Fleißaufgabe.
zum Einstieg

Code: Alles auswählen

aptitude markauto $(aptitude search "?installed ^lib" -F %p)
markiert schonmal die installierten lib* als 'automatisch installiert'
(sowas wie libvirt sollte da wohl wieder herausgenommen werden),
dann im aptitude-Interface möglichst viele 'automatisch installiert' markieren.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten