FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Darkrabbit am 15 September 2020, 17:51:41

Titel: Can't locate JSON/Parse.pm
Beitrag von: Darkrabbit am 15 September 2020, 17:51:41
Hallo zusammen,

nachdem ich nun den halben Tag nach einer Lösung gesucht habe, versuche ich es mal hier bei den Experten  ;D

Bekomme beim Einbinden folgenden Moduls diesen Fehler:

2020.09.15 17:34:49 1: reload: Error:Modul 99_myBMWUtilsPersonal deactivated:
Can't locate JSON/Parse.pm in @INC (you may need to install the JSON::Parse module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at ./FHEM/99_myBMWUtilsPersonal.pm line 17.
BEGIN failed--compilation aborted at ./FHEM/99_myBMWUtilsPersonal.pm line 17.


Wie es da schon steht, soll man JSON installieren.
Dies habe ich jedoch nach diversen Anleitungen im Netz getan und es ist up-to-date:

JSON::Parse is up to date. (0.57)

Hat noch irgendjemand eine Idee?


Titel: Antw:Can't locate JSON/Parse.pm
Beitrag von: Christoph Morrison am 15 September 2020, 18:04:19
Was sagt
perl --version
?

Was sagt
perl -e "print qq(@INC)"
?

Natürlich auf dem System, auf dem du auch die FHEM-Installation laufen hast.
Titel: Antw:Can't locate JSON/Parse.pm
Beitrag von: rudolfkoenig am 15 September 2020, 18:32:11
Oder auch: es sind vermutlich 2 perl Versionen installiert, die eine hat JSON::Parse, die andere wird fuer FHEM verwendet.
Titel: Antw:Can't locate JSON/Parse.pm
Beitrag von: Christoph Morrison am 15 September 2020, 18:44:07
Zitat von: rudolfkoenig am 15 September 2020, 18:32:11
Oder auch: es sind vermutlich 2 perl Versionen installiert, die eine hat JSON::Parse, die andere wird fuer FHEM verwendet.

Genau das vermute ich auch.
Titel: Antw:Can't locate JSON/Parse.pm
Beitrag von: Darkrabbit am 15 September 2020, 18:55:33
perl --version

This is perl 5, version 28, subversion 1 (v5.28.1) built for arm-linux-gnueabihf-thread-multi-64int


perl -e "print qq(@INC)"

/home/pi/perl5/lib/perl5/5.28.1/arm-linux-gnueabihf-thread-multi-64int /home/pi/perl5/lib/perl5/5.28.1 /home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int /home/pi/perl5/lib/perl5 /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /home/pi/perl5/lib/perl5/5.28.0 /home/pi/perl5/lib/perl5/5.28.0/arm-linux-gnueabihf-thread-multi-64int /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base



Bzgl. der zwei Versionen: Wie stelle ich es korrekt ein, so dass ich auch auf JSON:Parse zugreifen kann? Also kann ich in der Perl-Version für FHEM das noch installieren? Oder kann ich FHEM sagen, dass ich die anderen Perl-Version nutzen will?
Titel: Antw:Can't locate JSON/Parse.pm
Beitrag von: Christoph Morrison am 15 September 2020, 20:58:19
Zitat/home/pi/perl5/lib/perl5/5.28.1/arm-linux-gnueabihf-thread-multi-64int /home/pi/perl5/lib/perl5/5.28.1 /home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int /home/pi/perl5/lib/perl5

Also die kommen auf meinen Pi nicht vor. Poste mal bitte den Output von:
export

(Das ist ein Shell-Befehl, also wirklich nur export).

Und bitte den Output von
find /home/pi/perl5 -iname '*json*'
Titel: Antw:Can't locate JSON/Parse.pm
Beitrag von: Darkrabbit am 15 September 2020, 21:05:33
export

declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
declare -x HOME="/home/pi"
declare -x LANG="de_DE.UTF-8"
declare -x LANGUAGE="de_DE.UTF-8"
declare -x LC_ALL="de_DE.UTF-8"
declare -x LOGNAME="pi"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd                                                                                                                                                                                                                                             =40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=3                                                                                                                                                                                                                                             4;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;                                                                                                                                                                                                                                             31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tz                                                                                                                                                                                                                                             o=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz                                                                                                                                                                                                                                             =01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.                                                                                                                                                                                                                                             tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;3                                                                                                                                                                                                                                             1:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio                                                                                                                                                                                                                                             =01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.e                                                                                                                                                                                                                                             sd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=0                                                                                                                                                                                                                                             1;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.t                                                                                                                                                                                                                                             if=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;                                                                                                                                                                                                                                             35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.o                                                                                                                                                                                                                                             gm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35                                                                                                                                                                                                                                             :*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=0                                                                                                                                                                                                                                             1;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm                                                                                                                                                                                                                                             =01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*                                                                                                                                                                                                                                             .m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00                                                                                                                                                                                                                                             ;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:"
declare -x MAIL="/var/mail/pi"
declare -x NO_AT_BRIDGE="1"
declare -x OLDPWD
declare -x PATH="/home/pi/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/us                                                                                                                                                                                                                                             r/bin:/sbin:/bin:/usr/local/games:/usr/games"
declare -x PERL5LIB="/home/pi/perl5/lib/perl5"
declare -x PERL_LOCAL_LIB_ROOT="/home/pi/perl5"
declare -x PERL_MB_OPT="--install_base \"/home/pi/perl5\""
declare -x PERL_MM_OPT="INSTALL_BASE=/home/pi/perl5"
declare -x PWD="/home/pi"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="192.168.1.184 57258 22"
declare -x SSH_CONNECTION="192.168.1.184 57258 192.168.1.34 22"
declare -x SSH_TTY="/dev/pts/1"
declare -x TERM="xterm"
declare -x TEXTDOMAIN="Linux-PAM"
declare -x USER="pi"
declare -x XDG_RUNTIME_DIR="/run/user/1000"
declare -x XDG_SESSION_CLASS="user"
declare -x XDG_SESSION_ID="c6"
declare -x XDG_SESSION_TYPE="tty"


find /home/pi/lib/perl5 -iname '*json*':

find: '/home/pi/lib/perl5': Datei oder Verzeichnis nicht gefunden


???
Titel: Antw:Can't locate JSON/Parse.pm
Beitrag von: Darkrabbit am 15 September 2020, 21:09:33
Noch als Ergänzung:

find /home/pi/perl5 -iname '*json* (ohne /lib/)


/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/auto/JSON
/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/.meta/App-cpanminus-1.7044/MYMETA.json
/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/.meta/App-cpanminus-1.7044/install.json
/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/JSON
/home/pi/perl5/bin/validjson
/home/pi/perl5/man/man3/JSON::Tokenize.3pm
/home/pi/perl5/man/man3/JSON::Parse.3pm

Titel: Antw:Can't locate JSON/Parse.pm
Beitrag von: Christoph Morrison am 15 September 2020, 21:28:57
Ah ja, da hast du dein Problem:
declare -x PERL5LIB="/home/pi/perl5/lib/perl5"

hat dafür gesorgt, dass Perl das JSON::Parse wohl nach
/home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/JSON

installiert hat. Der User fhem kennt aber dieses Verzeichnis nicht, also kann er JSON::Parse auch nicht finden.

Erstmal solltest du klären, warum es diese Environment-Variable überhaupt gibt. Dann kannst du entscheiden wie du weiter vorgehst. Vermutlich wirst du die Variable entfernen und JSON::Parse neu installieren müssen.

Vielleicht solltest du dann gleich auf JSON::MaybeXS umsteigen. Für die Installation solltest du cpan-minus (cpanm) benutzen.
Titel: Antw:Can't locate JSON/Parse.pm
Beitrag von: Darkrabbit am 15 September 2020, 21:34:08
Danke erstmal für die Analyse  :)

Würde ich dann einfach mal machen, hab noch ein Backup zur Not  8)
Dann werde ich ja sehen ob irgendwas nicht mehr läuft und kann zur Not zurück und nochmal neu entscheiden.

Aber das ist ein Bereich in dem ich mich echt wenig auskenne, daher die Frage:

Wie kann ich die Variable ändern / löschen?
Wie lautet der genaue Befehl zum installieren von JSON::Parse?

Kann ich dem User fhem nicht auch einfach das Verzeichnis /home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi-64int/JSON irgendwie beibringen? Weil dort ist die parse.pm ja schon drin  ???

Danke schon mal...
Titel: Antw:Can't locate JSON/Parse.pm
Beitrag von: Darkrabbit am 16 September 2020, 08:04:12
Hab´s hinbekommen:

Variablen aus .bashrc entfernt. Anschließend alles zum Thema Perl/JSON/Parse neu installiert.

Läuft jetzt! Danke! :)