Holger: Forum nur für Eingeweihte???

Hallo zusammen!

Zweimal habe ich versucht, hier mal eine Antwort zu bekommen, weil ich selbst gerade ein Brett vor dem Kopf habe, schade nur, daß hier scheinbar nur "Eingeweihten" geantwortet wird. Ich aber wohl nur zu dumme Fragen stelle, die keiner beantworten will ....

Trotzdem versuche ich noch mal zu fragen:
Ich möchte gern in mein CGI-BIN-Verzeichnis auf einem Server, auf dem ich scheinbar keine Rechte habe (ich kann weiß zumindest nicht wie ich "perl makefile.pl ausführen soll), zusätzliche Perl-Module installieren. Gibt es da eine Möglichkeit???
Ich habe schon überall gesucht, aber leider nichts gefunden, was mir weiterhilft. Kann mir mal jemand das "für doofe" von Anfang an erklären??

Über eine Antwort ggf. auch per Mail würde ich mich sehr freuen!!!

Euer Holger

  1. Hallo zusammen!

    Zweimal habe ich versucht, hier mal eine Antwort zu ...

    Hallo Holger !
    Einem Namensvetterr helfe ich natürlich gerne. Ich hoffe natürlich, dass ich Dir helfen kann.

    Aus Deinem Brief vermute ich, dass Du ähnlich wie ich noch nicht so viel Erfahrung im Umgang mit PERL hast.

    Zuerst solltest Du bei Deinem Provider nachfragen, ob es Dir überhaupt erlaubt ist PERL-Scripts auszuführen.

    PERL-Scripts brauch man überhaupt nicht zu installieren. Du musst sie nur in das CGI-BIN Verzeichnis hochladen (ASCII-Modus), wichtig dabei ist, dass in der ersten Zeile des scriptes der rel. Pfad zum Perl-Interpreter angegeben ist (den Pfad erfährst Du auch von Deinem Provider, aber in aller Regel lautet er #!/usr/bin/perl).

    Dann müssen die Zugriffsrecht geändert werden, das erfolgt mit Hilfe des FTP-Programms (CHMOD), wie Du die Rechte setzen musst steht in der Anleitung zu Deinen Scripts (meist 755).

    Der Aufruf des Scriptes erfolgt dann wie bei einer HTML-Datei (in Deinem Falle:   http://www.deine-URL.de/CGI-BIN/makefile.pl)

    Um auf Deinem Rechner Scripte ausführen zu können, benötigst Du einen Perl-Interpreter und einenm eigenen WEB-SERVER.

    Ich hoffe ich konnte Dir helfen, wenn nicht kannst Du mir noch ne Mail schreiben.

    1. Hallo zusammen!

      Zweimal habe ich versucht, hier mal eine Antwort zu ...

      Hallo Holger !
      Einem Namensvetterr helfe ich natürlich gerne. Ich hoffe natürlich, dass ich Dir helfen kann.

      Aus Deinem Brief vermute ich, dass Du ähnlich wie ich noch nicht so viel Erfahrung im Umgang mit PERL hast.

      Zuerst solltest Du bei Deinem Provider nachfragen, ob es Dir überhaupt erlaubt ist PERL-Scripts auszuführen.

      PERL-Scripts brauch man überhaupt nicht zu installieren. Du musst sie nur in das CGI-BIN Verzeichnis hochladen (ASCII-Modus), wichtig dabei ist, dass in der ersten Zeile des scriptes der rel. Pfad zum Perl-Interpreter angegeben ist (den Pfad erfährst Du auch von Deinem Provider, aber in aller Regel lautet er #!/usr/bin/perl).

      Dann müssen die Zugriffsrecht geändert werden, das erfolgt mit Hilfe des FTP-Programms (CHMOD), wie Du die Rechte setzen musst steht in der Anleitung zu Deinen Scripts (meist 755).

      Der Aufruf des Scriptes erfolgt dann wie bei einer HTML-Datei (in Deinem Falle:   http://www.deine-URL.de/CGI-BIN/makefile.pl)

      Um auf Deinem Rechner Scripte ausführen zu können, benötigst Du einen Perl-Interpreter und einenm eigenen WEB-SERVER.

      Ich hoffe ich konnte Dir helfen, wenn nicht kannst Du mir noch ne Mail schreiben.

      Hallo Holger!

      Erstmal vielen Dank!

      Ich habe mich wohl falsch ausgedrückt. Grundsätzlich kann ich PERL-Scripte ausführen. Nur benötige ich die Module LWP::UserAgent und HTTP::Request bzw. HTTP::Status, die der Provider nicht zur Verfügung stellt. Es muß doch aber über @INC die Möglichkeit geben, die Module auch in mein CGI-BIN-Verzeichnis zu upzuloaden, oder etwa nicht????

      (Immernoch sehr ratlos dreinschauend)

      Holger

      1. Zweimal habe ich versucht, hier mal eine Antwort zu ...

        Keine gute Methode, um überhaupt jemals Antwort zu bekommen.

        Ich habe mich wohl falsch ausgedrückt. Grundsätzlich kann ich PERL-Scripte ausführen. Nur benötige ich die Module LWP::UserAgent und HTTP::Request bzw. HTTP::Status, die der Provider nicht zur Verfügung stellt. Es muß doch aber über @INC die Möglichkeit geben, die Module auch in mein CGI-BIN-Verzeichnis zu upzuloaden, oder etwa nicht????

        Doch. Viele. Das Problem ist, daß Du *dazu* Rechte brauchst. Irgendwelche.
        Je nachdem, welche Rechte Du hast, gibt es passende Möglichkeiten. Beispielsweise über eine telnet-Sitzung auf dem Server genau das tun, was die Installationsanleitung vorschlägt.

        Wenn das nicht erlaubt ist, dann mußt Du Perl schon richtig verstehen, also z. B. begreifen, was ein "require" macht. Das ist dann halt etwas aufwendiger als drei Zeilen INSTALL.

        Auch installierte Perl-Module sind Quelltexte. Du könntest also die Installation dieser Module auf Deinem Linux-Rechner daheim durchführen, die fertigen Module via FTP zum Server übertragen (irgendwohin, beispielsweise auch in Dein CGI-Verzeichnis) und dann ggf. in Deinem CGI-Skript @INC oder die require-Anweisungen entsprechend anpassen (falls nötig).

        Alternative: Einen Provider suchen, der "funktioniert". Der wird dann halt eventuell auch (mehr) Geld kosten. Das Preis-Leistungs-Verhältnis Deiner Arbeitszeit beim Installieren bestimmst Du selbst.

      2. hye (Fragender) Holger :-)

        Ich habe mich wohl falsch ausgedrückt. Grundsätzlich kann ich PERL-Scripte ausführen. Nur benötige ich die Module LWP::UserAgent und HTTP::Request bzw. HTTP::Status, die der Provider nicht zur Verfügung stellt. Es muß doch aber über @INC die Möglichkeit geben, die Module auch in mein CGI-BIN-Verzeichnis zu upzuloaden, oder etwa nicht????

        Eigentlich halte ich mich ja im Forum nur mehr als 'Mitleser' auf. Aber da du noch immer keine Antwort bekommen hast, und ich möglicherweise eine parat habe, will ich dir diese nicht vorenthalten.

        Versuche irgendwo die fertig 'kompillierten' Perl-Module die du brauchst zu bekommen. Dies sollte in der Regel kein Problem sein. Für LWP::UserAgent kannst du im Web zb. nach 'UserAgent.pm' suchen.

        Diese kopierst du in ein 'beliebiges' Verzeichniss auf deinem Server. Wichtig: Das LWP::UserAgent Modul gehört zb. nach /home/irgendwas/dein/verzeichniss/LWP/UserAgent.pm

        In dem Script das die(ses) Module verwendent, gibst du dann
        use lib '/home/irgendwas/dein/verzeichniss'
        an. Und danach den use LWP::UserAgent Befehl.

        Ich hoffe das hilft dir :-)

        mfg
        Bogus

        1. Versuche irgendwo die fertig 'kompillierten' Perl-Module die du brauchst zu bekommen. Dies sollte in der Regel kein Problem sein. Für LWP::UserAgent kannst du im Web zb. nach 'UserAgent.pm' suchen.

          Danke Bogus!
          Das werde ich versuchen, es klingt sehr plausibel ...

          Vielleicht kannst Du mir (also für Perl-Anfänger) ja mal erklären, wo genau der Unterschid zwischen einem installierten Modul und denen im CPAN-Archiv ist. Sie sehen ja zunächst sehr gleich aus.
          Oder kann ich auch die lokalen Module (Windows) für den Unix-Sever benutzen???

          Nochmals vielen Dank!!!

          Holger

          1. Hye

            Vielleicht kannst Du mir (also für Perl-Anfänger) ja mal erklären, wo genau der Unterschid zwischen einem installierten Modul und denen im CPAN-Archiv ist. Sie sehen ja zunächst sehr gleich aus.
            Oder kann ich auch die lokalen Module (Windows) für den Unix-Sever benutzen???

            *rotwerd* :-)
            ich geb zu, so genau hab ich das auch noch nicht geschnallt. ich hab zb. meine lokalen windows module einfach hochgeladen und es hat funktioniert. aber wahrscheinlich gibt es auch module, die auf das system angepasst sein müssen (unterschied win98, winNT, unix zb. mail für NT blat.exe und für unix /usr/sbin/sendmail)....oder was weiss ich. am besten du veruchst es auch mit deinen lokalen modulen. die die du verwenden möchtest müssten eingentlich funktionieren, haben bei mir auch gefunzt :-)

            Nochmals vielen Dank!!!

            man(n) hilft doch gerne

            mfg
            Bogus

          2. Vielleicht kannst Du mir (also für Perl-Anfänger) ja mal erklären, wo genau der Unterschied zwischen einem installierten Modul und denen im CPAN-Archiv ist. Sie sehen ja zunächst sehr gleich aus.

            Der Punkt ist gar nicht, daß etwa die Module unterschiedlich wären - das sind sie normalerweise gar nicht. (Während der Installation ruft das CPAN-Skript aber in Einzelfällen den C-Compiler auf, deshalb möchte ich hier keine absolute Aussage treffen ...)
            Vielmehr liefert CPAN Dir ein Installationsverfahren mit, das eine Reihe von Dingen für Dich erledigt.

            Da wäre als erstes mal, herauszufinden, *wohin* ein Modul installiert werden muß, damit er später ohne Änderung des Quelltextes in einem Skript gefunden werden kann. Dazu gibt es das Makefile.PL-Skript: Das prüft, wo der Perl-Interpreter installiert ist und wo seine Verzeichnisse für solche Module liegen.
            Mit diesen Informationen generiert es dann ein Makefile, welches die richtigen Installationsbefehle enthält.

            Andererseits gibt es zahlreiche Module, welche selbst wiederum Funktionen oder Objekte aus anderen Modulen verwenden. Die CPAN-Routine kennt diese Abhängigkeiten und kann deshalb prüfen, ob alle notwendigen Voraussetzungen erfüllt sind; wenn nicht, dann bekommst Du klare Meldungen, was vorher noch alles zu installieren ist. (LWP::Simple hängt beispielsweise von vier anderen Module ab!)
            Das ist die Funktion von "make".

            Nicht zuletzt könnte auch noch der Perl-Interpreter einen Schuß haben, oder die vorher installierten Module, oder das Betriebssystem oder was auch immer.
            Deshalb führt das CPAN-Installationsverfahren vor dem Installieren noch einen "sanity"-Test durch, d. h. es läßt eine Reihe von Test-Skripten mit Aktionen, für die der Inhalt des gerade zu installierenden Moduls benötigt wird, laufen und prüft die Ergebnisse gegenüber den Ergebnissen, die im "CPAN-Labor" erzielt wurden.
            Das ist die Funktion von "make test".

            Wenn alles übereinstimmt, dann ist die Chance, daß trotzdem irgendwas nicht funktioniert, minimal - und *dann* kann als letzter Schritt der neue Perl-Modul ins site-lib-Verzeichnis von Perl kopiert werden. Nebenbei werden noch ein paar andere Dinge mit kopiert (z. B. man pages oder Dokumentationsdateien in anderen Formaten).
            Das ist die Funktion von "make install".

            Ein Installationsverfahren in dieser hohen Qualität ist m. E. die Voraussetzung dafür, daß Quelltexte auf beliebig vielen Rechnern verschiedener Betriebssysteme verwendbar sind - und das in einer Art und Weise, die im Anwender das Vertrauen hervorruft, daß es auch wirklich funktioniert.
            CPAN leistet in dieser Hinsicht genau das, was für GNU-Software wie Apache oder Emacs das "configure"-Skript tut.

            Oder kann ich auch die lokalen Module (Windows) für den Unix-Server benutzen???

            In den meisten Fällen sollte das gehen, denn es sind ja alles Perl-Quelltexte.
            Du mußt halt nur selbst herausfinden, wie man sie installiert. Und Du kannst Dich nicht darauf verlassen, daß sie funktionieren werden, weil eventuell andere Dinge fehlen, von deren Existenz die Funktionsfähigkeit der Module abhängt - *solche* Fehler später zu finden kann dann etwas tricky sein.

  2. Hi Hoger,

    ob es evtl. daran liegt, das keiner ne AW weiss (ich denke mal, es geht auch nicht)? Die Possibilitaet koennte doch bestehen? Was haellst du davon, dich mal mit deinem Server Admin zu verstaendigen?.

    Sorry das ich dir jetzt etwas ungehalten geantwortet habe, aber heut war nicht gerade nen toller Tag...

    Olli