Seite 1 von 1

Installationsscript: Python oder Shell Script? (Linux)

Verfasst: Montag 3. Mai 2010, 20:22
von burli
Hi, ich möchte einen etwas umfangreicheren Installer programmieren. Dieser soll Pakete nachinstallieren (Ubuntu), Konfigurationsdateien erstellen oder vorhandene anpassen, Dateien in's Home Verzeichnis kopieren und unter Umständen sogar Sourcen via svn oder ähnlich runterladen und compilieren.

Am Anfang soll ein einfaches Menu angezeigt werden, um verschiedene Optionen einstellen zu können.

Geht sowas mit Python problemlos oder ist ein Shell Script besser geeignet?

Verfasst: Montag 3. Mai 2010, 20:49
von Pekh
Mußte mich heute früh mit InstallJammer herumschlagen. Und es gab nach vergleichsweise kurzer Zeit auch gute Ergebnisse. Vielleicht wäre das auch was für deine Zwecke?

Verfasst: Dienstag 4. Mai 2010, 01:08
von problembär
Generell finde ich Python wesentlich problemloser als Shells mit ihren unerwarteten Subshells und Namespaces sowie schlechtem Array-Support usw..
Meine Grundregel ist dennoch: bash bei Arbeit mit Dateien, Perl (oder Python) bei Arbeit in Dateien, sprich Datenverarbeitung.

Gruß

Verfasst: Dienstag 4. Mai 2010, 05:44
von snafu
Wenn das Skript etliche `subprocess.call()`s drin hat, ist reines Python sicherlich nicht so praktisch. Vielleicht könnte man ja auch Python und Bash mit ner Template-Engine mischen - so ähnlich wie BJ das hier für Cheetah zeigt.

Verfasst: Dienstag 4. Mai 2010, 07:49
von burli
Naja, was muss das Script machen? Am Anfang vor allem erstmal apt-get als Root ausführen, ein paar Dateien kopieren, teilweise auch als Root, eventuell vorher Archive entpacken und existierende Konfigurationsdateien ändern.

Letzteres stelle ich mit mit der Shell etwas schwierig vor, weil man mit grep und anderen Befehlen jonglieren muss. Zumindest wird es für mich schwierig, weil ich da wenig Erfahrung habe

Verfasst: Dienstag 4. Mai 2010, 08:10
von cofi
burli hat geschrieben:Letzteres stelle ich mit mit der Shell etwas schwierig vor, weil man mit grep und anderen Befehlen jonglieren muss. Zumindest wird es für mich schwierig, weil ich da wenig Erfahrung habe
Du kannst ja beides machen. Den ersten Teil mit einem Shellskript erledigen und die Konfigurationsanpassungen mit einem Pythonskript, dass du darin aufrufst.

Wenn die Anpassungen auch nur search and replace sind, ist man mit sed evtl auch besser dran, als mit einem Pythonskript.

Verfasst: Dienstag 4. Mai 2010, 12:11
von CM
In letzter Zeit habe ich gute Erfahrungen mit scons gesammelt: Ein in Python geschriebenen "software construction tool", dessen Konfigurationsdatei im wesentlichen ein Pythonschicht mit einer Portion scons ist. scons' wiki hat u. a. einen UnTarBuilder zu bieten. Also, es ist ziemlich mächtig und leider manchmal schwer verständlich.

HTH
Christian

Verfasst: Dienstag 4. Mai 2010, 12:17
von burli
Ich kenne scons. War für mich bisher eher ein make Ersatz.

Hat nur einen Haken: es ist standardmäßig nicht installiert. Ich möchte, dass der Installer nach Möglichkeit auf einer Standard *buntu Installation funktioniert, ohne irgendwelchen zusätzlichen Pakete

Im Moment läuft es eher auf ein Shell Script hinaus. Bekomme inzwischen etwas Hilfe von jemand mit "etwas" mehr Erfahrung :)