Installing libio-socket-ssl-perl?

I’m trying to get the Logitech Media Server RockOn to run on my NAS.

Well actually I’m trying to get the Spotty plugin (for Spotify) to run, the media server is running fine.

It installs allright, but wont work, throws an error that it needs IO::Socket::SSL.

From reading the support threads its clear that I need to install libio-socket-ssl-perl.

How do I do that? I get this response “No package libio-socket-ssl-perl available.”, when issuing “yum install libio-socket-ssl-perl”.

I’m hoping that I can get this to work. This would enable me to shut down my Logitech Media Server PC (actuallly an old laptop), that only runs because I have been unable to get older Spotify plugins working under Rockstor.

Anybody? :slight_smile:

It must be a case of enabling Rockstor to use the Centos repository or something like that.

@KarstenV

If the libio-socket-ssl-perl requirement is from the Media Server then wouldn’t it have to be installed within the docker container that the media server runs in. Ie you may have to open a shell to that container and install the required package in there. I may have this all wrong as not familiar with either “libio-socket-ssl-perl” (that may be a debian based package name by the way) or the Logitech Media Server.

Hope that helps.

By the way Rockstor comes configured with the standard CenOS repos, look inside /etc/yum.repos.d for whats enabled. And there is a package available going by the name “perl-IO-Socket-SSL.noarch” however that is of course in the host where as you probably need the library to be available in the container. Apologies if I have this all wrong.

Thanks for the reply.

I must admit that I know nothing about how restricted LMS (Logitech Media Server) is, when running in a docker container.

I thought that installing the required library/program, would make it available systemwide, and thereby also for LMS inside its docker…

It seems I may have a bigger problem than I initially thought :slight_smile:

How would one ssh into a docker container and install?

The “perl-IO-Socket-SSL” looks like it could be the right one.

Sorry guys, but I need some more help.

I have now tried installing “perl-IO-Socket-SSL”, and that went fine, no problems.

But either it is the wrong lib, or Logitech Media Server (LMS) cant see it from inside the docker.
I have now run out of talent / knowledge. How do I “tunnel” into the docker pr. SSL, and install the lib so that LMS can see it.

I’m really hoping for a solution, as I want to get Spotify to run on me Logitech Squeezebox, and the Spotty plugin I want to use, needs this lib.
In all other respects I have LMS running perfect on my Rockstor setup, I just have to get this “little” thing fixed.

It seems to me you need to install it within the container itself, so I would try to simply open a shell within the container and install perl-IO-Socket-SSL from there.
If you’re using the tdeckers/logitechmediaserver container, it is based on Ubuntu so I would expect the following to work:

docker exec -it ubuntu_bash bash

Hope this helps,

1 Like

I’m farily certain the error comes from within the Docker container, which, as you guessed correctly, can’t see or use the Perl lib you installed in the hosting OS. What you need to do is make sure this lib is available from within the Docker container, either by connecting to the running instance and installing it there (this would involve a bit of Docker command line tomfoolery, as @Flox pointed out). However, that’s not The Docker Way - the running container should be considered something you can just toss away when you’re done with it, and that’d lose your change.

Are you using the Squeezebox Rock-on that’s available by default? (not sure if Squeezebox is the media server thingy, I’m not familiar with it). If so, this is the Dockerfile that builds it (so it’s Ubuntu-based allright). I’m wondering why suddenly that image stopped working properly, but maybe Logitech changed the download on their end.

Eitherway, for starters: is that, in fact, the Rock-on you’re trying to install?

Thanks for your answer :slight_smile:

Running “docker exec -it ubuntu_bash bash” gives this:

Error response from daemon: No such container: ubuntu_bash

Thanks for your answer :slight_smile:

Its not a question of the image not working, because it works fine (LMS is the same as Squeezebox server), allthough it would be nice if it was version 7.9.1 instead of 7.8.

I am fully capable to use the squeezebox server to play my local files, and it works very well.

But I’m trying to install a plugin to it that allows me to play files from Spotify, called Spotty. This plugin needs the “perl-IO-Socket-SSL”.

Ah, gotcha. That means that plugins requires something that wasn’t installed inside the image as it is - it seems like it hasn’t seen some love in quite a while, so the older version of the Logitech software is no surprise.

“Easy” way to solve this: come up with a better Dockerfile to build a newer image around, this time including the proper Perl lib (and maybe a newer version of LMS itself - newest available version seems to be 7.9.0), then making that available on the Docker Hub, and then crafting a Rock-on around that. Not rocket science, but if you’re not familiar with Docker it might take some digging in the documentation. I’d offer to do it but I’m already doing a couple of things at the same time. :slight_smile:

As for the docker exec command @Flox gave you - that assumes you have a container named ubuntu_bash running. I’d guess the one you’re looking for is logitechsqueezebox (assuming that Rockstor uses that name from the rock-on config for the container name). See how docker exec -it logitechsqueezebox bash works out for you.

Thanks.

I must say your easy way looks uneasy to me.

Yes the latest is 7.9.0, 7.9.1 is a beta version, but it allows searching inside Spotify files via Spotty, so it would be nice to have it.

The command you provided worked, I was left at a prompt inside the docker (root@4dbed416a3aa:/#). Running “yum install perl-IO-Socket-SSL” didnt work, but I realised, I was probably inside a ubuntu container.
So I ran “apt-get install libio-socket-ssl-perl”, and it installed the needed perl “thing”.
And now Spotty works! :smile: :sunny:

Now if only I could upgrade the Squeezebox server / LMS to 7.9.1 I would be happy. Will try to work on that.

Indeed… sorry about that… I meant to correct the copy-paste but I was in a hurry and forgot to do it before posting.
Thanks a lot for your much more detailed help @doenietzomoeilijk!

Glad you could make it work!

That 7.9.1 version will have to wait until Logitech lists it on their downloads site, I’m afraid, unless you find a download somewhere else.

If you keep making changes inside the running container, make sure you document what command lines you ran to get things to work. Later on, these can be added to the Dockerfile in the original repo, which would have everybody benefit. Not sure how comfortable you are with Github, forks, pull requests and the like but it’s the same process for contributing to Rockstor itself. I’d be happy to give you a couple of pointers if you’re interested.

I found, and downloaded 7.9.1 (from the Squeezebox support forums), and after some searching got it installed.

Also had to install FLAC, because the Spotty plugin needs it to convert Spotify’s Ogg Vorbis streams, to FLAC.

But after medling with this I have Spotty working and thereby Spotify playing on my Squeezebox Classic.

This is very nice.

I’ll try to document the things I did, allthough I’m completely out of my league here.
I’ll also have to do this, because, there is no way I can remember all these steps when I someday have to reinstall Rockstor…
My Squeezebox Rock-On is far from standard anymore.

But thanks for all the help with this. I’m so happy to have this working, and can now put the old laptop I had running LMS before out to pasture, and save some money on the electric bill :grinning:

That’s exactly why you’d want it rolled into the container. :slight_smile:

Care to tell me which commands you ran? I think I can do a quick fork-and-pullrequest on the repo that the rock-on is based on; if that author is still alive-ish, changes should make their way to the rock-on as well.

Great to hear you got it to work, anyway!

Im trying tio retrace my steps.

While inside the container, I ran these

“apt-get update”

“apt-get install libio-socket-ssl-perl”

“apt-get install flac”

For installing the 7.9.1 I found this in a squeezebox wiki:

os=$(dpkg --print-architecture)
if [ “$os” = “armhf” ]; then os=arm; fi
url="http://www.mysqueezebox.com/update/?version=7.9.1&revision=1&geturl=1&os=deb$os"
latest_lms=$(wget -q -O - “$url”)
mkdir -p /sources
cd /sources
wget $latest_lms
lms_deb=${latest_lms##*/}
dpkg -i $lms_deb

The script didn’t quite work, but it downloaded the latest LMS into the sources directory it created.

After this I ran (from inside the /sources directory):

“dpkg -i logitechmediaserver_7.9.1~1505480690_amd64.deb”

Wich installed the latest 7.9.1.

Stopped an restarted the Squeezebox Rock-On.

A lot of trial and errors we’re made, but that is, I believe, just about it…

Well, let’s hope the original author is awake

1 Like

Thanks.

I really hope this works as its supposed to, and that the maintainer / author will make the updates go live (Did you leave FLAC out on purpose? Spotty probably wont work without it).

For now my new setup is working, and even better than my old setup, probably because my Rockstor server is far more powerfull and has many more resources than the previous laptop that ran LMS.

I’m looking into making some kind of mirror of my current state of my Rockstor install, as the way I have my RockStor setup now seems perfect for my needs.

So having a backup HDD / SSD ready to plug in in case of failure would be nice.

See near the end of line 10 - flac is in there. :slight_smile:

Oh, youre right :blush:
Sorry…

Didnt know it was possible to install several things at once that way :slight_smile: