'apt' - Fragen, Erkennen und Verstehen ??

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Benutzeravatar
Meillo
Moderator
Beiträge: 9261
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von Meillo » 04.01.2022 21:51:56

rockyracoon hat geschrieben: ↑ zum Beitrag ↑
04.01.2022 21:12:30
Das scheint mir ein sehr einfaches System zu sein, das zugegeben eher defensiv angelegt ist (``minimal invasiv'', wie im Handbuch so schoen steht).
Aber genau so sicher ist auch "Full-Upgrade", weil das ja auch nicht sofort ausgeführt wird, sondern auch auf eine Ja-Eingabe wartet.
Dazu musst du meine Erlaeuterung weiter vorne anschauen, dass ich gerne die zwei Faelle auftrennen will, um meine Aufmerksamkeit selektiver zu nutzen.

rockyracoon hat geschrieben: ↑ zum Beitrag ↑
04.01.2022 21:12:30
Also das Argument von MSfree.
Das Argument ist doch nur, dass man vor einem dist-upgrade auf eine neue Version auch ein dist-upgrade der alten Version machen muss. Oder anders gesprochen: dass man beim Upgraden keine Versionen ueberspringen sollte.

Ich denke mir halt, dass wenn mir upgrade etwas von zurueckgehaltenen Paketen erzaehlt (ich also keinen sauberen Zustand habe), es dann vermutlich eine schlechte Idee ist auf die naechste Version zu wechseln. Damit passiert es gar nicht, ein dist-upgrade durchzufuehren wenn der momentane Paketzustand nicht sauber ist.

Nunja, die Linux-Nutzer von heute sind wohl einfach anders als die von damals. Wenn mich APT auf etwas hinweist, dann hat das ja einen Grund ... und ich sollte verstehen was der ist, bevor ich so krasse Sachen wie ein dist-upgrade auf die naechste Version mache ... nun gut, frueher war das mal eine krasse Sache ... da hat man auch noch ganz andere Sachen davor gemacht (ein Profi von der LUG hat immer zuerst die neue apt-get und dpkg Version ins alte System installiert und diese dann fuer das dist-upgrade verwendet, weil die qualitativ besser war als die alte Version und damit das dist-upgrade besser hinbekommen hat) ...

Irgendwie fuehlt es sich fuer mich nicht so toll an, wenn die Motviation nicht das passendste Vorgehen ist, sondern dasjenige mit dem User mit geringem Wissen die wenigsten Fehler machen koennen.

Ich sehe User halt im Unix-Verstaendnis als Personen die wissen bzw. lernen sollten was sie tun, und weniger im Windows-Verstaendnis als Personen die nicht wissen brauchen was passiert weil das System schon alles fuer sie richtig macht. (Was spricht dann eigentlich gegen Auto-Updates? :-P ;-) )


Wenn ich nun eure Motivation zu eurer Empfehlung von full-upgrade richtig verstanden habe, dann kann ich das nachvollziehen und so hinnehmen.

Seht ihr an meinem Vorgehen, aufbauend auf meiner Motivation, noch ein grundlegendes Problem, das daraus entsteht, oder kann dies als ein alternatives, akzeptables Vorgehen stehen bleiben, das nur etwas mehr Verstaendnis vom System erfordert?
Use ed once in a while!

Benutzeravatar
Blue
Beiträge: 1558
Registriert: 13.05.2016 12:42:18
Lizenz eigener Beiträge: GNU Free Documentation License

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von Blue » 04.01.2022 22:00:40

@Meillo:
Seht ihr an meinem Vorgehen, aufbauend auf meiner Motivation, noch ein grundlegendes Problem, das daraus entsteht, oder kann dies als ein alternatives, akzeptables Vorgehen stehen bleiben, das nur etwas mehr Verstaendnis vom System erfordert?
Ich stimme Dir hier vollkommen zu.
Nur denke ich, Dein Vorgehen erfordert weit mehr als "etwas" Verständnis vom System.

Und mir wird klar, dass ein Casual User schon mit dem Vorgehen, welches fischig und ich bevorzugen überfordert ist.
Und mir wird klar, wie groß die Kluft zwischen Fachleuten, Casual Usern und mehr oder weniger fortgeschrittenen Autodidakten ist.

Ich verwende jedenfalls nach allen Erfahrungen, welche ich mit Debian-Stable gemacht habe:
den Versionsnamen des aktuellen Debian-Stable in der Sources-List zusammen mit
#su -
#apt update && apt full-upgrade
#apt autoremove && sudo apt clean
(Was spricht dann eigentlich gegen Auto-Updates? :-P ;-) )
Du hast das zwar scherzhaft gemeint, aber bei Debian-Stable würde ich damit kein Problem haben, auch wenn ich mich jetzt als Demi-Dau oute.
Wenn ich nur noch Bahnhof verstehe, dann tippe ich eben "q" ein... :oops:
Mein Motto:
Unter den Einäugigen ist der Blinde König! :wink:

