Installing the Perl module IO::Socket::SSL on NSA325v2 NAS
Frik
Posts: 16
I'm trying to install the Perl module IO::Socket::SSL on my Zyxel NSA325v2. Reason for this: the Logitech Media Server running on my NAS requires this, otherwise the Spotty Spotify plugin doesn't work. When trying to configure the Spotty plugin, I'm getting the following error :
"Spotty requires the Perl module IO::Socket::SSL. You can NOT use Spotty without this module. Please use your operating system's package manager to install it."
So... I performed the following steps on my NAS in order to try and solve the problem:1. Install Entware-ng software repo on my NAS. I used the web interface for the NSA325v2 to do this. Version is : 20181002zypkg006.
2. Install gcc using opkg package manager : see: https://github.com/Entware/Entware-ng/wiki/Using-gcc-(native-compilation)
3. I then installed openssl libraries using :
opkg install libopenssl and
opkg install openssl (not sure if this was needed, but I got some errors wrt the openssl libraries when I installed the perl modules later on)
4. I then downloaded the following 2 perl modules from cpan, and installed them manually : Net-SSLeay-1.90.tar.gz and IO-Socket-SSL-2.072.tar.gz . I installed them on the NAS using the following commands (I installed it manually, so I did not use CPAN) :perl Makefile.PL
make
make install
I did not get any error messages during installation. I also ran the tests.
5. I restarted the NAS, just to be sure.
However, when going to the web interface of the Logitech Media Server, I still see this error when trying to configure the Spotty plugin : "Spotty requires the Perl module IO::Socket::SSL. You can NOT use Spotty without this module. Please use your operating system's package manager to install it."
I checked that I installed the 2 modules :
opkg list-installed | grep -i socket gives :
perlbase-socket - 5.26.1-2
opkg list-installed | grep -i ssl gives :
libopenssl - 1.0.2n-1 and openssl-util - 1.0.2n-1
opkg list-installed | grep -i io gives : perlbase-io - 5.26.1-2, perlbase-meta-notation - 5.26.1-2, perlbase-perlio - 5.26.1-2 and perlbase-version - 5.26.1-2Is there another way to verify that the 2 perl modules (Net-SSLeay-1.90.tar.gz and IO-Socket-SSL-2.072.tar.gz) were installed correctly?
I know that Net-SSLeay needs some openssl libraries, I was able to install it without any errors after installing the openssl libraries using opkg. What else do I need to check? Perhaps the version of openssl is wrong? Any help is greatly appreciated !
(Edit) Here is some additional information from the Logitech Media server log, when starting it up :
[21-09-12 14:17:24.0412] main::init (354) Starting Logitech Media Server (v7.7.1, r33735, Mon Nov 28 16:49:58 MST 2011) perl 5.010000 [21-09-12 14:17:33.3620] main::changeEffectiveUserAndGroup (967) Warning: Logitech Media Server must not be run as root! Trying user nobody instead. [21-09-12 14:17:38.8106] Slim::Utils::Misc::msg (1305) Warning: [14:17:38.8088] Async::HTTP: Unable to load IO::Socket::SSL, will try connecting to SSL servers in non-SSL mode [21-09-12 14:17:38.8124] Plugins::Spotty::Plugin::initPlugin (43) Spotty requires the Perl module IO::Socket::SSL. You can NOT use Spotty without this module. Please use your operating system's package manager to install it. [21-09-12 14:17:38.8574] Plugins::Spotty::Plugin::initPlugin (119) Please update to Logitech Media Server 7.9.1 if you want to use seeking in Spotify tracks.
So it really looks like it's unable to load the Perl modules....
0
All Replies
-
That Logitech server, is that the ZyXEL provided one? In that case it can't use Entware-ng perl, as it won't search /opt for binaries.*Maybe* it works if you start the Logitech server from a shell which has the /opt directories in PATH.That should be something like/i-data/md0/.system/zy-pkgs/etc/init.d/Logitech.sh startupIf that works, it should be possible to edit that startscript to include /opt/bin/ in the PATH.
0 -
Hi Mijzelf, I've tried your suggestion, but I cannot find the file Logitech.sh. I have found:/i-data/47d31d36/.system/zy-pkgs/etc/init.d/SqueezCenterIt looks like an executable and starts with the following:#!/bin/sh
export LANG=en_US.UTF-8
DB_CHECKER=/usr/local/zy-pkgs/bin/squeezecenter_dbchecker
SHARE_UPDATER=/usr/local/zy-pkgs/bin/squeezecenter_updater
LIBRARY_PATH=/usr/local/zy-pkgs/lib:/usr/local/zy-pkgs/mysql/lib/mysql
PERL_LIBRARY_PATH=/usr/local/zy-pkgs/lib/perl5
PERL_PATH=/usr/local/zy-pkgs/bin/perl
PORTNUMBER=9000
SERVER_PATH=/usr/local/zy-pkgs/gui/SqueezeCenter
AUDIO_PLAYLIST_FOLDER=/i-data/md0/.media/squeezecenter
CONFIG_FOLDER=/usr/local/zy-pkgs/config/SqueezeCenter
CONFIG_FILE=${CONFIG_FOLDER}/SqueezeCenter
PROTOCOL_FILE=/usr/local/zy-pkgs/etc/protocols
EXECFILENAME=slimserver.pl
NICE_VALUE="20"Is it possible to change this file? Stupid question, but the extension is not .sh, can I run it from the command line?
0 -
Yes, you can edit that file. It looks like changing the PERL_LIBRARY_PATH and PERL_PATH to the Entware perl version might do the trick.Linux doesn't care about file extensions. A file is executable when the executable flag is set (the 'x' when you execute 'ls -l'). An executable text file should have a she-bang (first line starting with #!) to specify which script engine to use.0
Categories
- All Categories
- 415 Beta Program
- 2.4K Nebula
- 148 Nebula Ideas
- 96 Nebula Status and Incidents
- 5.7K Security
- 262 USG FLEX H Series
- 271 Security Ideas
- 1.4K Switch
- 74 Switch Ideas
- 1.1K Wireless
- 40 Wireless Ideas
- 6.4K Consumer Product
- 249 Service & License
- 387 News and Release
- 84 Security Advisories
- 29 Education Center
- 10 [Campaign] Zyxel Network Detective
- 3.5K FAQ
- 34 Documents
- 34 Nebula Monthly Express
- 85 About Community
- 73 Security Highlight