Ich hoffe, die Frage ist nicht zu banal:
Ich habe mit php für unseren Sportverband ein Programm für die Punktrichter geschrieben. Das Programm läuft natürlich unter Linux eher besser als unter Windows. Nun war es zwar leider kein Problem eine Installations-CD für Windows zu machen, aber für Linux habe ich keine automatische erstellen können. Natürlich ist das Geld der Mitglieder zu schade, um es für Lizenzen für Windows rauszuwerfen (Es werden bis zu 40 Rechnern benötigt).
– Und die Leute, die mit einem solchen Programm arbeiten müssen haben noch weniger Ahnung von Linux, als ich; daher meine Frage:
Ist es möglich eine ähnliche Installations Batch- Datei für Linux zu machen, wie für Windows? – Wenn ja, wie?
Es würde in diesem Fall eigentlich genügen, wenn mkdir- und copy- Befehle nacheinander ausgeführt werden würden – z.B. durch Klick auf eine Datei, oder im allerschlimmsten Fall durch Aufruf einer Datei in der Konsole.
Die Installation sollte nach Möglichkeit distributionsunabhängig sein!?
Wäre für Hilfe sehr dankbar.
Tom
PS.: Übrigens habe ich keine Ambitionen mit dem Programm Geld zu verdienen – im Hauptberuf bin ich Arzt und ein bißchen PHP- Programmieren macht einfach Spaß! – Und wenn die Installation einfach wäre, wäre einfach ein Haufen Geld gespart für die Leute!
hier einige bescheidene Vorschläge meinerseits:
1. Wenn es in PHP geschrieben ist, könnte man es doch auch völlig ohne viel Aufwand auf einem Webserver laufen lassen und die Clients per Netzwerk und Browser die Programmseiten aufrufen lassen.
2. Man könnte eine minimale Live-CD alla Knoppix entwerfen welche das Programm dann von CD startet.
3. Warum war es einfacher eine Windows-Installations-CD zu erstellen welche eine PHP + Webserver Umgebung unter Windows installiert als eine für Linux wo der Kram schon standardmässig installiert ist?
Ich glaube, es fehlen noch einige Hintergrundinformationen zu dem Gesamtscenario:
– Soll das ganze während einer Veranstaltung auf mehreren PCs laufen oder ist es wirklich notwendig eine Installation-CD für vorhandene Linux-Systeme in Umlauf zu bringen?
Gruesse Rene
Es gibt Autostart-Möglichkeiten unter LINUX (lege ein Shellscript mit dem Namen autostart ins Hauptverzeichnis der CD).
Ich halte aber so etwas nicht für sinnvoll. Wenn dein Programm mehr benötigt, als das Kopieren eines Verzeichnis(baums) ins Home-Verzeichnis, dann sind ohnehin root-Rechte notwendig.
Und Leute, die mit root-Rechten arbeiten, sollten in der Lage sein aus einem Terminalfenster heraus ein Skript zu starten, nachdem sie mit su – root-Rechte erworben haben.
Gute Idee – probier ich mal – melde mich wieder!
Kann ich das script so schreiben, daß es Root- Rechte bekommt?
TB
Das geht bei mir nur auf einem Rechner, und auch nur dann, wenn ich die CD auf dem gebrannt habe. Auf jedem Rechner ist allerdings eine andere Linuxversion. Muß da irgendwas besonderes stehen in dem script?
Und die Leute, die mit einem solchen Programm arbeiten müssen haben noch weniger Ahnung von Linux, als ich; daher meine Frage: Ist es möglich eine ähnliche Installations Batch- Datei für Linux zu machen,
Für bestehende Linux-Distributionen ist es das Beste, du baust passende Pakete aus deiner Software — das ist der übliche Weg unter Linux, denn so werden Abhängigkeiten (z.B. gegenüber dem php-Interpreter) richtig aufgelöst und man kann das Paket auch später wieder sauber deinstallieren.
So wie ich dich verstanden habe geht es aber nur darum, die Software überall verfügbar zu haben, nicht um die Integration in ein bestehendes System? In diesem Fall solltest du überlegen, ob du nicht eine Live-CD selsbt bauen willst, z.B. indem du Knoppix remasterst und deine Software mit auf die CD packst. Dann müssen die Leute gar nichts mehr installieren, sondern nur noch die CD in ihren Rechner stecken und davon booten. Die Windows-Version brauchst du dann auch nicht mehr.
Jan
Das Programm muß bei jedem Turnier auf nur 2 Rechnern (Server und Backup) laufen, die anderen sind nur Clients.
Aber die Installation das Programms muß so einfach sein, daß der jeweilige Kampfrichterreferent auch ohne Linuxvorkenntnisse den Rechner hochfährt, die CD reinschiebt, und im schlimmsten Fall noch eine icon anklickt und im allerschlimmstn Fall evtl. auch einen Befehl in die shell eingibt. Es bedarf bei der Installation dreier einfacher Schritte:
1)Kopieren der php-Dateien, in ein entsprechendes Verzeichnis z.B.: file:/opt/ lampp/htdocs/…
2) Kontrolle/Vergabe der passenden Rechte (insb. Schreibrecht für die ein oder andere Datei, in der das Programm temporäre Daten sichert)
3)Neuanlegen eines entsprechenden MySQL Users
(s.a.o.)
TB
Schritte: 1)Kopieren der php-Dateien, in ein entsprechendes Verzeichnis z.B.: file:/opt/ lampp/htdocs/… 2) Kontrolle/Vergabe der passenden Rechte (insb. Schreibrecht für die ein oder andere Datei, in der das Programm temporäre Daten sichert) 3)Neuanlegen eines entsprechenden MySQL Users
Die PHP-Dateien müssen nicht kopiert werden, die sind auf der Live-CD schon an der passenden Stelle vorhanden. Über Dateirechte brauchst du dir bei dieser Anwendung auch keine Gedanken zu machen. Die Daten werden schließlich über einen Datenbankserver verwaltet. Ein passendes Datenbank-Rumpfstück wird auf der CD mitgebracht und automatisch beim Starten auf einen angeschlossenen USB-Stick kopiert, sofern nicht schon vorhanden. Der Datenbankserver greift danach auf die Datenbank-Datei auf dem USB-Stick zu.
und im schlimmsten Fall noch eine icon anklickt
Du kannst auch eine Verknüpfung in den Autostart-Ordner des knoppix-Benutzers legen, dann startet das Programm automatisch. Über was für eine Art Software reden wir eigentlich genau? Browser-basiert mit PHP-Unterstüzung, oder Standalone? Im ersteren Fall muss auf dem Rechner schließlich auch noch ein Webserver laufen.
Auch wenn dir das vielleicht alles als viel Aufwand erscheint: Es ist einfach so, dass das Verpacken einer Software für sehr unerfahrene Benutzer sehr aufwendig ist. Der Vorteil der Live-CD ist aber, dass nach jedem Start die gesamte Software in einem Initialzustand ist, in dem sie sofort funktioniert. Alle Fehler, die noch auftreten können müssen mit der Datenbank auf dem USB-Stick zu tun haben.
Jan
Hm also einige haben ja schon die Lösung mit ner LiveCD und einem zentralen
Webserver (da PHP-Applikation) genannt (wobei ich die Live-CD als Overkill
erachte).
Es gibt noch 3 weitere Möglichkeiten.
1. Ein Shellscript wie von dir angedacht, welches man mittels einer graphischen
Dialogführung auch ohne Konsole die Sachen installieren kann. Zu diesem Zweck
schau dir mal den Installer der P2P-Software Apollon an: http://apollon.sf.net
an. Ich hab es mir allerdings nicht genauer angeschaut.
2. Was ich eher raten würde: Ein RPM erzeugen. Zu diesem Zweck erstellt man ein
sogenantes Spec-File und lässt dann mit rpmbuild das RPM erstellen. Da kann man
sehr einfach über Abhängigkeiten festlegen, dass bestimmte Dinge installiert
sein müssen bevor das Paketen installiert wird und außerdem kann man es wieder
restlos deinstallieren mit den üblichen Tools. Das Erstellen eines RPMs ist
nicht sonderlich schwer. Am besten geht es wenn man sich Specfiles anderer
Quellpakete (SRPM) anschaut und die Manpage von rpmbuild.
3. Eine Kreuzung aus 1. und 2. mittels checkinstall:
http://asic-linux.com.mx/~izto/checkinstall/ . Checkinstall erzeugt dynamisch
aus den Quellen ein RPM, Deb etc, je nach System und installiert das sofort.
Allerdings hab ich mir checkinstall noch nicht genauer angeschaut.
Ich hoffe dass dir die kleinen Anregungen die mir jetzt spontan einfielen
helfen. Über das Resultat wäre ich natürlich dann sehr gespannt.
Du kannst das Shell-Skript ganz einfach mit einem Editor wie kwrite erstellen. In das Skript schreibst Du einfach die Befehle rein wo du in die Konsole eingeben würdest.
Nehmen wir an die PHP Dateien befinden sich in dem Unterordner “php” auf der CD. Anschließend werden sie nach /opt/lamppp/htdocs/php/ kopiert.
Skript:
cp php/* /opt/lampp/htdocs/php/
chmod 666 /opt/lampp/htdocs/php/
chmod 666 /opt/lampp/htdocs/php/*
chown wwwrun:www /opt/lampp/htdocs/php/
chown wwwrun:www /opt/lampp/htdocs/php/*
mysql -u benutzername
Das war das Skript.
MySQL muss während des Anlegens eines Benutzers gestartet sein! mysql -u benutzername ersetzt du einfach mit deiner Eingabe in die Konsole.
Der Benutzer muss nur noch eine Shell (Konsole) öffen und dort eingeben:
su
Deine Idee ist super. Ich habe jetzt einfach ein Icon gemacht, das ein Shellscript startet – natürlich als root. Das funktioniert auf der gleichen Suseversion problemlos und das reicht ja auch. Danke für die zündende Idee.
Ja, das ist schon richtig, daß das Programm total einfach installiert werden kann – es es bedarf dreier einfacher Schritte:
1)Kopieren der php-Dateien, in ein entsprechendes Verzeichnis z.B.: file:/opt/ lampp/htdocs/… .
2) Kontrolle/Vergabe der passenden Rechte (insb. Schreibrecht für die ein oder andere Datei, in der das Programm temporäre Daten sichert).
3)Neuanlegen eines entsprechenden MySQL Users.
Da das Programm die kompeletten Turnierdaten in MySQL speichert und sichert ist eine Live-CD denke ich möglicherweise nicht wirklich geeignet!?
Die Datei müßte eigentlich nichts anderes machen, als ganz einfache shell- Befehle nacheinander mit Rootrechten auszuführen, wenn sie aufgerufen wird. – Die User müßten nur die Datei aufrufen, das Root-Passwort eingeben und los … .
TB
Hi,
wie wäre es wenn du die Live-CD für das Programm und als Speichemedium einen
USB-Stick nimmst.
Du kannst aber auch mit der Live-CD auf die Festplatte schreiben.
Martin