Installationsscript: Python oder Shell Script? (Linux)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

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?
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

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?
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ß
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

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
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

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 :)
Antworten