LinHES Forums
http://forum.linhes.org/

How to install JSON::XS module?
http://forum.linhes.org/viewtopic.php?f=25&t=25581
Page 1 of 1

Author:  DoomedTX [ Mon Dec 16, 2019 12:55 pm ]
Post subject:  How to install JSON::XS module?

I've recently tried switching to the SD JSON grabber. Every time I run it I see the following:

Code:
WARNING: Perl module JSON::XS not installed.  JSON encode/decode performance will be poor.
I've been away from linux for a few years, but I thought modules could be installed with CPAN. However, this is what happens when I try to install the module:
Code:
cpan[1]> install JSON::XS
Reading '/home/mythtv/.cpan/Metadata'
  Database was generated on Thu, 12 Dec 2019 13:41:03 GMT
Fetching with LWP:
http://www.cpan.org/authors/01mailrc.txt.gz
Reading '/home/mythtv/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/02packages.details.txt.gz
Reading '/home/mythtv/.cpan/sources/modules/02packages.details.txt.gz'
  Database was generated on Sat, 14 Dec 2019 13:55:11 GMT

Fetching with LWP:
http://www.cpan.org/modules/03modlist.data.gz
Reading '/home/mythtv/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /home/mythtv/.cpan/Metadata
Running install for module 'JSON::XS'
Checksum for /home/mythtv/.cpan/sources/authors/id/M/ML/MLEHMANN/JSON-XS-4.02.tar.gz ok
Scanning cache /home/mythtv/.cpan/build for sizes
............................................................................DONE
'YAML' not installed, will not store persistent state
---- Unsatisfied dependencies detected during ----
----       MLEHMANN/JSON-XS-4.02.tar.gz       ----
    Canary::Stability [build_requires]
Running install for module 'Canary::Stability'
Checksum for /home/mythtv/.cpan/sources/authors/id/M/ML/MLEHMANN/Canary-Stability-2013.tar.gz ok
Configuring M/ML/MLEHMANN/Canary-Stability-2013.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Canary::Stability
Writing MYMETA.yml and MYMETA.json
  MLEHMANN/Canary-Stability-2013.tar.gz
  /usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for M/ML/MLEHMANN/Canary-Stability-2013.tar.gz
Can't exec "make": No such file or directory at /usr/share/perl5/core_perl/CPAN/Distribution.pm line 2213.
  MLEHMANN/Canary-Stability-2013.tar.gz
  make -- NOT OK
  No such file or directory
  MLEHMANN/JSON-XS-4.02.tar.gz
  Has already been unwrapped into directory /home/mythtv/.cpan/build/JSON-XS-4.02-1
Warning: Prerequisite 'Canary::Stability => 0' for 'MLEHMANN/JSON-XS-4.02.tar.gz' failed when processing 'MLEHMANN/Canary-Stability-2013.tar.gz' with 'make => NO'. Continuing, but chances to succeed are limited.
Configuring M/ML/MLEHMANN/JSON-XS-4.02.tar.gz with Makefile.PL
Can't locate Canary/Stability.pm in @INC (you may need to install the Canary::Stability module) (@INC contains: /usr/lib/perl5/5.26/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/5.26/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/5.26/core_perl /usr/share/perl5/core_perl .) at Makefile.PL line 4.
BEGIN failed--compilation aborted at Makefile.PL line 4.
Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
  MLEHMANN/JSON-XS-4.02.tar.gz
  /usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK
Failed during this command:
 MLEHMANN/Canary-Stability-2013.tar.gz        : make NO
 MLEHMANN/JSON-XS-4.02.tar.gz                 : writemakefile NO '/usr/bin/perl Makefile.PL INSTALLDIRS=site' returned status 512
Can someone point me in the right direction to install this module? If I'm going to be using the JSON grabber, and I think soon we all are, then I'd rather not have "poor" performance every day.

Author:  welner [ Mon Dec 16, 2019 4:39 pm ]
Post subject:  Re: How to install JSON::XS module?

i'm no perl expert, but i poked around a little and it seems like JSON:XS may be provided by the pacman package

Code:
core/perl-list-moreutils-xs


i have this package on my system, and i am not seeing the error you are getting

the contents of the package:

Code:
 find . -ls