fischig
Beiträge: 4144
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von fischig » 04.01.2022 22:25:47

rockyracoon hat geschrieben:Nur denke ich, Dein Vorgehen erfordert weit mehr als "etwas" Verständnis vom System.
:THX:

Was ist ein „Casual User“

Benutzeravatar
Blue
Beiträge: 1558
Registriert: 13.05.2016 12:42:18
Lizenz eigener Beiträge: GNU Free Documentation License

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von Blue » 05.01.2022 09:13:11

@fischig:
Was ist ein „Casual User“
Ich würde es einmal salopp als "Durchschnittsnutzer" übersetzen. Das Gegenstück ist der Power-User, also ein Fachmann/frau.
...A casual user is someone who just wants to get a job done and has no interest in mastery...

Aus: https://everypageispageone.com/2012/05/ ... ual-users/
In unserem Fall also jemand der nicht dumm oder faul ist, aber auch kein IT-Fachmann/frau werden will, um ein Betriebssystem zu nutzen.
Windows und Android gehen dabei so vor, dass Alles Opt-Out und extrem redundant voreingestellt ist, mit dem Preis partieller Entmündigung des Users und einem überbordeten System.
Die andere Extreme ist sind zum Beispiel Slackware oder Arch-Linux, bei denen der Nutzer volle Gestaltungsmöglichkeiten hat, aber auch sehr informiert sein muß.

Insofern kann ich den Wunsch nach einem einfachen und "benutzerfreundlichen" Linux verstehen, was manche Distributionen verheißen. Die Rechnung geht meiner Meinung nach aber nicht auf. Ein bestimmtes Mindestmaß an Essentials muß der Nutzer verstehen, wenn er mit Linux auf Dauer zufrieden sein will.

Wo Debian steht, kann ich nicht genau bestimmen. Im Gespräch mit Bekannten stelle ich aber immer wieder fest, dass Sachverhalte, welche mir (mittlerweile!) selbstverständlich und einfach erscheinen, nicht verstanden werden.

tscott
Beiträge: 105
Registriert: 30.12.2020 22:16:18

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von tscott » 05.01.2022 10:13:32

Guten Morgen,

na das geht ja richtig rund hier. Sehr interessant wie unterschiedlich die Sichtweise der Forenuser tatsächlich ist.
Vieleicht eins vorweg. Ich denke dass wir uns ein bisschen verrannt haben. Es ist zum Verstehen völlig egal was man mit 'apt' vorhat. Egal ob stable, unstable, oldstable und ob man Poweruser oder Casual User ist: 'apt' macht mit ein- und derselben Option immer wieder dasselbe.

Was habe ich bisher gelernt:
Scheinbar schliesst 'apt full-upgrade' 'apt upgrade' vollständig ein. Daher auch die Empfehlung immer 'apt full-upgrade' zu nutzen solange sich die 'sources.list' nicht ändert.

Ich halte es für sinnvoll mal zu gucken was genau bei welchem Aufruf hinter den Kulissen passiert. Dazu drei Thesen:

Thesen
(1) 'apt upgrade'
- 'apt upgrade' schaut in die 'sources.list' ob es neue Paket gibt die zu installieren sind.
- Diese werden dann installiert und der 'apt' Aufruf beendet.
- Es wird nichts gelöscht.
- Es wird nicht versucht Konflike aufzulösen

(2) 'apt full-upgrade'
- 'apt upgrade' schaut in die 'sources.list' ob es neue Paket gibt die zu installieren sind.
- Diese werden dann installiert
- Pakete die keine Abhängigkeiten mehr haben werden gelöscht
- Es wird nicht versucht Konfikte aufzulösen

(3) 'apt full-upgrade' ist dasselbe wie 'apt upgrade && apt autoremove' !?
Bitte ankreuzen:
[] - ja
[] - nein
[] - vieleicht
[] - nur f***n :)

Frage:
In einigen vorherigen Beiträgen wird behauptet dass man allein mit 'apt upgrade' kein Releasehub (z.B. von Buster zu Bullseye) vornehmen kann. Das kann ich mir nicht vorstellen. Warum soll das nicht gehen? Das ist meiner Meinung doch nur abhängig davon was in der 'sources.list' steht im Vergleich zu dem was vorher installiert war.

Ciao
Tom

Benutzeravatar
Meillo
Moderator
Beiträge: 9261
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von Meillo » 05.01.2022 10:36:07

