Zitat geschrieben von Heart
@CBC
1)Da passt noch was nicht imho... Ich habe z.B. jameica nicht in /opt sondern nur bei meinem User in ~/Programme/jameica "installiert". Also habe ich bei beiden Dateien, den Pfad angepasst (hier wäre es auch schöner, wenn man dies nur 1x setzen müsste?!) und habe aber nach dem erfolgreichen Update einen quasi leeren ~/Programme/jameica Ordner (nur die Plugins sind drin).
edit: Im update_jameica.sh Skript hast Du zwar richtig $jameica_home beschrieben, aber nutzt hart /opt
Code
echo " Installiere neue Version in $jameica_home"
unzip -qu $inst_tmp/$download_file -d /opt
Es müsste dann
Code
unzip -qu $inst_tmp/$download_file -d $jameica_location
sein denke ich?!
Stimmt, da habe ich doch tatsächlich vergessen/übersehen die Zeile entsprechend abzuändern. So wie Du schon richtig gedacht hast, so sollte die Anweisung eigentlich auch aussehen.
Zitat geschrieben von Heart
(Weiterhin ist es eher unschön, dass ich ein root-Passwort eingeben muss, obwohl ich wie gesagt, jameica im $HOME liegen habe und hierdurch das jameica Verzeichnis ~/Programme/jameica samt entpackten Dateien mit root:root Rechten angelegt werden....)
Also es gibt zwei Möglichkeiten, entweder, Du änderst einfach den folgenden Teil von "jameica_updatecheck.sh"
Code
echo -n " Root-"
su -c "./update_jameica.sh $jameica_new"
in
Code
./update_jameica.sh $jameica_new
oder gleich so, da dies die Anpassung ist, die durch eine Prüfung des Zielordners auf Schreibrechte entscheidet, ober der aktuell angemeldete User selbst kopieren kann, oder ob dazu Root-Rechte erforderlich sind.
Code
if [[ ! -w $jameica_location ]]; then
echo " Aktueller Benutzer hat keine Schreibrechte in $jameica_location,"
echo " daher sind für die weitere Ausführung Root-Rechte erforderlich."
echo -n " Root-"
su -c "./update_jameica.sh $jameica_new"
else
./update_jameica.sh $jameica_new
fi
Wenn aus irgendwelchen Gründen der aktuelle Benutzer keine Rechte hat, in das Installations-Verzeichnis zu schreiben, aber das Root Passwort ist auch nicht verfügbar, dann kann man auch einen Benutzer extra dafür anlegen, z.B. "jameicainst", diesem Benutzer dann Schreibrechte für /opt (oder wo auch immer) erteilen, und dann den o.g. Part so ändern: su jameicainst -c "./update_jameica.sh $jameica_new". Um noch flexibler zu werden:
Code
jameica_inst_user="jameicainst"
su $jameica_inst_user -c "./update_jameica.sh $jameica_new"
...und Du hast natürlich auch Recht, dass es unschön ist, zweimal die Variablen anzupassen, ich werde mir dazu noch einmal etwas anderes ausdenken, um die Sache komfortabler zu gestalten ... eigentlich könnte ich die beiden Scripte ja auch zusammenführen. Ich hatte dazu schon überlegt, wie ich vielleicht noch ein paar andere Funktionen unterbringe, um so eine Art Werzeugkasten als Shell Script zu bauen. Hierzu folgende Idee:
Ein Shell-Script, in denen lediglich alle Dinge wie z.B. der Update-Check als Funktion hinterlegt sind z.B.
#!/bin/bash
check_update() {
....
}
So könnte man von einem Hautscript oder jedem beliebigen anderen Script, alle Jameica/Hibiscus Funktionen wie folgt nutzen:
Einbinden mit
source ./jameica_functions.sh
dann einfach z.B. den Check auf neuere Versionen einfach mit folgendem Aufruf realisieren:
check_update
Das ganze würde natürlich auch mit den Variablen funktionieren, die so zentral in einer einzigen Datei gespeichert und gepflegt werden könnten...
Bsp. jameica_vars.sh:
#!/bin/bash
jameica_location="/opt"
dann auch einfach in jedem beliebigen Script, in dem die Variablen genutzt werden sollen, mit
source ./jameica_vars.sh
einbinden, und schon stehen die dort zur Verfügung.
Viele Grüße
Christian