View Full Version : [Howto] update perl modules bundled with LMS

2017-02-27, 11:47
A number of the perl modules (and their dependencies) bundled with LMS haven't been updated for some time. As I needed to rebuild my LMS installation, I decided to upgrade these to the latest available versions. Since this seems to have worked out pretty well (so far ;-), here are some notes on this topic.

Stability, performance and security improvements in the new versions of the perl modules and support libraries
(not tested) may compile on architectures not yet supported by official version

May introduce new bugs (interaction between new modules and LMS, unexpected side effects etc.)

Other notes
Only rudimentarily tested on Linux x64 / perl 5.24 (i.e. has been running for a couple of days without any obvious errors)
Older perl versions (<5.22) most likely won't work
Not all libraries have been updated (notably ffmpeg, which is only used for videos)
Can be easily combined with Opus support (http://forums.slimdevices.com/showthread.php?107011-Howto-play-Ogg-Opus-files)

Make sure your build environment is set up (gcc, nasm, -dev packages for Debian/Ubuntu etc.)
Create a folder somewhere
Unzip the attachment into it
Download all required sources. There is a file included (CPANsources.txt) containing the URLs, so simply do

wget -v -nc -i CPANsources.txt

Execute the build script

chmod +x buildme.sh
./buildme.sh &> build.log

(Note: if you want to use a non-standard perl, you can tell buildme.sh like this:

PERL_524=/opt/perl-5.24-LMS/bin/perl5.24.0 ../buildme.sh &> build.log

Check build.log for errors.
If the build was successful, you'll find the perl modules in

./build/arch/<perl version>/<architecture>

e.g. for perl 5.24 on Linux 64bit:


copy the build/arch directory to your LMS installation's CPAN folder
e.g. if your LMS is in opt/logitechmediaserver-7.8-0-noCPAN, the full final path will be


Finally, edit your modules.conf

Audio::Scan 0.93 0.96

2017-03-07, 02:44
Thanks for posting this. I recently got in a mess trying build a self-contained LMS on devuan after finding the standard DEB file refused to install. Mismatch between perl modules and binaries and finally an out of date perl module. Resorted to an earlier branch to get LMS built. Clearly, I didn't understand the problem/solution.