cpan und fhem - perl doppelt?

Begonnen von bgewehr, 07 Juni 2015, 21:56:22

Vorheriges Thema - Nächstes Thema

bgewehr

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?
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

franky08

#1
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
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

bgewehr

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.
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

franky08

Das sagt dir aber das es Perl nur einmal, in der angezeigten Version auf deinem Host gibt.
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

bgewehr

FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

JoWiemann

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
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

franky08

Den Startscript hat er doch schon im ersten Beitrag gepostet.
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

JoWiemann

Mist  :-\ übersehen.

Grüße Jörg

PS: Jetzt weiß ich auch wofür diese komische Scrollleiste ist ...  :D
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

bgewehr

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!
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

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?
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

justme1968

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 
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

bgewehr

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?
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

justme1968

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.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

bgewehr

FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868