# Update: manchmal gefunden, manchmal nicht

## schmidicom

Auf meinem Experimentalserver hat Portage gerade ein Verhalten gezeigt das mehr als seltsam ist.

Was passiert ist:

Nach einem "emerge --sync" hat mir "emerge --update --newuse --deep --with-bdeps=y -av @world" gezeigt das unter anderem ein Update von MariaDB bereit steht. Aus Sicherheitsgründen dachte ich mir aber das es vermutlich besser wäre dies nicht zu machen während der Dienst läuft, also brach ich emerge mit einem "N" ab und beendete den Dienst.

Und dann die große Überraschung:

Nach einem erneuten "emerge --update --newuse --deep --with-bdeps=y -av @world" gab es plötzlich kein Update für MariaDB mehr.   :Confused: 

Den Ablauf in der Konsole als Text-Datei:

https://drive.google.com/file/d/1rErNdDQnzAVPbakJWmLwbB1wBQ6eFS0e/view?usp=sharing

Ich musste den emerge-Befehl zweimal hintereinander ausführen damit das Update wieder auftauchte. Wie kann sowas passieren?

----------

## Marlo

schmidicom,

das könnte am cache liegen.

https://wiki.gentoo.org/wiki/Portage#egencache

Aber du solltest auch die anderen Meldungen/Warnungen beachten. Insbesondere zur Kernelconfiguration.

Einige Devs haben sich die Mühe gemacht und in den ebuilds Prüfungen zur .config eingebaut.

Es macht sich bei einem Kernelupdate immer gut die Konfiguration zu überprüfen.

```
emerge -e world -av und auf y drücken. 
```

Dann werden alle ebuilds auf ev. Warnungen überprüft und erscheinen

auf dem Schirm. Wenn das erste ebuild tatsächlich kompiliert wird einfach abbrechen.

In deinem Fall war die Warnung von apache

```
 Make sure CONFIG_SYSVIPC=y is set.
```

Diese Hinweise und Warnungen würde ich beachten.

Grüße

Ma

----------

## Josef.95

@Marlo,

alternativ kannst dafür auch https://gist.github.com/mrueg/cd19a20d2e712f61d2ea nutzen :)

----------

## schmidicom

Ich werde mal diesen Cache auffrischen und hoffen das es einfach nicht mehr passiert, mehr kann man da wohl sowieso nicht machen.

Zum Thema "CONFIG_SYSVIPC":

Ich weiß nicht warum emerge hier motzt denn es ist auf all meinen Systemen eingeschaltet, geht auch nicht anders wegen den zusätzlichen Abhängigkeiten welche die Gentoo-Devs einbauen.

```
Symbol: SYSVIPC [=y]

Type  : bool

Prompt: System V IPC

  Location:

    -> General setup

  Defined at init/Kconfig:231

  Selected by [y]:

  - GENTOO_LINUX_PORTAGE [=y] && GENTOO_LINUX [=y]
```

 *Josef.95 wrote:*   

> @Marlo,
> 
> alternativ kannst dafür auch https://gist.github.com/mrueg/cd19a20d2e712f61d2ea nutzen 

 

Ein sehr interessantes Script, Danke dafür.

----------

## Marlo

 *Josef.95 wrote:*   

> @Marlo,
> 
> alternativ kannst dafür auch https://gist.github.com/mrueg/cd19a20d2e712f61d2ea nutzen 

 

Hallo Josef.95,

danke das du das Script hier mit uns teilst.

Es ist wirklich sehr hilfreich und hätte auch unter "Dokumentation, Tipps und Tricks" einen würdigen Platz.

Danke nochmals dafür

Ma

----------

## Josef.95

Hehe gern geschehen, aber nicht das hier ein falscher Eindruck entsteht - das Script ist nicht von mir.

@schmidicom,

sorry, zu deinem seltsamen portage Verhalten hab ich leider keine Idee, sowas hab ich bisher noch nicht bemerkt.

----------

## ChrisJumper

Sehr interessant. Ich hab so etwas nur wenn ich im Hintergrund noch ein Update laufen habe, also mehrere Emerge-Vorgänge die gegenseitig auf sich warten.

Alternativ könnte es auch sein wenn du Overlays Synchronisierst, Ebuilds Manifestierst, Konfig-Dateien bearbeitest wie Useflags... wenn ich die zum Beispiel bearbeite aber noch nicht gespeichert hab. Greift der Emerge Vorgang beim Enter ja immer noch auf die Ursprungs Version vor dem Save zurück.

