apt-get oder aptitude?

Diskussion rund um unser Wiki.
Fjunchclick

Re: apt-get oder aptitude?

Beitrag von Fjunchclick » 04.04.2010 16:32:54

knausser hat geschrieben: Although it is now safe to mix different package tools on the Debian system, it is best to continue using aptitude as much as possible....


Es ist also kein Problem, beides zu mischen. Trotzdem sollte man aber aptitude benutzen.

Und warum? Irgendwie vermisse ich da Argumente. Wenn es egal ist, warum ist dann aptitude besser?

ich glaube, es ist einfach eine Geschmacks- oder Gewohnheitssache. Früher gab es bei aptitude Vorteile, weil es eben mitgelogged hat und so die Deinstallation von Paketen samt Abhängigkeiten möglich war. Seitdem apt das auch kann und beide die gleiche Datenbank benutzen, dürfte es wirklich egal sein, was man wann benutzt.

Ich kann leider keine Quelle nennen aber ich meine sogar mal gelesen zu haben, dass Debian neuerdings wieder apt empfiehlt. Ich glaube, das ist wohl auch von Entwickler zu Entwickler verschieden.

suno
Beiträge: 354
Registriert: 25.07.2008 17:33:40

Re: apt-get oder aptitude?

Beitrag von suno » 04.04.2010 17:35:59

Fjunchclick hat geschrieben: Und warum? Irgendwie vermisse ich da Argumente. Wenn es egal ist, warum ist dann aptitude besser?
aptitude hat eine eigene, zusaetzliche, Datenbank und ist daher "intelligenter". Ich habe hier http://sunoano.name/ws/package.html#apt_vs_aptitude vor einiger Zeit einmal begonnen die Unterschiede zu notieren; ist noch nicht ganz fertig, zeigt aber schonmal die wesentlichen Unterschiede und warum man aptitude den Vorzug geben sollte.
Zuletzt geändert von suno am 08.05.2010 00:39:18, insgesamt 1-mal geändert.

Fjunchclick

Re: apt-get oder aptitude?

Beitrag von Fjunchclick » 04.04.2010 17:56:47

suno hat geschrieben: aptitude hat eine eigene, zusaetzliche, Datenbank und ist daher "intelligenter".
Ich glaube, dass dies schon seit längerer Zeit nicht mehr so ist. Apt hat mittlerweile mit apt-get autoremove die gleiche Funktionalität wie aptitude.
Can aptitude remove dependencies of software installed by apt-get?
* No. It must be installed by aptitude in order to remove the dependencies cleanly.
Auch dies stimmt schon lange nicht mehr.

Wie gesagt, ich halte die Wahl nur noch für eine Geschmacks- bzw. Gewohnheitssache.

In diesem Thread gibt es einige Informationen dazu (auf die Beiträge von Danielx achten):
http://debianforum.de/forum/viewtopic.php?p=693583#wrap

siehe auch:
viewtopic.php?f=29&t=108185#p683793
viewtopic.php?f=27&t=101372#p636024

suno
Beiträge: 354
Registriert: 25.07.2008 17:33:40

Re: apt-get oder aptitude?

Beitrag von suno » 04.04.2010 18:34:01

Fjunchclick hat geschrieben:
suno hat geschrieben: aptitude hat eine eigene, zusaetzliche, Datenbank und ist daher "intelligenter".
Ich glaube, dass dies schon seit längerer Zeit nicht mehr so ist. Apt hat mittlerweile mit apt-get autoremove die gleiche Funktionalität wie aptitude.
Stimmt nicht ganz. apt-get autoremove existiert zwar, arbeitet aber anders (deinstalliert nicht automatisch wie aptitude das macht) und basierend auf einer anderen Datenbank.
Can aptitude remove dependencies of software installed by apt-get?
* No. It must be installed by aptitude in order to remove the dependencies cleanly.
Auch dies stimmt schon lange nicht mehr.
Doch, siehe http://wiki.ubuntuusers.de/aptitude bzw. auf deinem lokalen filesystem; apt-get und aptitude verwenden _nicht_ die gleiche Datenbank.
Wie gesagt, ich halte die Wahl nur noch für eine Geschmacks- bzw. Gewohnheitssache.
aptitude zu verwenden macht aus technischer Sicht Sinn. Man hat z.B. kein logging mit apt-get. Auch andere Dinge macht aptitude entweder ueberhaupt d.h. diese fehlen mit apt-get, oder, aptitude macht Dinge besser als apt-get.

Debian wuerde nicht offiziell aptitude empfehlen gaebe es dafuer nicht technisch solide Gruende. http://www.debian.de/doc/FAQ/ch-pkgtool ... s-aptitude

Natuerlich aber, jeder kann und soll verwenden was er gerne will. Ich selbst verwende recht oft utils aus dem apt paket; z.B. finde ich apt-cache sehr toll.

Benutzeravatar
nikaya
Beiträge: 558
Registriert: 23.07.2005 11:32:33

Re: apt-get oder aptitude?

Beitrag von nikaya » 04.04.2010 18:35:47

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.
Running: Debian Wheezy/Sid | Kanotix Dragonfire | openSUSE | Arch Linux | Fedora

Aptitude Manual
zypp it...

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: 2532
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: 2532
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