8631684566        0 drwx------    6 welner           staff                 192 Dec 16 17:26 .
8631684570        0 drwxr-xr-x    4 welner           staff                 128 May 30  2018 ./usr
8631684571        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/lib
8631684576        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/lib/perl5
8631684577        0 drwxr-xr-x    4 welner           staff                 128 May 30  2018 ./usr/lib/perl5/5.26
8631684579        0 drwxr-xr-x    2 welner           staff                  64 May 30  2018 ./usr/lib/perl5/5.26/core_perl
8631684578        0 drwxr-xr-x    4 welner           staff                 128 May 30  2018 ./usr/lib/perl5/5.26/vendor_perl
8631684581        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/lib/perl5/5.26/vendor_perl/auto
8631684582        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/lib/perl5/5.26/vendor_perl/auto/List
8631684583        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/lib/perl5/5.26/vendor_perl/auto/List/MoreUtils
8631684584        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/lib/perl5/5.26/vendor_perl/auto/List/MoreUtils/XS
8631684585      248 -r-xr-xr-x    1 welner           staff              125176 May 30  2018 ./usr/lib/perl5/5.26/vendor_perl/auto/List/MoreUtils/XS/XS.so
8631684580        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/lib/perl5/5.26/vendor_perl/List
8631684586        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/lib/perl5/5.26/vendor_perl/List/MoreUtils
8631684587        8 -r--r--r--    1 welner           staff                3347 Dec 18  2017 ./usr/lib/perl5/5.26/vendor_perl/List/MoreUtils/XS.pm
8631684572        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/share
8631684573        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/share/man
8631684574        0 drwxr-xr-x    3 welner           staff                  96 May 30  2018 ./usr/share/man/man3
8631684575        8 -r--r--r--    1 welner           staff                2190 May 30  2018 ./usr/share/man/man3/List::MoreUtils::XS.3pm.gz
8631684568       16 -rw-r--r--    1 welner           staff                6426 May 30  2018 ./.BUILDINFO
8631684569        8 -rw-r--r--    1 welner           staff                 696 May 30  2018 ./.MTREE
8631684567        8 -rw-r--r--    1 welner           staff                 418 May 30  2018 ./.PKGINFO
macbookether:perl-list-moreutils-xs-0.428-1-x86_64.pkg

Author:  DoomedTX [ Tue Dec 17, 2019 9:24 am ]
Post subject:  Re: How to install JSON::XS module?

Thanks for the reply. I have that same package on my system but still receive the error
Code:
WARNING: Perl module JSON::XS not installed.  JSON encode/decode performance will be poor.
I tried reinstalling the perl-list-moreutils-xs package again, but that didn't help. It's a minor issue I guess I'll get around to later.

Author:  knappster [ Tue Dec 17, 2019 7:21 pm ]
Post subject:  Re: How to install JSON::XS module?

Where are you seeing the warning? Are you running something from the command line or seeing it in the logs?

Author:  DoomedTX [ Wed Dec 18, 2019 8:35 am ]
Post subject:  Re: How to install JSON::XS module?

knappster wrote:
Where are you seeing the warning? Are you running something from the command line or seeing it in the logs?

I've been troubleshooting the JSON grabber and see it in the terminal when I manually run the grabber command. It's not a huge deal, but since the whole mythfilldatabase process is already long and memory-intensive, I wanted to see if improving the JSON performance improved grabbing at all.

Author:  knappster [ Wed Dec 18, 2019 8:33 pm ]
Post subject:  Re: How to install JSON::XS module?

I guess I'm not sure that I know how to run the json grabber manually. Maybe you and I are even talking about different things. I believe that mythfilldatabase is still responsible for filling my database, but it is using the tv_grab_zz_sdjson_sqlite from here setup with these instructions:
https://www.mythtv.org/wiki/XMLTV#Sched ... t_Grabbers

I am tuning with antenna, so I don't think I need a lot of efficiency, but I don't see any warnings in my mythfilldatabase log, either.

Author:  DoomedTX [ Thu Dec 19, 2019 1:06 pm ]
Post subject:  Re: How to install JSON::XS module?

knappster wrote:
I guess I'm not sure that I know how to run the json grabber manually.


I think we're talking about the same thing. The grabber is run during the instructions you linked with
Code:
tv_grab_zz_sdjson_sqlite --days 0 --config-file $HOME/.mythtv/SD.xmltv
It can also be run without any command line arguments, in which case it will grab the max number of days available. When mythfilldatabase calls it, either there is no log for the grabber itself, or it is going somewhere I haven't found yet. That's why there's nothing in any of the normal logs.

