Roger: automatisches update für script

hallo!

ich habe vor, mein script automatisch updaten zu lassen. der user soll also nur auf update klicken und evtl. noch sagen, ja, das update will ich machen.

ich dachte mir das so:

  • der updatelink ruft ein script auf, welches auf meinem server ein script aufruft, welches zunächst die versionsnummer überprüft und dann in einer db checkt, ob eine neuere version vorliegt
     -> ist das der fall, wird dann die nächsthöhere version genommen
  • die update-dateien liegen dann in dem ordner, der die ausgewählte versionsnummer hat
  • danach werden dann die dateien einfach rüberkopiert

ist das so einfach, wie ich mir das vorstelle (kann ich dazu den copy-befehl nutzen)? was muss ich dabei beachten? sicherlich muss ich alle dateien vorher die schreibrechte für das script zu teilen (755? - die sind doch auf jedem server unterschiedlich) - so etwas birgt aber dann doch ein hohes sicherheitsrisiko (mal abgesehen davon, dass die userdaten in einer extra-datei liegen, die nur lesbar für das script ist.

habt ihr evtl. noch tips für mich?
danke!

gruß.
roger.

  1. Moin!

    habt ihr evtl. noch tips für mich?

    CVS.

    Ich weiß ja nicht, wie du deine Quelltexte verwaltest, aber CVS ist die in meinen Augen geniale Lösung zu allen Versionsproblemen, die es bei der Softwareentwicklung so gibt (aber natürlich nicht die einzige).

    Bei solchen automatischen Updates besteht ja das Problem, dass der Kunde möglicherweise nicht nur nach vorne möchte, sondern unter Umständen auch nach hinten, weil die neue Version nicht funktioniert.

    Außerdem bietet CVS so nette Features wie "Branches", mit denen man von einer Grundentwicklung ausgehend an einer Stelle anzweigen kann, um beispielsweise nach einem Feature-Freeze oder Code-Freeze nur noch Bugfixes zu integrieren, um zu einem neuen stabilen Release zu gelangen, der dann wieder an die Kunden gehen kann.

    - Sven Rautenberg

    --
    "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
    (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
    1. Moin!

      yo, cvs schön und gut. allerdings ist die zielgruppe meines scripts nun mal nicht "ich-lad-mal-schnell-runter-und-installier-es" sondern eher "cvs-http-ftp-xyz-hä?!". und dabei ist nun mal die one-click lösung (autoupdate) der beste weg - meines erachtens. sicherlich kann man da noch alte downloads anbieten, aber so ne auto-update funktion ist doch schon was bequemes. nich?

      gruß.
      roger.

      1. Moin!

        yo, cvs schön und gut. allerdings ist die zielgruppe meines scripts nun mal nicht "ich-lad-mal-schnell-runter-und-installier-es" sondern eher "cvs-http-ftp-xyz-hä?!". und dabei ist nun mal die one-click lösung (autoupdate) der beste weg - meines erachtens. sicherlich kann man da noch alte downloads anbieten, aber so ne auto-update funktion ist doch schon was bequemes. nich?

        Ja klar. Aber als Hintergrundbild für die Erstellung einer Updateversion ist CVS für dich nicht verkehrt. Dann kannst du diverse Tags, die stabile Versionen kennzeichnen und die dementsprechend ausgeliefert werden dürfen, auf Anfrage zu einem Paket zusammenstellen und verschicken.

        Abgesehen davon: Was die Updates angeht, ist CVS, wenn einmal ein lokales Checkout gemacht wurde, so simpel: "cvs update". Ggf. noch mit einer Passworteingabe, abhängig davon, wie du den Zugang zum CVS-Repository anbietest.

        - Sven Rautenberg

        --
        "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
        (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
        1. Moin!

          gibts da ein bestimmtes system, was ich vielleicht mal ausprobieren sollte?

          gruß.
          roger.

          1. Moin!

            gibts da ein bestimmtes system, was ich vielleicht mal ausprobieren sollte?

            Zum Verpacken von released Versionen? Kenne ich keins, mach eines selber. :)

            Zu CVS selbst empfehle ich unter Windows TortoiseCVS als Zugriffsoberfläche. Das Programm ist genial in die Windows-Dateidialoge und Kontextmenüs integriert, damit kann man echt super arbeiten. Beispielsweise werden die Dateieigenschaften erweitert, so dass man dort z.B. eine Übersicht über die Historie einer bestimmten Datei erhalten kann, dort auch direkt ältere Versionen laden oder DIFFs abrufen kann, oder sich z.B. auch den Versionsbaum mit allen Verzweigungen und Tags ansehen.

            Und unter Linux gibts die gute alte Kommandozeile. Das schöne ist: TortoiseCVS zeigt in den Aktionsdialogen auch immer die verwendete Kommandozeile an, die man im Prinzip (um dasselbe unter Linux zu erledigen) nur einfach kopieren muß.

            Übrigens kann man CVS auch ohne irgendeinen Server unter Windows betreiben (die zentrale Dateiablage erfolgt dann in einem zu bestimmenden lokalen Verzeichnis). Und cvs selbst erfordert nicht zwingend einen wirklichen Server, sondern im Prinzip nur das Programm "cvs" und einen Shellzugang zum Server (vorzugsweise SSH) - läßt sich also tatsächlich überall verwenden.

            - Sven Rautenberg

            --
            "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
            (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)