tscott hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 10:13:32
Was habe ich bisher gelernt:
Scheinbar schliesst 'apt full-upgrade' 'apt upgrade' vollständig ein.
Ja.
Thesen
(1) 'apt upgrade'
- 'apt upgrade' schaut in die 'sources.list' ob es neue Paket gibt die zu installieren sind.
Etwas genauer: Es schaut, ob es neue Versionen bereits installierter Pakete gibt.
- Diese werden dann installiert und der 'apt' Aufruf beendet.
- Es wird nichts gelöscht.
- Es wird nicht versucht Konflike aufzulösen
Ja.
(2) 'apt full-upgrade'
- 'apt upgrade' schaut in die 'sources.list' ob es neue Paket gibt die zu installieren sind.
Ob es neue Pakete gibt schaut `update'. `upgrade' bzw. `full-upgrade' installieren diese dann, nach unterschiedlichen Bedingungen.
- Diese werden dann installiert
- Pakete die keine Abhängigkeiten mehr haben werden gelöscht
- Es wird nicht versucht Konfikte aufzulösen
full-upgrade versucht Konflikte zu loesen und kann dazu zusaetzliche Pakete installieren und auch vorhandene Pakete entfernen (aber AFAIK nur wenn diese als Abhaengigkeiten reingezogen worden sind, nicht aber wenn der User diese selber manuell installiert hat).

Ob full-upgrade nicht mehr genutzte Pakete entfernt weiss ich nicht. Dafuer gibt es `autoremove'.
(3) 'apt full-upgrade' ist dasselbe wie 'apt upgrade && apt autoremove' !?
Bitte ankreuzen:
[] - ja
[] - nein
[] - vieleicht
Nein.

`full-upgrade' ist ein `upgrade', das zudem automatisch `install' und `remove' von weiteren Paketen machen kann.

Frage:
In einigen vorherigen Beiträgen wird behauptet dass man allein mit 'apt upgrade' kein Releasehub (z.B. von Buster zu Bullseye) vornehmen kann.
Genau so ist es.
Das kann ich mir nicht vorstellen. Warum soll das nicht gehen? Das ist meiner Meinung doch nur abhängig davon was in der 'sources.list' steht im Vergleich zu dem was vorher installiert war.
Der Grund ist, dass der Wechsel auf ein neues Release das Installieren neuer Pakete und das Entfernen dann obsoleter Pakete erfordert. (Wenn dies nicht noetig waere, dann braeuchte man kein neues Release. ;-) ) Dies beides kann upgrade nicht.
Use ed once in a while!

reox
Beiträge: 2545
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von reox » 05.01.2022 10:40:42

tscott hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 10:13:32
Scheinbar schliesst 'apt full-upgrade' 'apt upgrade' vollständig ein. Daher auch die Empfehlung immer 'apt full-upgrade' zu nutzen solange sich die 'sources.list' nicht ändert.
Ui, ich glaub du machst grad das nächste Fass auf :P
Ich bin mir nämlich nicht sicher ob ein apt full-upgrade in jedem Fall equivalent zu apt upgrade && apt full-upgrade ist. Ich denke in den meisten Fällen sollte es das, aber evt gibt es Spezialfälle in denen der Abhängigkeitslöser auf eine andere Lösung kommt, wenn vorher andere Pakete installiert werden.
tscott hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 10:13:32
- 'apt upgrade' schaut in die 'sources.list' ob es neue Paket gibt die zu installieren sind.
jein... apt upgrade schaut nicht in die sources.list - das macht nur apt update. Aber grundsätzlich ja, es schaut ob neue Versionen da sind die auch lt. der policy installiert werden darf.
tscott hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 10:13:32
- Es wird nicht versucht Konflike aufzulösen
Nein: auch apt upgrade bemüht den PackageResolver - aber es wird jedenfalls keine Pakete entfernen, um eine Abhängigkeit aufzulösen.
tscott hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 10:13:32
- Pakete die keine Abhängigkeiten mehr haben werden gelöscht
Das passiert weder bei upgrade noch full-upgrade. Pakete die nicht mehr gebraucht werden, werden nur durch apt autoremove oder durch ein apt (full-)upgrade --autoremove entfernt.
tscott hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 10:13:32
In einigen vorherigen Beiträgen wird behauptet dass man allein mit 'apt upgrade' kein Releasehub (z.B. von Buster zu Bullseye) vornehmen kann. Das kann ich mir nicht vorstellen. Warum soll das nicht gehen? Das ist meiner Meinung doch nur abhängig davon was in der 'sources.list' steht im Vergleich zu dem was vorher installiert war.
Sagen wir so: es geht, solange das upgrade keine Abhänigkeit hat die eine Entfernung benötigt. Ich habs im buster docker image ausprobiert und einzig vim installiert um die sources.list schnell zu bearbeiten. Da funktioniert der release sprung problemlos mit upgrade alleine. Aber: sobald ich gcc installiere gehts nicht mehr und ein upgrade alleine reicht nicht.
Wobei: Natürlich kann ich anfangen die Pakete die nicht gehen vorher alle selber runterzuschmeißen... Dann kann ich auch immer nur upgrade verwenden. Dann spielst du halt immer den manuellen resolver ;)

