Update: Unterschied zwischen den Versionen

Aus FHEMWiki
(Sonderfall "commandref_join" beschrieben)
K (Beschreibungen zum alten update-Befehl aus 2014 entfernt (überholt))
Zeile 1: Zeile 1:
{{SEITENTITEL:update}}
{{SEITENTITEL:update}}
{{Infobox Modul
{{Infobox Modul
|ModPurpose=Befehl zur Aktualisierung der Fhem-Installation
|ModPurpose=Befehl zur Aktualisierung der FHEM-Installation
|ModType=cmd
|ModType=cmd
|ModCmdRef=update
|ModCmdRef=update
Zeile 8: Zeile 8:
|ModOwner=rudolfkoenig ([http://forum.fhem.de/index.php?action=profile;u=8 Forum] / [[Benutzer Diskussion:Rudolfkoenig|Wiki]])
|ModOwner=rudolfkoenig ([http://forum.fhem.de/index.php?action=profile;u=8 Forum] / [[Benutzer Diskussion:Rudolfkoenig|Wiki]])
}}
}}
[[update]] ist ein Befehl zur Aktualisierung der Fhem-Installation direkt über das Fhem [[FHEMWEB|Webfrontend]]. Von den Entwicklern bis zu einem bestimmten Zeitpunkt freigegebene Änderungen sind jeweils morgens ab 8:00 Uhr über die Update Funktion verfügbar. Änderungen, die später freigegeben werden, werden dementsprechend erst am nächsten Tag verfügbar.
[[update]] ist ein Befehl zur Aktualisierung der FHEM-Installation direkt über das FHEM [[FHEMWEB|Webfrontend]]. Von den Entwicklern bis zu einem bestimmten Zeitpunkt freigegebene Änderungen sind jeweils morgens ab 8:00 Uhr über die Update Funktion verfügbar. Änderungen, die später freigegeben werden, werden dementsprechend erst am nächsten Tag verfügbar.


== Syntax ==
== Syntax ==
:<code>update [development|stable] [&lt;file&gt;|check|fhem|full] [force]</code>
Seit dem 19.08.2014 wird ein neues Update-Modul (hier im {{Link2Forum|Topic=26311|LinkText=Forum}} vorgestellt) von Fhem verteilt. Die Syntax lautet nun:
:<code><nowiki>update [<fileName>|all|check|force] [http://.../controlfile]</nowiki></code>
:<code><nowiki>update [<fileName>|all|check|force] [http://.../controlfile]</nowiki></code>
oder
:<code><nowiki>update [add source|delete source|list|reset]</nowiki></code>


'''Hinweise:'''
'''Hinweise:'''
* bis 18.08.2014: Fhem führt (sofern entsprechend voreingestellt) ein Backup der bisherigen Installations- '''und''' Konfigurationsdateien vor einem Update durch.
* FHEM sichert mit den Standardeinstellungen während des Updates "nur" die aktualisierten Modul(Installations-)dateien und beispielsweise nicht die [[Konfiguration]]. Soll vor dem Update ein vollständiges Backup von FHEM erstellt werden, muss das mit dem Attribut <code>[[#backup_before_update|backup_before_update]]</code> eingeschaltet werden.
* ab 19.08.2014: Fhem sichert "nur" die Modul(Installations-)dateien standardmäßig. Backup muss separat eingeschaltet werden. Details dazu in diesem {{Link2Forum|Topic=26311|LinkText=Forenthread}}
* Lesen Sie aufmerksam die nach dem Update auf dem Monitor erscheinenden Meldungen zu Neuerungen und Änderungen.
* Lesen Sie aufmerksam die nach dem Update auf dem Monitor erscheinenden Meldungen.
* Nach einem Update ist immer ein ''shutdown restart'' erforderlich.
* Nach einem Update ist immer ein ''shutdown restart'' erforderlich.
* geänderte und neu eingecheckte Module werden grundsätzlich erst am Folgetag ab ca. 8.00 Uhr durch den Update-Befehl verteilt.
* geänderte und neu eingecheckte Module werden grundsätzlich erst am Folgetag ab ca. 8.00 Uhr durch den Update-Befehl verteilt.
Zeile 28: Zeile 26:


=== update ===
=== update ===
Die ganze Fhem-Installation wird auf die neueste Version gebracht.
Die ganze FHEM-Installation wird auf die neueste Version gebracht.


=== update check ===
=== update check ===
Es werden alle Module aufgelistet, von denen eine neuere als die bereits installierte Version verfügbar ist. Es wird nicht installiert.
Es werden alle Module aufgelistet, von denen eine neuere als die bereits installierte Version verfügbar ist. Es wird nicht installiert.
=== update development ===
{{Randnotiz|RNTyp=y|RNText=Dieser Unterbefehl ist in Fhem ab [[version|Stand]] 19.08.2014 nicht mehr enthalten.}}
Sie führen ein Update auf die in der Entwicklung befindliche FHEM-Version durch. Dies kann dazu führen, dass einiges nicht (mehr) so läuft, wie Sie es gewohnt sind. Für ein bisher stabiles und produktiv eingesetztes FHEM-System sollte daher besser nur der Befehl ''update stable'' genutzt werden. Dazu sollte man aber eins wissen: Es gibt faktisch keinen Unterschied zwischen '''stable''' und '''development''', da nur eine Version gepflegt wird.


=== update force ===
=== update force ===
Das Update wird erzwungen (falls es beim regulären ''update'' Probleme geben sollte).
Das Update wird erzwungen (falls es beim regulären ''update'' Probleme geben sollte). Dieser Befehl ist nur mit Bedacht und im Notfall einzusetzen. Sollte ein reproduzierbares Problem existieren, dies bitte im FHEM-Forum berichten, damit dem nachgegangen werden kann.


=== update &lt;Dateiname&gt; ===
=== update &lt;Dateiname&gt; ===
Zeile 51: Zeile 45:


=== restoreDirs ===
=== restoreDirs ===
siehe [[#Rücksichern beim Update überschriebener Dateien]]
siehe [[#Rücksichern beim Update überschriebener Dateien|Rücksichern beim Update überschriebener Dateien]]


=== exclude_from_update ===
=== exclude_from_update ===

Version vom 31. März 2016, 14:08 Uhr


update
Zweck / Funktion
Befehl zur Aktualisierung der FHEM-Installation
Allgemein
Typ Befehl
Details
Dokumentation EN / DE
Support (Forum) Sonstiges
Modulname 98_update.pm
Ersteller rudolfkoenig (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

update ist ein Befehl zur Aktualisierung der FHEM-Installation direkt über das FHEM Webfrontend. Von den Entwicklern bis zu einem bestimmten Zeitpunkt freigegebene Änderungen sind jeweils morgens ab 8:00 Uhr über die Update Funktion verfügbar. Änderungen, die später freigegeben werden, werden dementsprechend erst am nächsten Tag verfügbar.

Syntax

update [<fileName>|all|check|force] [http://.../controlfile]

oder

update [add source|delete source|list|reset]

Hinweise:

  • FHEM sichert mit den Standardeinstellungen während des Updates "nur" die aktualisierten Modul(Installations-)dateien und beispielsweise nicht die Konfiguration. Soll vor dem Update ein vollständiges Backup von FHEM erstellt werden, muss das mit dem Attribut backup_before_update eingeschaltet werden.
  • Lesen Sie aufmerksam die nach dem Update auf dem Monitor erscheinenden Meldungen zu Neuerungen und Änderungen.
  • Nach einem Update ist immer ein shutdown restart erforderlich.
  • geänderte und neu eingecheckte Module werden grundsätzlich erst am Folgetag ab ca. 8.00 Uhr durch den Update-Befehl verteilt.
  • Mit dem Befehl version lässt sich die Version einzelner oder aller benutzten Module bestimmen.

Parameter

Details zu Parametern des update Befehls:

update

Die ganze FHEM-Installation wird auf die neueste Version gebracht.

update check

Es werden alle Module aufgelistet, von denen eine neuere als die bereits installierte Version verfügbar ist. Es wird nicht installiert.

update force

Das Update wird erzwungen (falls es beim regulären update Probleme geben sollte). Dieser Befehl ist nur mit Bedacht und im Notfall einzusetzen. Sollte ein reproduzierbares Problem existieren, dies bitte im FHEM-Forum berichten, damit dem nachgegangen werden kann.

update <Dateiname>

Mit z.B. update 02_HTTPSRV.pm wird nur von der Datei 02_HTTPSRV.pm eine neue Version installiert. Alle anderen FHEM-Dateien werden nicht angetastet.

Attribute

Zur weiteren Beeinflussung der Funktionsweise des update Befehls können Attribute verwendet werden. Diese müssen für das Objekt global gesetzt werden, also mit einem Konfigurationsbefehl der Art

attr global ...

backup_before_update

siehe auch backup

restoreDirs

siehe Rücksichern beim Update überschriebener Dateien

exclude_from_update

Mit der Definition

attr global exclude_from_update ...

kann eine Liste von Dateien spezifiziert werden, die bei der Ausführung des update Befehls nicht aktualisiert werden sollen. Dateien können auch über reguläre Ausdrücke definiert werden, die einzelnen Einträge werden durch Leerzeichen voneinander getrennt.

Einen Spezialfall stellt die commandref dar, die seit einer Modifikation des Update Prozesses (März 2015, beschrieben in dieser Forendiskusion) nicht mehr heruntergeladen wird, sondern auf dem Benutzersystem durch Extraktion der Dokumentation aus den einzelnen Modulen generiert wird, angezeigt durch die Meldung im fhem.log:

Calling /usr/bin/perl ./contrib/commandref_join.pl, this may take a while.

Sollte dieser Prozess (z.B. auf einem langsamen Rechner) zu lange dauern, bleibt die Meldung

update finished, "shutdown restart" is needed to activate the changes.

aus. Wird commandref in das exclude_from_update Attribut eingetragen, entfällt dieser Schritt, die lokale commandref wird allerdings dann auch nicht mehr aktualisiert. Die modulspezifische Hilfe, die z.B. über help modulname aufgerufen werden kann, ist davon nicht betroffen.

Anwendungsbeispiel

Durchführung eines Updates

Zunächst kann mit dem Befehl

update check

überprüft werden, ob es überhaupt ein neues Update gibt und welche Dateien hierbei ausgetauscht würden (die angezeigten Infos sollten in einer Textdatei gesichert werden. Mit diesen Infos kann gezielter nach Problemen, die vielleicht nach einem Update auftreten, gesucht werden). Anschließend kann mittels:

update

das Update eingespielt werden. Hierbei ist zu beachten, dass die Befehle auf der FHEM Webseite oben (Befehls-Eingabefeld) eingegeben werden und anschließend die "Enter" Taste auf der Tastatur gedrückt werden muss.

Gibt es kein Update für FHEM, sieht die Ausgabe z.B. nach "update check" wie folgt aus:

List of new / modified files since last update:
nothing to do...

Rücksichern beim Update überschriebener Dateien

Per default werden vor dem Überschreiben alle Dateien in einem neuen Verzeichnis (restoreDir/Datum) gesichert. Diese Dateien kann man einzeln oder komplett mit dem Befehl restore zuruecksichern (z.Bsp.: restore 2014-08-19 oder restore 2014-08-19/fhem.pl). Mit dem restoreDirs Attribut kann man die Anzahl der aufgehobenen Sicherungen (== Datum-Verzeichnisse) bestimmen, die Voreinstellung ist 3. Mit 0 kann man das Feature komplett abschalten.