apt-get vs. aptitude .vs synaptische Kompatibilität

30

Als ehemaliger Benutzer Debian, I „Art“ daran erinnern , dass ich nur eine der Paketmanager ... Entweder verwenden sollte apt-get, aptitudeoder synaptic, nicht aber die drei in Kombination, weil es zu Konflikten kommen kann, sie nicht gut mischen.

Ich weiß nicht, wo ich es gehört habe, aber es hat seinen Erinnerungsdruck hinterlassen. Ich möchte also nur mit Ihnen abklären, ob dies wirklich nicht empfohlen wird oder ob es sich um eine städtische Legende handelt und ob es absolut sicher ist. Könnten Sie das bestätigen?

Wird der Befehl zum Installieren eines Pakets checkinstallvor dem Aufrufen am saubersten noch verwendet dpkg?

Stephane Rolland
quelle
2
Ich kann frei zwischen apt-get und synaptic wechseln, je nachdem, ob ich die verfügbaren Pakete untersuchen muss oder nicht, und ich hatte nie ein Problem. Ich habe den Punkt der Eignung nie verstanden.
Chris Conway
Ich verwende sudo aptitude safe-upgrade in der Entwicklungsumgebung 11.04. Der Vorteil ist, dass "Safe-Upgrade" Paketgruppen von Paketen enthält, bis alle aktualisiert wurden. Dies bedeutet, dass die Häufigkeit minimiert wird, mit der Sie ein nicht funktionierendes System haben.
robin0800
@ Chris ... Das gleiche für mich, ich habe mich nie daran gewöhnt Aptitude. Der Nähe Synaptichatte ich auch verwendet KPackagein KDE. Es war nett.
Stephane Rolland
Mögliches Duplikat von askubuntu.com/questions/7644/…
James McMahon

Antworten:

12

Der einzige wirkliche Unterschied ist Eignung.

  • Wenn Sie es interaktiv verwenden, installieren Sie etwas, entfernen Sie das Paket in einem anderen Ordner und kehren Sie dann zu Aptitude zurück. Sie werden denken, dass Sie es erneut installieren möchten. Sie müssen nur die Auswahl löschen, wenn es geladen wird (einfach genug über das Menü).

  • Es wird auch eine automatische Entfernung ausgeführt, damit alte Abhängigkeiten bereinigt werden. Dies kann gefährlich sein, wenn Sie versehentlich etwas entfernen, das von einem Metapaket abhängig ist, und Sie es und alle seine Abhängigkeiten entfernen. Dies ist kein Problem, wenn Sie wissen, was Sie tun.

Oli
quelle
Es ist für einen Server. Ich werde die weniger möglichen Pakete setzen, die weniger möglichen aktualisieren und nur für Sicherheitsupdates. ;-) also denke ich, ich bleibe bei dem einfachen apt-get ... obwohl ich noch nie gelernt habe, mit aptitude
Stephane Rolland
17

Alle diese verwenden dpkgals Backend. Keiner von beiden verwendet eine spezialisierte Datenbank, die kaputt geht, wenn Sie etwas anderes verwenden.

Es ist definitiv eine urbane Legende.

Wenn Sie etwas aus dem Quellcode installieren möchten, ist es am einfachsten, es zu verwenden checkinstalloder zu installieren /usr/local. Die Verwendung des Paketmanagers ist besser, da das Entfernen dieses Pakets dann viel einfacher ist.

Olli
quelle
1
Stow ( gnu.org/software/stow ) eignet sich hervorragend für / usr / local-Installationen.
James McMahon
8

Synaptic und apt-get sind kompatibel. Aptitude ist nicht mit synaptischen kompatibel. Dies ist eine Tatsache, keine "städtische Legende", wie ein anderes Plakat behauptet.

Heute wollte ich herausfinden, welche Java-Laufzeit mein System hat. Googeln hat den folgenden Vorschlag gemacht: Geben Sie in eine Befehlsshell Folgendes ein:

Eignungssuche "? bietet (Java-Laufzeit)"

Dies erzeugte (unter anderem) Folgendes:

pi gcj-4.4-jre
pi gcj-jre

"Pi" bedeutet, dass es derzeit nicht installiert ist, aber für die Installation markiert ist. Wenn ich mich also für aptitude entschieden hätte und nur darum gebeten hätte, die angeforderten Pakete zu installieren, würde es gcj-4.4-jre installieren. In Synaptic ist es jedoch weder installiert noch für die Installation markiert. Wenn ich Synaptic auffordere, die angeforderten Pakete zu installieren, geschieht nichts.

Ich bin kein Experte für dieses Zeug und ich habe keine Ahnung, wo Aptitude seine Vorstellungen von Paketzuständen versteckt, aber es ist offensichtlich, dass es nicht mit Synaptic kompatibel ist.

Yukiko Towner
quelle
Danke für das konstruktive Argument. Dies ist ein expliziter Unterschied, auf den Sie verweisen.
Stephane Rolland