tscott
Beiträge: 105
Registriert: 30.12.2020 22:16:18

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von tscott » 05.01.2022 12:21:41

Ok, Danke Euch wieder. Ausgehend der letzten beiden Beiträge würde ich dann meine Thesen folgendermaßen abändern:

Ich halte es für sinnvoll mal zu gucken was genau bei welchem Aufruf hinter den Kulissen passiert. Dazu drei Thesen:

Thesen
(1) 'apt upgrade'
- 'apt upgrade' wertet vorher ausgeführtes 'apt update' aus ob es bei bereits installierten Paketen neue Versionen gibt die zu installieren sind
- Diese werden dann installiert und der 'apt' Aufruf beendet
- Pakete, die vor dem Aufruf nicht existierten, werden nicht installiert, auch dann nicht wenn aktualisierte Pakete dies neuerdings erfordern
- Es wird nichts gelöscht.
- Es wird nicht versucht Konflike aufzulösen

(2) 'apt full-upgrade'
- 'apt full-upgrade' wertet vorher ausgeführtes 'apt update' aus ob es bei bereits installierten Paketen neue Versionen gibt die zu installieren sind
- Diese werden dann installiert
- Pakete, die vor dem Aufruf nicht existierten, werden jetzt installiert wenn diese durch die Aktualisierung alter, bereits vorhandener Pakete notwendig werden
- Nicht mehr benötigte Pakete werden gelöscht
- Es wird versucht Konflikte automatisch aufzulösen

(3) 'apt full-upgrade' ist nicht dasselbe wie 'apt upgrade && apt autoremove' !?
Begründungen:
a) Es fehlt bei 'apt upgrade' die Installation von neuen Paketen die durch Aktualisierung alter, bereits vorhandener Pakete notwendig werden. (siehe auch (1))
b) Es wird versucht Konflikte automatisch zu lösen

Ist das jetzt korrekt so?

Ciao
Tom

reox
Beiträge: 2545
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von reox » 05.01.2022 12:23:47

tscott hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 12:21:41
- Pakete, die vor dem Aufruf nicht existierten, werden nicht installiert, auch dann nicht wenn aktualisierte Pakete dies neuerdings erfordern
doch, neue pakete die durch abhängigkeiten erfordert werden, werden in beiden fällen (upgrade/full-upgrade) installiert.
Konflikte werden auch immer versucht zu beheben nur upgrade "bricht an der stelle ab" wo eine entfernung den koflikt beheben würde.
und nicht mehr benötigte pakete werden nie gelöscht, außer man spezifiziert das explizit mit autoremove.

edit: moment, es gibt offenbar noch einen unterschied zwischen apt upgrade und apt-get upgrade: https://unix.stackexchange.com/a/536620/12332
Zuletzt geändert von reox am 05.01.2022 12:32:19, insgesamt 3-mal geändert.

Benutzeravatar
Blue
Beiträge: 1558
Registriert: 13.05.2016 12:42:18
Lizenz eigener Beiträge: GNU Free Documentation License

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von Blue » 05.01.2022 12:24:28

@Meillo, reox: :THX:

@tscott: Deine Thesen beziehungsweise Fragen zeigen exemplarisch schön auf, welche Lernkurve ein Linux-Novize nehmen muß.

reox
Beiträge: 2545
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von reox » 05.01.2022 12:39:43

Nur ums nochmal zusammenzufassen: Bei der Ausgabe von apt *upgrade gibt es potentiell folgende Sektionen:

Code: Alles auswählen

The following packages were automatically installed and are no longer required:
  [1) ...]
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
  [2) ...]
The following NEW packages will be installed:
  [3) ...]
The following packages will be upgraded:
  [4) ...]
The following packages have been kept back:
  [5) ...]
  
Alles unter 1) bleibt so wie es ist. es steht auch da was man tun kann, um diese Pakete los zu werden. Sie werden aber NIE automatisch entfernt (ausgenommen wenn man --autoremove verwendet! In diesem Fall ist die liste der "no longer required" pakete aber leer und alle die entfernt werden sollen stehen unter 2)!)
Alles unter 2) kann NUR bei apt full-upgrade geschehen. Hier hat der solver entschieden, dass diese Pakete weg müssen, damit die abhänigkeiten erfüllt sind. apt upgrade hat diese Sektion NIE.
Alles unter 3) sind neue Pakete die installiert werden, weil sie ein upgrade erfordert. Das passiert bei apt upgrade und apt full-upgrade aber NICHT bei apt-get upgrade (habs gerade ausprobiert).
Unter 4) stehen jetzt alle Pakete wo sich nur die Version ändert.
und unter 5) steht jetzt noch alles wo es eine potentielle aktualisierung gibt aber durch abhänigkeiten, policy, apt-mark hold, die mögliche entfernung von anderen paketen ... das Paket nicht installiert werden soll.