Author:  knappster [ Fri Dec 20, 2019 6:07 am ]
Post subject:  Re: How to install JSON::XS module?

Got it. If it makes you feel any better, I get the same warning if I run that command. I only have 18 channels in my database, though, so I'm not sure how valuable a speedup would be on my system. How comfortable are you with building packages in Arch? It looks like this is contained in perl-json-xs:
https://www.archlinux.org/packages/comm ... l-json-xs/

You could request an addition to the repository instead so that you do not taint your system with self-built packages (it's burned me a few times in the past...)

Author:  DoomedTX [ Fri Dec 20, 2019 2:41 pm ]
Post subject:  Re: How to install JSON::XS module?

knappster wrote:
Got it. If it makes you feel any better, I get the same warning if I run that command. I only have 18 channels in my database, though, so I'm not sure how valuable a speedup would be on my system. How comfortable are you with building packages in Arch? It looks like this is contained in perl-json-xs:
https://www.archlinux.org/packages/comm ... l-json-xs/

You could request an addition to the repository instead so that you do not taint your system with self-built packages (it's burned me a few times in the past...)
Thanks. I'm not sure it's worth taking the risk that I mess up the system. My 361 channels take almost 2 hours to fully process. Mythfilldatabase reports complete on the Backend Status page within 15 minutes, but the program runs much longer. I was hoping to speed it up a bit, but I'm not convinced this is the best way to do that. I'd probably be better off weeding out the QVC-type and foreign-language channels that I will never be tempted to watch or record.

Author:  knappster [ Sat Dec 21, 2019 5:55 am ]
Post subject:  Re: How to install JSON::XS module?

Hmmm... I'm not sure how it scales, but my 18 channels takes 4 minutes and it runs 3 times. I think I've got it misconfigured because I have 3 antennas and I thought I'd have to setup a different xml file for each, but I think it's ultimately downloading the same data 3 times and I had to manually delete the unused channels from each source in the backend to achieve what I wanted. Again, for my limited channels it's not a huge performance hit so I just didn't want to mess with it.

Sorry to digress. What I was getting at is that even if it was 4 minutes for 18 channels, it would still trend to 80 minutes for 361 channels. If I'm correct about my inefficiencies, then it would be less than 30 minutes. Are you monitoring the runtime through top, logs, or another method? The information I reported is from my mythfilldatabase log.

The daily task that tends to run the longest for me is myth_mtc. It runs database optimization and data backup and can eat up some resources during this time. Still, it only looks like it takes about 20 minutes to complete and it is terrific to have the automatic backups that it provides, even though I hope to never need them!

Author:  welner [ Sat Dec 21, 2019 11:44 am ]
Post subject:  Re: How to install JSON::XS module?

i incorrectly stated in a previous post that i was not seeing this error. as i have been following along with the replies, and the commands in question have come out, i see that running 'mythfilldatbase' does not show the error message. if i run:

Code:
tv_grab_zz_sdjson_sqlite --days 0 --config-file /home/mythtv/.mythtv/hdhr0.xmltv


i do indeed see the error that doomedtx is seeing

with 20 channels, it takes less than a second for the above command to complete execution, and mythtfilldatabase takes about 3 minutes to run. i also have a similar configuration as knappster with unique xmltv files for each of the 4 tuners in my hdhomerun tuner. don't know if it is correct or not, but that's what i ended up with after crossing over to the json grabber, and it works well enough.

this caused me to revisit some perl stuff i tried doing several years ago. i attempted to get the logitech media server running on my mythtvbox. i encountered many headaches with perl modules and dependencies. that experience taught me to stay away from modifying perl on mythtv. i ended up building a totally separate perl installation just for the logitech media server to use.

Author:  DoomedTX [ Mon Dec 23, 2019 11:21 pm ]
Post subject:  Re: How to install JSON::XS module?

knappster wrote:
Are you monitoring the runtime through top, logs, or another method?


I've been keeping a terminal open with top running to see what was going on. The Backend status page on mythweb reports that mythfilldatabase completed in about 15 minutes, but in top I can see that mythfilldatabase runs for closer to 90 minutes. The load on the machine stays very high during this time. I really only noticed because I was having troubles with the grabber initially, and I was trying to eliminate anything that might have been causing the problem. The grabber seems to be functioning normally, so I'm going to leave it alone and try not to look at the status too much while it's running.

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/