Hauptmenü

Updateprobleme

Begonnen von Superposchi, 29 April 2021, 11:24:10

Vorheriges Thema - Nächstes Thema

Superposchi

Das Problem was ich habe und auf das ich immer und immer wieder stoße, ist das QNAP offenbar kein reines Linux auf seinen Kisten betreibt.
Offenbar wird wie bei den Handys von Samsung zb eine abgewandelte / bearbeitete Form genutzt, daher gehen viele Dinge einfach nicht umzusetzen.
Das wirkt sich auf allen Ebenen aus, zum Beispiel beim nachträglichen Editieren von Eigenschaften des Containers.

Ich kann also lesen und lesen und lesen, aber sehr vieles davon geht einfach nicht umzusetzen. Das ist keine Arbeitsverweigerung oder Besserwisserei, sondern einfach eine schlechte Entscheidung beim Kauf des NAS gewesen. Bereue ich eh aus mehreren Gründen schon.

Wenn ich aber jetzt den Container einfach neu aufsetze und alles soweit richtig verstanden habe, bedeutet das, dass ich das Neuaufsetzen jedes mal machen darf, wenn ein Update vorhanden ist, oder?

kadettilac89

Der große Vorteil von Docker ist, dass der Container auf einem vordefinierten Image basiert. Das Image kannst du (nahezu) beliebig tauschen. Die Konfiguration und die Applicationdaten sind separat. Um den Container zu erstellen oder upzudaten wird ein bestimmtest Image mit Config + lokalen Daten verwendet.

Bei dir ist das scheinbar mit komplett löschen und komplett neu anlegen verbunden was die Docker Vorteile zunichte macht. Dann könntest du theoretisch Fhem auch gleich auf dem Host installieren ohne den ganzen Docker Overhead.

Jedenfalls kannst du das nicht ändern. Und anderen Posts zu folgen hast du damit auch öfter Probleme. Ich an deiner Stelle würde mir ncohmal einen Portainer Container anlegen und testen. Mit einem kleinen Image, einem Webserver zum Beispiel, dann siehst auch ob Ports funktionieren. Wenn es funktioniert, gut. Wenn es daran scheitert auch nichts verloren außer etwas Zeit.

Das aktuelle Fhem läuft erstmal so weiter wie es ist. Es funktioniert ja, außer irgend welchen Ausrufezeichen. Und wenn Spotify aktuell nicht über Fhem geht .. kann man sicher übergangsweise über Handy oder PC steuern.

Portainer Livedemo ... https://www.portainer.io/live-demo ... Da kannst du rumspielen und auch mal einen Container anlegen.

frank

Zitateinfach eine schlechte Entscheidung beim Kauf des NAS gewesen
ein NAS ist eben ein netzwerkspeicher und keine "eier-legende-woll-milch-sau".  ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Superposchi

Sorry, war tierisch im Stress. Wie immer vor dem Urlaub muss dies und jenes noch fertig gemacht werden.

Zitatein NAS ist eben ein netzwerkspeicher und keine "eier-legende-woll-milch-sau"
Das stimmt so nicht, ein NAS ist schon praktisch für alles nutzbar und somit eine eier-legende-Wollmilchsau.
Man muss nur auf Kompatibilität achten und sich die Firmware genau ansehen. Kompatibilität zumindest bei QNAP, da dort auch NAS mit arm-Prozessorstrukturen vertrieben werden und diese leider nicht in allen punkten kompatibel zu x64/x86 Prozessoren ist. Und die Firmware, weil man eben dort Einschnitte macht was man nachträglich editieren kann und was nicht. Für beides muss man aber Ahnung haben und die ist bei den meisten Erstkäufern nicht vorhanden. Darum dieser Kommentar von mir. Nicht wegen dem Kauf, sondern wegen der Typauswahl.

@kadettilac89
Ich denke da hast du Recht mit. Mit den Einschränkungen wie er in der QNAP-Firmware eingebunden ist, ist der Docker nicht wirklich Vorteilhaft. Leider ist auch der Support bei QNAP und dem gängigen QNAP-Forum nicht wirklich prickelnd. Ich habe jedenfalls bisher keine Möglichkeit gefunden irgendwelche Einstellungen nachträglich anzupassen. Das einzige was ich kann ist über ein Terminalfenster Linux-Befehle absetzen. Aber auch nur soweit wie die notwendigen Routinen im Container vorhanden sind.
Werde wohl tatsächlich den Container neu aufsetzen. Hab ja jetzt ein paar Tage Zeit.

Wernieman

Eine NAS ist eine NAS ..... das andere macht sie "Nebenbei".

Der Nachteil von "Eierlegende-Wollmilchsäue" ist, das sie zwar vieles machen, aber "nichts Richtig".

- NAS sind (s.o.) für NAS optimiert. Das machen alle mittlerweile tierisch gut. Alles andere ist angeflansched.
- Übrigens der Vorteil von ARM-NAS ist, das der Stromverbrauch niedriger als als der X86-NAS.

Da ich persöhnlich kein Freund von "Zentralserver" bin, habe ich deshalb bei mir die NAS nur als NAS. Alles andere wird über einen 2. Rechner "abgewickelt". Standard Linux ist so schwierig auch nicht mehr ... glaube ich ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Superposchi

Naja, mein Argument für den Kauf war damals halt zum einen dass das NAS erweiterbar ist und viele verschiede Funktionen abdeckt. So dachte ich damals eben aus den Beschreibungen und Versprechungen.
Und im Grunde stimmt das ja auch, wenn auch viele Vereinfachungen und Einschränkungen eben zu solchen Problemen führen - über die man natürlich vorher nicht aufgeklärt wird.

Und ja, das mit dem niedrigeren Stromverbrauch war auch ein ausschlaggebendes Kaufkriterium, genau wie der Platzbedarf und die Geräuschkulisse.
In einer 49 m²-Wohnung stellt man sich nicht eben so einen zweiten Zentralrechner hin, der dauerhaft durchläuft. Aber das sind persönliche Probleme und haben nichts mit der Fragestellung zu tun.
Ich will nur sagen, das eure Argumente sicherlich gut und richtig sein mögen, ich aber eben auch meine habe/hatte um mich anders zu entscheiden.

Ich werde den Container am Wochenende neu aufsetzen und gut ist. Aber wenn ich das ganze richtig verstanden habe, wird das Problem erneut auftauchen, sobald es ein neues Fhem-Update gibt - ist das Richtig?

kadettilac89

Zitat von: Superposchi am 12 Mai 2021, 10:38:05
Ich werde den Container am Wochenende neu aufsetzen und gut ist. Aber wenn ich das ganze richtig verstanden habe, wird das Problem erneut auftauchen, sobald es ein neues Fhem-Update gibt - ist das Richtig?

Aktuell ist unklar was das genaue Problem ist, und wo es herkommt. Definition Fhem-Update? Ein normales Update sollte hier kein Problem verursachen. Du schreibst ja von SUDO-Fehlern. Das fasst ein normales Fhem-Update nicht an. Meine Vermutung ist, dass du manuell oder automatisch Updates oder Änderungen an Modulen node.js (npmjs) gemacht hast und da auch sudo-datei überschrieben wurde.  .... oder irgend welche Perl-Module aktuallisiert wurden ... oder apt updates eigenspielt wurden  ....

Alles Glaskugel. Da du Docker nutzt und mit einem recreate zumindest der Container zurückgesetzt wird könnte man dann diese Fehlerquelle ausschließen. In Docker-Compose oder Portainer w#re die Sache in ein paar Min erledigt. Docker Konzept halt ... 

Aber, wie schon früher von mir geschrieben, ich würde erstmal den Container auf den initialen Auslieferzustand setzen und testen.

Versprechen kann dir keiner, dass es im Anschluss gelöst ist. Es könnte auch eine geänderte Konfiguration in Fhem selber sein. Es sind Empfehlungen.

Ich weiß nicht, ob ich das schon mal gefragt hab ... hast du ggf. ein Backup des ganzen Container das du zurückspielen könntest? Keine Ahnung welche Tools dien NAS hat. Wäre eine Alternative zum neu anlegen, du musst nur sichergehen dass die Fhem-Daten gesichert sind da diese evtl. vom Backup überschrieben werden.

Superposchi

Es wird im Fhem jede Nach ein Backup gemacht - jedenfalls soweit ich das aus diversen Foren zusammen gesucht habe.
Kontrolliert und Benutzt habe ich es noch nicht. Wobei soweit ich gelesen habe auch das zurückspielen des Backups nicht ganz einfach sein soll.

ZitatMeine Vermutung ist, dass du manuell oder automatisch Updates oder Änderungen an Modulen node.js (npmjs) gemacht hast und da auch sudo-datei überschrieben wurde.  .... oder irgend welche Perl-Module aktuallisiert wurden ... oder apt updates eigenspielt wurden  ....
Soweit ich mich zurückerinnere Nein. Darum hatte ich den Container ja schon mal komplett neu aufgesetzt, da ich ursprünglich eine v5-Version als Image genommen hatte in der offenbar jede Menge Sachen nicht funktionierten bzw. nachinstalliert werden mussten. In der v7, die ich aktuell nutze hat soweit ich mich entsinne alles von vornherein geklappt.

kadettilac89

#23
Zitat von: Superposchi am 12 Mai 2021, 16:19:46
Es wird im Fhem jede Nach ein Backup gemacht - jedenfalls soweit ich das aus diversen Foren zusammen gesucht habe.
Kontrolliert und Benutzt habe ich es noch nicht. Wobei soweit ich gelesen habe auch das zurückspielen des Backups nicht ganz einfach sein soll.
ich meine ein Backup des Docker-Containers nicht der Fhem Installation. Viele NAS haben eine Backupfunktion für die Container wodurch dann Container + permanente Dateien gesichert werden. Vielleicht heißt es nicht backup sondern export/import.

Aber wenn du das nicht kennst hast du vermutlich sowieso kein Backup. Dann hilft es jetzt acuh nicht. Du bräuchtest ein Backup von vor dem Problem.

Superposchi

Klar werden die Container-Dateien auf dem Filesystem gesichert. mehr geht nicht. Jedenfalls ist mir keine explizite Funktion den Container zu sichern bekannt.
Würde ja prinzipiell auch reichen wenn ich wüsste seit wann das Problem existent ist. Es ist mir ja eher zufällig aufgefallen. Und die Sicherungen gehen 30 Tage zurück, wobei a alleine dieser Threat schon fast 15 Tage läuft.

Superposchi

#25
Sorry das ich mich erst jetzt melde, habe viel rumexperimentiert und gelesen.

Habe diese Woche auch den Container neu erstellt, leider brachte auch dies keine Lösung.
Ich denke das Problem liegt in dieser Meldung "error 'installPerl App::cpanminus'"
Offenbar kann Fhem irgendetwas nicht installieren, warum auch immer.

Ich kann auch die Version von cpan nicht auslesen - führt genauso zu einem Fehler.

Ob der Fehler jetzt wegen dem Fehler beim Node.js auftritt oder diesen Verursacht kann ich nicht sagen.

Vielleicht kann ja auch jemand was mit dieser Meldung anfangen:
ZitatError code E403   
Summary:
Forbidden - passwordless sudo permissions required
Detail:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

You may add the following lines to /etc/sudoers.d/fhem:
  fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm update *
  fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm install *
  fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm uninstall *

Da scheint ja irgendein Passwort nicht gesetzt zu sein, doch ich weiß nicht wo und wie.

Bei der Node.js-Device hat er mit diesen 3 Paketen die Probleme: homebridge-fhem tradfri-fhem alexa-fhem

kadettilac89

Zitat von: Superposchi am 22 Mai 2021, 12:07:09
Ich denke das Problem liegt in dieser Meldung "error 'installPerl App::cpanminus'"
Wo siehst du die Meldung, welche Aktion löst diese aus?

Zitat von: Superposchi am 22 Mai 2021, 12:07:09
Error code E403   
Summary:
Forbidden - passwordless sudo permissions required
Detail:
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

You may add the following lines to /etc/sudoers.d/fhem:
  fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm update *
  fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm install *
  fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm uninstall *
Beim Anlegen des Docker Containers sollte das alles neu und korrekt angelegt werden. Irgend etwas passt hier nicht. Poste mal deine Docker-Parameter, nutzt du irgend welche abweichende Einstellungen? Ich meine solche Parameter ... -e FHEM_UID=6061 -e FHEM_GID=6061 -e FHEM_PERM_DIR=0750 -e FHEM_PERM_FILE=0640 -e UMASK=0037

Poste mal deine Docker-Parameter vollständig.

Dann mal die Befehle in der Fhem-Commandline ... ich meine oben im Webfrontend.

{qx(ls -l /usr/bin | grep -i sudo)}


Ausgabe sollte etwa so aussehen --> posten

total 8
-rwxr-xr-x 1 root root     260376 Feb  2  2020 cvtsudoers
-rwsr-xr-x 1 root root     157192 Feb  2  2020 sudo
lrwxrwxrwx 1 root root          4 Feb  2  2020 sudoedit -> sudo
-rwxr-xr-x 1 root root      60256 Feb  2  2020 sudoreplay



{qx(cat /etc/sudoers.d/fhem-docker)}



{qx(cat /etc/sudoers.d/fhem)}



Einer der beiden Befehle sollte was ausgeben --> posten welcher erfolgreich war, und was ausgegeben wird.

Ausgabe sollte so aussehen ...

# Auto-generated during container start
fhem ALL=(ALL) NOPASSWD: /usr/bin/nmap
fhem ALL=(ALL) NOPASSWD: /usr/bin/apt-get -q update
fhem ALL=(ALL) NOPASSWD: /usr/bin/apt-get -s -q -V upgrade
fhem ALL=(ALL) NOPASSWD: /usr/bin/apt-get -y -q -V upgrade
fhem ALL=(ALL) NOPASSWD: /usr/bin/apt-get -y -q -V dist-upgrade
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm update *
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/local/bin/cpanm *
fhem ALL=(ALL) NOPASSWD: /usr/bin/apt-get -y install *
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm install *
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm uninstall *


Zitat von: Superposchi am 22 Mai 2021, 12:07:09
Bei der Node.js-Device hat er mit diesen 3 Paketen die Probleme: homebridge-fhem tradfri-fhem alexa-fhem
Solange Sudo nicht funktioniert ist das auch nicht erfolgreich.

Funktioniert sein Spotify nach dem Erstellen des Containers?

Superposchi

Ziemlich viel auf einmal, also alles stück für stück von oben nach unten:

ZitatWo siehst du die Meldung, welche Aktion löst diese aus?
Das wird im Fhem-Installer-Status-Device als state angezeigt wenn ich mit dem Set-Befehl manuell versuche das Paket zu installieren(wird mir als einzige zu installierende Möglichkeit angeboten)

ZitatBeim Anlegen des Docker Containers sollte das alles neu und korrekt angelegt werden. Irgend etwas passt hier nicht. Poste mal deine Docker-Parameter, nutzt du irgend welche abweichende Einstellungen? Ich meine solche Parameter ... -e FHEM_UID=6061 -e FHEM_GID=6061 -e FHEM_PERM_DIR=0750 -e FHEM_PERM_FILE=0640 -e UMASK=0037
Ich habe den Container so installiert wie er Standardmäßig vorbereitet ist und nichts verändert. Die Parameter sehen folgendermaßen aus:
Name Value
BLUETOOTH_GID 6001
CONFIGTYPE fhem.cfg
FHEM_GID 6061
FHEM_PERM_DIR 0750
FHEM_PERM_FILE 0640
FHEM_UID 6061
GPIO_GID 6002
I2C_GID 6003
LANG en_US.UTF-8
LANGUAGE en_US:en
LC_ADDRESS de_DE.UTF-8
LC_MEASUREMENT de_DE.UTF-8
LC_MESSAGES en_DK.UTF-8
LC_MONETARY de_DE.UTF-8
LC_NAME de_DE.UTF-8
LC_NUMERIC de_DE.UTF-8
LC_PAPER de_DE.UTF-8
LC_TELEPHONE de_DE.UTF-8
LC_TIME de_DE.UTF-8
LOGFILE ./log/fhem-%Y-%m-%d.log
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
TELNETPORT 7072
TERM xterm
TIMEOUT 10
TZ Europe/Berlin
UMASK 0037


Ausgabe zu {qx(ls -l /usr/bin | grep -i sudo)}:
-rwxrwxrwx 1 root root     189968 Feb  2  2020 cvtsudoers
-rwxrwxrwx 1 root root     110700 Feb  2  2020 sudo
lrwxrwxrwx 1 root root          4 Feb  2  2020 sudoedit -> sudo
-rwxrwxrwx 1 root root      42872 Feb  2  2020 sudoreplay


Ausgabe zu {qx(cat /etc/sudoers.d/fhem-docker)}:
# Auto-generated during container start
fhem ALL=(ALL) NOPASSWD: /usr/bin/nmap
fhem ALL=(ALL) NOPASSWD: /usr/bin/apt-get -q update
fhem ALL=(ALL) NOPASSWD: /usr/bin/apt-get -s -q -V upgrade
fhem ALL=(ALL) NOPASSWD: /usr/bin/apt-get -y -q -V upgrade
fhem ALL=(ALL) NOPASSWD: /usr/bin/apt-get -y -q -V dist-upgrade
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm update *
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/local/bin/cpanm *
fhem ALL=(ALL) NOPASSWD: /usr/bin/apt-get -y install *
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm install *
fhem ALL=(ALL) NOPASSWD:SETENV: /usr/bin/npm uninstall *


Der andere Befehl gab nichts zurück.

Spotify funktioniert weiterhin nicht. Der Nest-Lautsprecher reagiert zwar, aber es wird nichts wiedergegeben.

kadettilac89

gehe mal auf der Console ... da musst du selber schaun wie du einen Befehlt ausführen kannst ...


chmod 4755 /usr/bin/sudo


Im Anschluss mal testen und nochmal die Ausgabe von ... s. u. .. posten


{qx(ls -l /usr/bin | grep -i sudo)}

Superposchi

Hier die erneute Ausgabe nachdem der Befehl in Terminal des Containers ohne Fehlermeldung abgesetzt wurde:
-rwxrwxrwx 1 root root     189968 Feb  2  2020 cvtsudoers
-rwsr-xr-x 1 root root     110700 Feb  2  2020 sudo
lrwxrwxrwx 1 root root          4 Feb  2  2020 sudoedit -> sudo
-rwxrwxrwx 1 root root      42872 Feb  2  2020 sudoreplay


Ich sehe keinen Unterschied