tscott
Beiträge: 105
Registriert: 30.12.2020 22:16:18

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von tscott » 05.01.2022 13:03:29

reox hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 12:39:43
Nur ums nochmal zusammenzufassen: Bei der Ausgabe von apt *upgrade gibt es potentiell folgende Sektionen:

Code: Alles auswählen

The following packages were automatically installed and are no longer required:
  [1) ...]
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
  [2) ...]
The following NEW packages will be installed:
  [3) ...]
The following packages will be upgraded:
  [4) ...]
The following packages have been kept back:
  [5) ...]
  
Alles unter 1) bleibt so wie es ist. es steht auch da was man tun kann, um diese Pakete los zu werden. Sie werden aber NIE automatisch entfernt (ausgenommen wenn man --autoremove verwendet! In diesem Fall ist die liste der "no longer required" pakete aber leer und alle die entfernt werden sollen stehen unter 2)!)
Alles unter 2) kann NUR bei apt full-upgrade geschehen. Hier hat der solver entschieden, dass diese Pakete weg müssen, damit die abhänigkeiten erfüllt sind. apt upgrade hat diese Sektion NIE.
Alles unter 3) sind neue Pakete die installiert werden, weil sie ein upgrade erfordert. Das passiert bei apt upgrade und apt full-upgrade aber NICHT bei apt-get upgrade (habs gerade ausprobiert).
Unter 4) stehen jetzt alle Pakete wo sich nur die Version ändert.
und unter 5) steht jetzt noch alles wo es eine potentielle aktualisierung gibt aber durch abhänigkeiten, policy, apt-mark hold, die mögliche entfernung von anderen paketen ... das Paket nicht installiert werden soll.
Dann sind wir ja wieder am Anfang mit den Thesen. Demnach wäre ja dann ein 'apt full-upgrade' doch dasselbe wie ein 'apt upgrade && apt autoremove'. Das widerspricht aber Aussagen anderer Forennutzer hier, die ja meinten dass bei 'apt upgrade' keine NEUEN Pakete installiert werden. Jaja, die Lernkurve scheint nicht nur bei "Novizen" relativ steil zu sein.

reox
Beiträge: 2545
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von reox » 05.01.2022 13:13:21

tscott hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 13:03:29
Demnach wäre ja dann ein 'apt full-upgrade' doch dasselbe wie ein 'apt upgrade && apt autoremove
Nein eben nicht! autoremove macht nicht das was du denkst!

Es ist ein großer Unterschied ob ein Paket entfernt werden soll weil eine Abhänigkeit sonst nicht gelöst werden kann (upgrade von gcc 8 auf 10; das was full-upgrade machen würde aber upgrade nicht) oder ob du Pakete welche keinen Nutzen mehr haben entfernt werden (autoremove).

Nehmen wir das Beispiel vom gcc, weil hier beides passieren kann:
Unter buster hat das Paket gcc eine abhänigkeit zu gcc-8 und cpp. cpp hat unter buster die abhänigkeit zu cpp-8.
Unter bullseye hat gcc die abhängigkeit zu gcc-10 und cpp, und cpp zu cpp-10.

Beim upgrade entscheidet der solver, dass er gcc=8 nur nach gcc=10 bringen kann, indem das Paket gcc-8 entfernt und gcc-10 installiert wird. Es ist eben nicht erlaubt, dass gcc-8 installiert ist wenn gcc=10 installiert werden soll. Weiters wird das paket cpp=10 installiert werden, welches als neue abhänigkeit cpp-10 bringt.
ABER: cpp-8 kann auch ohne problem ohne cpp=8 installiert bleiben - dennoch gibt es jetzt kein anderes Paket mehr, welches von cpp-8 abhängt und cpp-8 wurde automatisch installiert. Dennoch entscheidet sich der solver dazu es nicht zu entfernen - weil es keinen Grund gibt es zu tun. apt ist da immer konservativ: Es wird nur ein Paket entfernen oder neu installieren wenn es nicht anders geht - dH eine von dir explizit gewünschte abhänigkeit nicht erfüllt werden kann.
(Achtung: xxx=Y heißt paket xxx in version Y und ist was anderes als xxx-Y was bedeutet der Paketname ist xxx-Y)

dH beim full-upgrade wirst du folgendes sehen:

Code: Alles auswählen

no longer required: 
  cpp-8
will be REMOVED: 
  gcc-8
NEW packages will be installed: 
  cpp-10 gcc-10
will be upgraded: 
  gcc cpp
(+ ein haufen weiterer abhänigkeiten, auf die ich nicht eingehe)