Das selbige halt auch wenn er schaut welche Versionen "Verfügbar" (oder als Stable Verfügbar) sind, was dann ja auch mit den "Updates" zusammen hängt.

Die Abhängigkeiten Suppe ist ja immer ein ewig langer Faden. Schon eine höhere Version kann dann ein Paket ziehen. Aber ob es eine Quer-Beziehung war, könntest du fest stellen wenn du noch mal prüfst ob ein Paket Mariadb benötigt. Aber es ist wohl ohnehin die neue Default-mysql Datenbank wenn ich das richtig in Erinnerung habe. ... Hmm. Nur bei meinem System nicht. wo hatte ich das denn? Vielleicht bei einer anderen Distribution? Egal.

Jedenfalls kann das auch dadurch kommen. So ein Seiteneffekt auf den man zuerst nicht Aufmerksam ist.

Wie auch dem es liest sich für mich als Verschwörungsfreund natürlich klasse, schon fast wie Esoterik! Nur hat das bei normalen Computern halt nichts verloren. Aber vielleicht arbeitet irgendein Entwickler heimlich mit einer AI... bei der Paketvorhersage. ;D

Danke Marlo für den Hinweis mit der Kernel .config Datei, war mir bisher auch noch nicht so gegenwärtig.

----------

## schmidicom

@ChrisJumper

Bei diesem Vorfall hatte ich nur diese eine Root-Konsole offen, es wurden also während dessen von mir keine weiteren Aktionen durchgeführt, und das einzige was kurz davor ausgeführt wurde war ein "emerge --sync". Die ganze Sache ist wirklich sehr seltsam...

----------

## Marlo

 *schmidicom wrote:*   

> @ChrisJumper
> 
> ..., und das einzige was kurz davor ausgeführt wurde war ein "emerge --sync". Die ganze Sache ist wirklich sehr seltsam...

 

Na ja, schmidicom,

nicht so ganz. Ein "emerge --sync" wird zwar noch unterstützt, aber seit einiger Zeit heißt es "emaint sync -a".

Und auch bei "eix" und "eix -R" hat sich einiges verändert. Die notwendigen configs sind alle im wiki und sollten wenigstens mal gelesen werden. Hat man das auch implementiert,

erhält du mit eix bzw. mit eix -R auch Informationen über alle Layman Repos. Als auch über die Layman Repos die nicht installiert sind.

Ein "emaint sync -a" bringt dann:

```
Writing database file /var/cache/eix/remote.eix...

Database contains 58193 packages in 238 categories

q: Updating ebuild cache in /usr/portage ... 

q: Finished 35623 entries in 0.185668 seconds

q: Updating ebuild cache in /usr/local/portage ... 

q: Finished 25 entries in 0.000278 seconds

Action: sync for repo: gentoo, returned code = 0

```

Also Informationen über 58193 Pakete, und in welchem Repo diese zu finden sind.

Grüße

Ma

----------

## mike155

 *Marlo wrote:*   

> Ein "emerge --sync" wird zwar noch unterstützt, aber seit einiger Zeit heißt es "emaint sync -a". 
> 
> 

 

Erstaunlich! Davon habe ich noch nie etwas gehört. 

Ist "emaint sync -a" statt "emerge --sync" eine Einzelmeinung der Wiki-Autoren? Oder ist es mittlerweile tatsächlich das von den Entwicklern empfohlene Vorgehen? Gab es irgendwo eine offizielle Ankündigung?

Ich verwende meistens 'eix-sync'. eix-sync gibt in der ersten Zeile aus: 'Running emerge --sync'. Müsste also auch eix-sync angepasst werden?

----------

## Marlo

mike155,

Zu deiner Frage 1.

 *man emerge wrote:*   

> 
> 
>  ...
> 
>               NOTE: The emerge --sync command is a compatibility command.  Sync operations are now performed using the the new emaint sync module. This new emaint sync module has greater functionality and flexibility.  Please refer to emaint(1) for more information about sync operations.
> ...

 

Zu 2.

Ich bin kein Fachman, aber wenn du den "*" hast wohl nicht.

Aber dann hast du noch nicht "eix -R".

Grüße

Ma

----------

