FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: bgewehr am 07 Juni 2015, 21:56:22

Titel: cpan und fhem - perl doppelt?
Beitrag von: bgewehr am 07 Juni 2015, 21:56:22
Verständnisfrage:

Wenn ich mit cpan perl module installiere, kommen diese dann automatisch auch fhem zu gute oder hat fhem sein eigenes perl innerhalb der Verzeichnisstruktur?

Ich habe hier einen merkwürdigen Zustand, in dem MQTT devices sich nur definieren lassen, wenn ich perl fhem.pl fhem.cfg per hand starte. Starte ich per init-script, dann kommt error loading module MQTT.

hier der Inhalt des init.scripts:


pi@raspberrypi ~ $ cat /etc/init.d/fhem
#!/bin/sh
# description: Start or stop the fhem server
# Added by Alex Peuchert

### BEGIN INIT INFO
# Provides:             fhem.pl
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    FHEM server
### END INIT INFO

set -e
cd /opt/fhem
port=7072

if test "$2" != "noaptmark"; then
  apt-mark hold fhem > /dev/null
fi

case "$1" in
'start')

        echo "Starting fhem..."

# if you need to start hmland for use with
# Homematic, please start the hmland daemon
# like this (please use correct path and port,
# depending on your installation!)
#
#       /opt/hmcfgusb/hmland -d -p 1234 -r 0
#

        perl fhem.pl fhem.cfg

# if you want to use configDB for configuration,
# use this command to start fhem:
#
#       perl fhem.pl configDB
#
# and remove/comment the above line including fhem.cfg

        RETVAL=$?
        ;;
'stop')
        echo "Stopping fhem..."

# if you want to stop hmland during fhem stop:
#       pkill hmland

        pkill -U fhem perl
        RETVAL=$?
        ;;
'status')
        cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l`
        if [ "$cnt" -eq "0" ] ; then
                echo "fhem is not running"
        else
                echo "fhem is running"
        fi
        ;;
*)
        echo "Usage: $0 { start | stop | status }"
        RETVAL=1
        ;;
esac
exit $RETVAL



So kam ich auf die Frage, ob ich vielleicht zwei perl im System habe und nur in dem einen die Module richtig sind.

Was meint Ihr?
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: franky08 am 07 Juni 2015, 22:10:58
ZitatSo kam ich auf die Frage, ob ich vielleicht zwei perl im System habe und nur in dem einen die Module richtig sind.

gib auf deinem System doch mal perl -v ein, die Ausgabe sagt alles :-)
Oder wenn du mehr wissen willst perl -V

VG
Frank
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: bgewehr am 07 Juni 2015, 22:13:57
Ich verstehe aber noch nicht ganz, wie mir das hilft:

root@fhem:~# perl -v

This is perl 5, version 20, subversion 0 (v5.20.0) built for armv7l-linux

Copyright 1987-2014, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: franky08 am 07 Juni 2015, 22:15:15
Das sagt dir aber das es Perl nur einmal, in der angezeigten Version auf deinem Host gibt.
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: bgewehr am 07 Juni 2015, 22:15:54
Ah, OK! Danke!
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: JoWiemann am 07 Juni 2015, 22:17:32
Hallo,

CPAN ist ein Repository für Perl-Module. Weitere Erläuterungen findest Du mit googeln. Bitte poste doch mal Dein Fhem Startrscript.

Grüße Jörg
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: franky08 am 07 Juni 2015, 22:20:40
Den Startscript hat er doch schon im ersten Beitrag gepostet.
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: JoWiemann am 07 Juni 2015, 22:27:08
Mist  :-\ übersehen.

Grüße Jörg

PS: Jetzt weiß ich auch wofür diese komische Scrollleiste ist ...  :D
Titel: cpan und fhem - perl doppelt?
Beitrag von: bgewehr am 09 Juni 2015, 06:38:41
Ich habe die Lösung gefunden: in /usr/local/lib gab es perl5 und perl, eine Version 5.14 von irgendwann. Im @inc war diese aber auch drin, daher die Verwirrung. Ordner gelöscht, Perl sauber - läuft!
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: bgewehr am 17 Juni 2015, 06:47:14
Also man kann ja auf einem System mehrere Perl Versionen betreiben. Wie installiert man dann mit Cpan neue Module? Hat Cpan so einen Ausgabe-Parameter, um das Perl zu wählen, für das man das Modul braucht?
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: justme1968 am 17 Juni 2015, 08:35:29
in dem du jeweils das cpan tool verwendest das zu der entsprechenden perl version gehört.

das cpan tool ist selber in perl geschrieben und holt sich pfade und umgebung aus dem perl mit dem es gestartet wird. 

es macht aber auf normalen plattformen keinen sinn mehrte Perl versionen nebeneinander zu betreiben.

eine ausnahme sind eventuell die synology nas systeme bei denen das system perl eingeschränkt ist und beim update ungefragt eigene änderungen überschreibt.

eine zweite ausnahme sind eventuell entwicklersysteme die das verhalten unter älteren perl versionen testen wollen.

gruß
  andre 
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: bgewehr am 17 Juni 2015, 14:19:14
Langsam gehen mir die Lichter auf, vielen Dank! Wie ist es mit der debian Standardkonfiguration? Da ist doch auch ein Perl enthalten, richtig? Ist es nun ratsam sein fhem mit einem eigenen perl (in /opt/fhem oder in /usr/local/lib) zu betreiben oder kann man getrost das System-Perl nehmen?
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: justme1968 am 17 Juni 2015, 14:31:53
ich denke auf normalen systemen kannst du das mit gelieferte perl verwenden und erst dann etwas selber machen wenn es damit unlösbare probleme gibt.
Titel: Antw:cpan und fhem - perl doppelt?
Beitrag von: bgewehr am 22 Juni 2015, 22:26:48
Ok, danke!