Nach dem full-upgrade ist das paket cpp-8 weiterhin installiert und würde bei einem aufruf von apt autoremove fliegen.

tscott
Beiträge: 105
Registriert: 30.12.2020 22:16:18

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von tscott » 05.01.2022 13:30:43

reox hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 13:13:21
Nach dem full-upgrade ist das paket cpp-8 weiterhin installiert und würde bei einem aufruf von apt autoremove fliegen.
Du meinst ein einfaches Upgrade, richtig? Denn ein full-upgrade wird gcc-8 ja löschen. Oder bin ich jetzt komplett mischugge?

reox
Beiträge: 2545
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von reox » 05.01.2022 13:37:52

gcc-8 wird gelöscht, ja. cpp-8 bleibt aber weiterhin da! Ja die Paketnamen sind nicht wirklich toll :D

Benutzeravatar
Meillo
Moderator
Beiträge: 9261
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von Meillo » 05.01.2022 13:45:24

reox hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 12:23:47
edit: moment, es gibt offenbar noch einen unterschied zwischen apt upgrade und apt-get upgrade: https://unix.stackexchange.com/a/536620/12332
Ja. Die Uebersichtstabelle in dem Link ist nett.

Soweit ich das verstehe entsprechen sich `apt upgrade' und `aptitude safe-upgrade'.

`apt-get upgrade' ist der Befehl, der am wenigsten macht.


(Und falls das bislang noch nicht klar geworden ist: `full-upgrade' und `dist-upgrade' ist das gleiche. Der Name `full-upgrade' ist neuer. Frueher gab es nur `dist-upgrade'. Es gibt aber keinen Unterschied zwischen den beiden.)



@tscott:

Das Entfernen von nicht mehr gebrauchten Abhaengigkeiten ist eine komplett separate Sache, die man mit `autoremove' oder separaten Programmen wie Debiandeborphan oder Debiandebfoster erledigen kann. Das hat nichts mit dem Upgrade zu tun (ausser, dass man bei den Upgrade-Befehlen optional zusaetzlich eine --autoremove Option angeben kann, die dann beides hintereinander macht).


Konflikte zu loesen ist letztlich ein Upgraden, Entfernen und Installieren von Paketen, um damit eine Kombination zu erreichen, die konfliktfrei ist. Konflikte basieren auf der control-Datei in den Debianpaketen, die unter `Conflicts:' oder aehnlichen Feldern andere Pakete in ggf. bestimmten Versionen nennen. Siehe dazu die Manpage deb-control(5).

Ein einfaches `apt-get upgrade' kann auch Konflikte loesen, naemlich in folgendem Fall.

Installiert ist:
- Paket A in Version 1
- Paket B in Version 1
Wenn nun Version 2 von Paket A einen Konflikt mit Paket B (< Version 2) hat, dann loest upgrade das indem es beide Pakete upgraded. Wenn du nur `apt-get install A' sagen wuerdest, dann wuerde das nicht gehen, weil das eben mit Paket B (< Version 2) kollidiert.

Was upgrade aber nicht loesen kann ist folgender Konflikt. Wieder sind diese Pakete installiert:
- Paket A in Version 1
- Paket B in Version 1
Version 2 von Paket A hat einen Eintrag, dass es kollidiert mit Paket B aber stattdessen haengt es von Paket C ab, das die gleiche Funktionalitaet wie B bereitstellt.
Ein upgrade scheitert hier, da zum Loesen B entfernt und C installiert werden muss wenn man A auf Version 2 bringt. Diese Konflikte kann full-upgrade loesen.

Dabei muss full-upgrade aber auch darauf schauen, ob noch irgendwelche anderen Pakete B benoetigen, weil es B sonst natuerlich nicht entfernen darf. Dazu versucht full-upgrade alle Moeglichkeiten, die Abhaengigkeiten zu erfuellen, durchzuprobieren und waehlt dann diejenige aus, die ihm am besten erscheint.

Upgrade-Mechanismen, die staerker eingeschraenkt sind, wie `apt-get upgrade', `aptitude safe-upgrade' und `apt upgrade', haben weniger Moeglichkeiten zur Verfuegung, den Konflikt zu loesen. Dadurch kann es passieren, dass ein komplizierter Loesungsweg rauskommt (z.B. sehr viel Pakete installieren), waehrend es auch moeglich waere den Konflikt zu loesen, indem man nur ein einziges Paket deinstalliert. Diese letzte Option haben die eingeschraenkteren Upgrade-Mechanismen halt nicht.

Andererseits stellen diese sicher, dass nie ein vorhandenes Paket deinstalliert wird, sondern nur Upgrade-Wege gesucht werden, die den Konflikt durch das Hinzufuegen loesen.

Aus meiner Sicht gibt es Faelle wo der eine und Faelle wo der andere besser waere -- also wenn ich das mal aus technischer Sicht betrachte und die Anwendersicht von Casual Usern aussen vor lasse. In einfachen Faellen ist das alles recht egal, weil es da oft nur einen Loesungsweg gibt. In komplizierteren Faellen (die aber wohl nur Nutzer von Unstable und Entwickler haben oder die man auf halb kaputten Systemen beim Reparieren antrifft) waere der beste Weg bei schlimmen Konflikten, die Vorschlaege der verschiedenen Upgrade-Mechanismen zu vergleichen, um dann selber entscheiden zu koennen, welchen man als den besseren Weg ansieht. Aber wie gesagt, das ist etwas fuer Profis, Entwickler und groessere Reparaturvorhaben.
Use ed once in a while!

fischig
Beiträge: 4144
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von fischig » 05.01.2022 14:42:27

Die aller, allerwichtigste Funktion, die apt oder apt-get anbietet ist -s :P

Benutzeravatar
Blue
Beiträge: 1558
Registriert: 13.05.2016 12:42:18
Lizenz eigener Beiträge: GNU Free Documentation License

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von Blue » 05.01.2022 14:43:42

Erst einmal wieder Respekt vor Meillo und reox :THX:

Eine weitere Runde Diskussionen könnten wir jetzt auch noch drehen, indem wir den Unterschied beim Entfernen von verwaisten oder nicht benötigten Paketen zwischen "apt autoremove" und "apt clean" betrachten... :mrgreen:

Viel Nützliches bezüglich Abhängigkeiten kann man übrigens aucmit dem Terminal-Programm "Aptitude" oder im graphischen Synaptic-Paketmanager unter den "Eigenschaften" eines Pakets in Erfahrung bringen.

Für Casual-User-Leser: der Einwurf von fischig
#apt-get -s [...COMMAND]
bewirkt eine Simulation, welche abgesichert zeigen kann was passiert, wenn man einen Befehl startet. Eine gute Idee, wenn man vorsichtig sein will (siehe auch https://linux.die.net/man/8/apt-get oder https://www.geeksforgeeks.org/apt-get-c ... -examples/ ).

Benutzeravatar
Meillo
Moderator
Beiträge: 9261
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von Meillo » 05.01.2022 15:54:56

rockyracoon hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 14:43:42
Eine weitere Runde Diskussionen könnten wir jetzt auch noch drehen, indem wir den Unterschied beim Entfernen von verwaisten oder nicht benötigten Paketen zwischen "apt autoremove" und "apt clean" betrachten... :mrgreen:
Dazu muessen wir wenig diskutieren ;-), es reicht in die Manpage zu schauen, da ist das genau erklaert:
Manpage apt-get(8) hat geschrieben: clean
clean clears out the local repository of retrieved
package files. It removes everything but the lock
file from /var/cache/apt/archives/ and
/var/cache/apt/archives/partial/. When APT is used as
a dselect(1) method, clean is run automatically.
Those who do not use dselect will likely want to run
apt-get clean from time to time to free up disk
space.

autoclean
Like clean, autoclean clears out the local repository
of retrieved package files. The difference is that it
only removes package files that can no longer be
downloaded, and are largely useless. This allows a
cache to be maintained over a long period without it
growing out of control. The configuration option
APT::Clean-Installed will prevent installed packages
from being erased if it is set to off.

autoremove
autoremove is used to remove packages that were
automatically installed to satisfy dependencies for
other packages and are now no longer needed.
Oder hier auf Deutsch, wenn euch das lieber ist: https://manpages.debian.org/bullseye/ap ... .8.de.html
Use ed once in a while!

tscott
Beiträge: 105
Registriert: 30.12.2020 22:16:18

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von tscott » 06.01.2022 12:58:00

Meillo hat geschrieben: ↑ zum Beitrag ↑
05.01.2022 15:54:56
Oder hier auf Deutsch, wenn euch das lieber ist: https://manpages.debian.org/bullseye/ap ... .8.de.html
Das ist dann aber wieder ein neues Fass denn in diesem Thread wollte ich eigentlich 'apt' und 'apt-get' voneinander trennen bzw. 'apt-get' raushalten.

Um aber beim Thema zu bleiben. 'apt' beschreibt in seiner eigenen Manpage dies:

Code: Alles auswählen

BESCHREIBUNG

apt stellt eine hoch abstrahierte Befehlszeilenschnittstelle für das Paketverwaltungssystem zur Verfügung. 
Es ist als Endanwenderschnittstelle gedacht und aktiviert verglichen mit spezialisierteren Werkzeugen 
wie apt-get(8) und apt-cache(8) standardmäßig einige für den interaktiven Gebrauch besser geeignete Optionen.

