use lib '.'; in fhem.pl

Begonnen von jw2013, 08 Dezember 2025, 18:52:53

Vorheriges Thema - Nächstes Thema

jw2013

Hi,

es wäre schön, wenn die o.g. Zeile aus fhem.pl entfernt werden könnte.

Für Installationen, bei denen "attr global modpath ." gesetzt ist, wird '.' ja korrekterweise als Pfad in @INC mit aufgenommen.

Ansonsten ist es problematisch und führt abhängig vom Init-System (OpenWRT in diesem Fall) und den Verzeichnis-Rechten sogar zu Fehlern. Wenn Perl z.B. nicht als root ausgeführt wird, bricht der Interpreter die Suche nach Modulen nach dem ersten "Permission denied" ab, und sucht nicht in /usr/lib/perl5/5.40/ weiter, wo das Modul zu finden wäre.

2025.12.08 17:04:09 5: Cmd: >define FHEMWEB FHEMWEB 8083 global<
2025.12.08 17:04:09 5: Loading /usr/lib/fhem/FHEM/01_FHEMWEB.pm
2025.12.08 17:04:09 1: reload: Error:Modul 01_FHEMWEB deactivated:
 Can't locate MIME/Base64.pm:   ./MIME/Base64.pm: Permission denied at /usr/lib/fhem/FHEM/HttpUtils.pm line %, <$fh> line 1.
BEGIN failed--compilation aborted at /usr/lib/fhem/FHEM/HttpUtils.pm line %, <$fh> line 1.
Compilation failed in require at /usr/lib/fhem/FHEM/01_FHEMWEB.pm line %, <$fh> line 1.
BEGIN failed--compilation aborted at /usr/lib/fhem/FHEM/01_FHEMWEB.pm line %, <$fh> line 1.

2025.12.08 17:04:09 0: Can't locate MIME/Base64.pm:   ./MIME/Base64.pm: Permission denied at /usr/lib/fhem/FHEM/HttpUtils.pm line %, <$fh> line 1.
BEGIN failed--compilation aborted at /usr/lib/fhem/FHEM/HttpUtils.pm line %, <$fh> line 1.
Compilation failed in require at /usr/lib/fhem/FHEM/01_FHEMWEB.pm line %, <$fh> line 1.
BEGIN failed--compilation aborted at /usr/lib/fhem/FHEM/01_FHEMWEB.pm line %, <$fh> line 1.

2025.12.08 17:04:09 5: /etc/config/fhem/mod.cfg.d/01_fhemweb.cfg line 1 returned >Cannot load module FHEMWEB<
2025.12.08 17:04:09 5: Cmd: >attr FHEMWEB group System<
2025.12.08 17:04:09 5: /etc/config/fhem/mod.cfg line 1 returned >Cannot load module FHEMWEB<

Ohne die eine Zeile in fhem.pl funktioniert alles auch z.B. als Benutzer "fhem".
Wer nicht mit der Zeit geht, geht mit der Zeit