Re: mariadb client server conflict

From: Harold Gutch <logix(at)foobar.franken.de>
Date: Thu, 25 Jan 2018 11:42:47 +0100

On Thu, Jan 25, 2018 at 10:06:21AM +0100, Sascha Hüdepohl wrote:
> Hallo!
>
> * Harold Gutch (logix(at)foobar.franken.de) schrieb:
>
> > Deine Ports sind nicht ganz aktuell, seit ein paar Stunden sind die
> > mariadb102-{client,server}-10.2.12 bei Revision 2 (also ..._2 als
> > Version).
> >
> > Vor 6 Tagen wurden die Headerdateien in den -client-Port geschoben,
> > die sollten also in einem aktuellen -server-Port gar nicht mehr
> > vorkommen. Ich weiß jetzt nicht wann genau du deine Ports aktualisiert
> > hast, also ob vor oder schon nach dieser Änderung. Ich *vermute* das
> > Problem ist einfach nur dass du *erst* mariadb102-server aktualisieren
> > musst und erst *danach* mariadb102-client, aber wenn du ganz sicher
> > gehen willst dann kannst du das ganze auch noch mit ganz aktuellen
> > Ports machen:
> >
> > # portsnap fetch update
> > # portmaster mariadb102-server
> > # portmaster mariadb102-client
> > # portmaster -a
>
> Ok, verstehe.
> Aber ich hatte ja unmittelbar vorher portsnap fetch update gemacht.

Hm, eigentlich sollte dann aber mariadb102-client-10.2.12_2 und nicht
mariadb102-client-10.2.12_1 installiert werden.

Letztlich ist das aber (zumindest für dein Problem) wohl irrelevant,
Grund für das Problem ist wie gesagt eher dass am 14.1. einige
Headerdateien (*.h) vom -server in den -client-Port umgezogen wurden.
Dementsprechend vertragen sich ein -server-Port von vor diesem
Zeitpunkt und ein -client-Port von nach diesem Zeitpunkt nicht
miteinander (weil beide der Meinung sind diese Headerdateien seien
ihre). Das Update von mariadb102-server *vor* dem Update von
mariadb102-client sorgt dann dafür dass diese Dateien gelöscht werden
und -client dann ohne Konflikt installiert werden kann (und im Zuge
dessen diese Dateien eh wieder installiert werden).

Ich vermute dass "portmaster -a" Ports im wesentlichen in
alphabetischer Reihenfolge aktualisert (ich denke dass das durch
irgendein Shellglobbing passiert, das ist dann alphabetisch je nach
gesetzter LC_COLLATE, das müsste man aber in Portmaster nachsehen...),
und da kommt dann -client eben vor -server. Rein prinzipiell könnte
man exakt den Fall der hier aufgetreten ist wohl abfangen, aber wie
oft genau so etwas vorkommt und ob das den Aufwand wert ist (inklusive
Prüfung ob man wirklich alle Randfälle abgedeckt hat) kann ich dir
nicht sagen.

> Meine Sorge ist hauptsächlich, was ich mache wenn das auf einem
> produktiven System passiert.

Mmh, ich wäre da generell etwas vorsichtig mit "-a". Vielleicht bin
ich da übermäßig vorsichtig, aber ich selbst bevorzuge es, veraltete
Ports einzeln zu aktualisieren, also "pkg version -l '<'" und dann
alles was veraltet ist einzeln zu aktualisieren. Und wenn ein Port X
dann feststellt dass er aber Ports A, B, C erst noch aktualiseren will
dann kümmere ich mich zuerst um A, B, C und erst *dann* um X. Je
nachdem um wieviele Ports (und Rechner) es geht ist das aber natürlich
nicht immer praktikabel.

> Dann sollte ich portmaster besser mit der Option -b verwenden, damit
> die Backups nicht gelöscht werden und ich im Fehlerfall auf die alte
> Version der Pakete zurück kann?

Ja, das ist meiner Meinung nach eine gute Idee, das mache ich auch
immer so. Unabhängig davon benutze ich auch noch "-g", für die meisten
Fälle ist das aber doppelt gemoppelt (wennauch beide Optionen dafür
Sorgen dass die Packages zu komplett verschiedenen Zeitpunkten
erstellt werden).

Gruß,
  Harold

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 25 Jan 2018 - 11:42:58 CET

search this site