Ganz wie apt selbst ist seine Handbuchseite als Endanwenderschnittstelle gedacht und erwähnt als solche nur 
die am häufigsten benutzten Befehle sowie Optionen. Dies geschieht zum Teil, um keine Informationen an 
mehreren Stellen zu duplizieren und zum Teil, um Leser nicht mit einem Überfluss an Optionen und Einzelheiten zu überwältigen.

update (apt-get(8))
update wird verwendet, um von allen konfigurierten Quellen Paketinformationen herunterzuladen. 
Andere Befehle arbeiten mit diesen Daten, zum Beispiel, um Paket-Upgrades durchzuführen oder 
um darin zu suchen und um Einzelheiten über alle zur Installation verfügbaren Pakete anzuzeigen.

upgrade (apt-get(8))
upgrade wird verwendet, um verfügbare Upgrades für alle derzeit auf dem System installierten Pakete 
von den in der sources.list(5) konfigurierten Quellen zu installieren. Neue Pakete werden installiert, 
falls dies nötig ist, um Abhängigkeiten zu erfüllen, existierende werden jedoch nie entfernt. 
Falls das Upgrade für ein Paket verlangt, dass ein installiertes Paket entfernt wird, wird dieses Upgrade nicht durchgeführt.

full-upgrade (apt-get(8))
full-upgrade verrichtet die Funktion von »upgrade«, wird aber auch installierte Pakete entfernen, 
falls dies erforderlich ist, um ein Upgrade des Systems als Ganzes durchzuführen.

whiizy
Beiträge: 683
Registriert: 23.07.2011 22:09:37

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von whiizy » 06.01.2022 14:09:23

Sehe gerade, daß der Befehl "apt dist-upgrade" zwar möglich, aber in "man apt" gar nicht erwähnt wird. Ist das sauberer Stil, gültige Optionen in einer Manpage nicht zu erwähnen?

Habe jahrelang apt-get dist-upgrade bei Release-Wechseln verwendet und erst beim Wechsel auf Bullseye mal apt dist-upgrade. Habe erst durch diesen Thread hier erfahren, daß letzterer Befehl eigentlich apt full-upgrade heißen soll und ich nur zufällig mit apt dist-upgrade richtig lag :)

Soll zwar das gleiche sein (apt dist-upgrade = apt full-upgrade), aber steht ja nicht in der manpage (sondern nur so ähnlich in anderer apt Doku).

reox
Beiträge: 2545
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von reox » 06.01.2022 14:47:06

whiizy hat geschrieben: ↑ zum Beitrag ↑
06.01.2022 14:09:23
Sehe gerade, daß der Befehl "apt dist-upgrade" zwar möglich, aber in "man apt" gar nicht erwähnt wird. Ist das sauberer Stil, gültige Optionen in einer Manpage nicht zu erwähnen?
Die Antwort auf deine Frage steht ebenfalls in der manpage ;)
Ganz wie apt selbst ist seine Handbuchseite als Endanwenderschnittstelle gedacht und erwähnt als solche nur die am häufigsten benutzten Befehle sowie Optionen. Dies geschieht zum Teil, um keine Informationen an mehreren Stellen zu duplizieren und zum Teil, um Leser nicht mit einem Überfluss an Optionen und Einzelheiten zu überwältigen.

whiizy
Beiträge: 683
Registriert: 23.07.2011 22:09:37

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von whiizy » 06.01.2022 14:54:00

Selbst der Hilfe-Befehl schweigt sich aus:

$ apt --help
apt 2.2.4 (amd64)
Usage: apt [options] command

apt is a commandline package manager and provides commands for
searching and managing as well as querying information about packages.
It provides the same functionality as the specialized APT tools,
like apt-get and apt-cache, but enables options more suitable for
interactive use by default.

Most used commands:
list - list packages based on package names
search - search in package descriptions
show - show package details
install - install packages
reinstall - reinstall packages
remove - remove packages
autoremove - Remove automatically all unused packages
update - update list of available packages
upgrade - upgrade the system by installing/upgrading packages
full-upgrade - upgrade the system by removing/installing/upgrading packages
edit-sources - edit the source information file
satisfy - satisfy dependency strings

See apt(8) for more information about the available commands.
Configuration options and syntax is detailed in apt.conf(5).
Information about how to configure sources can be found in sources.list(5).
Package and version choices can be expressed via apt_preferences(5).
Security details are available in apt-secure(8).
This APT has Super Cow Powers.

reox
Beiträge: 2545
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von reox » 06.01.2022 16:57:01

Most used commands:

whiizy
Beiträge: 683
Registriert: 23.07.2011 22:09:37

Re: 'apt' - Fragen, Erkennen und Verstehen ??

Beitrag von whiizy » 06.01.2022 17:09:45

Vor welchen undokumentierten Kommandos in apt schützen uns die manpage und --help denn sonst noch, um uns "nicht mit einem Überfluss an Optionen und Einzelheiten zu überwältigen"? ;)

Antworten