LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Virtualization and Cloud
User Name
Password
Linux - Virtualization and Cloud This forum is for the discussion of all topics relating to Linux Virtualization and Linux Cloud platforms. Xen, KVM, OpenVZ, VirtualBox, VMware, Linux-VServer and all other Linux Virtualization platforms are welcome. OpenStack, CloudStack, ownCloud, Cloud Foundry, Eucalyptus, Nimbus, OpenNebula and all other Linux Cloud platforms are welcome. Note that questions relating solely to non-Linux OS's should be asked in the General forum.

Notices


Reply
  Search this Thread
Old 02-07-2015, 08:27 PM   #1
browny_amiga
Member
 
Registered: Dec 2001
Location: /mnt/UNV/Mlkway/Earth/USA/California/Silicon Valley
Distribution: Kubuntu, Debian Buster Stable, Windoze 7
Posts: 684

Rep: Reputation: 56
Question Avoid dependency hell with Docker? No more libc6 too old/too young?


Hi,

just recently, I got smacked in the head with an error that I have come to hate:

Unpacking replacement google-talkplugin ...
dpkg: dependency problems prevent configuration of google-talkplugin:
google-talkplugin depends on libc6 (>= 2.14); however:
Version of libc6:amd64 on system is 2.13-38+deb7u6.

I'm using Debian Wheezy and love the stability it offers, but I know that I won't be able to install this package unless I update the whole system.

Now every since investigating Docker, I imagined that it could be the solution for all the "this libc library is too old / too new for this software" problems or get software running on a distro that was not originally meant for it and saving you hours and hours of digging around forums to figure out how to make it work.

Here a few examples of what I imagine would save so much time:
run sofware like steam on Debian, just use a Ubuntu image container.
Run things that only works on Debian Jessie on Wheezy.

In the above case, the plugin is part of chrome. Now I would probably have to run Chrome too in the container too.

Now my question is, is this doable? What have been your experiences with this?

Does this work with stuff that connects to the hardware?
As an example, I have tried to compile wineasio for Debian Wheezy and it has been such a pain and so far I could not make it work. Kxstudio has a working and reliable wineasio.

Now I imagine to just run this in a kxstudio container. But wineasio connects to jack and jack connects to alsa and alsa of course to the hardware, can docker do such a thing?
 
Old 02-10-2015, 08:23 PM   #2
browny_amiga
Member
 
Registered: Dec 2001
Location: /mnt/UNV/Mlkway/Earth/USA/California/Silicon Valley
Distribution: Kubuntu, Debian Buster Stable, Windoze 7
Posts: 684

Original Poster
Rep: Reputation: 56
Hmm, interesting. I seem to be the only person that has contemplated this so far.

So I will do some research and see if this works, and report back with a solution.

This might be a really super cool way to side step a lot of terrible problems we now have trying to make software run on a distro that it was not intentended for.

Docker might even eventually allow companies to package their software in docker so that it runs on all distros 100% surely.
 
Old 02-11-2015, 01:15 AM   #3
Head_on_a_Stick
Senior Member
 
Registered: Dec 2014
Location: London, England
Distribution: Debian stable (and OpenBSD-current)
Posts: 1,187

Rep: Reputation: 285Reputation: 285Reputation: 285
For running Testing/Unstable software, you could use a chroot system:
https://www.debian.org/doc/manuals/d..._chroot_system
 
Old 02-26-2015, 03:29 AM   #4
browny_amiga
Member
 
Registered: Dec 2001
Location: /mnt/UNV/Mlkway/Earth/USA/California/Silicon Valley
Distribution: Kubuntu, Debian Buster Stable, Windoze 7
Posts: 684

Original Poster
Rep: Reputation: 56
I do that already in some cases and I consider it ugly, since it is not really 100% contained.
Docker is much more cleaner in this respect and the images can be better packaged.
 
Old 02-26-2015, 01:47 PM   #5
genss
Member
 
Registered: Nov 2013
Posts: 744

Rep: Reputation: Disabled
you can use LD_PRELOAD or LD_LIBRARY_PATH
 
Old 03-13-2015, 06:48 PM   #6
browny_amiga
Member
 
Registered: Dec 2001
Location: /mnt/UNV/Mlkway/Earth/USA/California/Silicon Valley
Distribution: Kubuntu, Debian Buster Stable, Windoze 7
Posts: 684

Original Poster
Rep: Reputation: 56
Here is an interesting link:

https://github.com/noisecapella/docker-steam-pulseaudio

running steam in a docker container. Steam can be a total pain to setup, especially on Debian.
 
Old 03-14-2015, 06:09 AM   #7
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Germany
Distribution: Whatever fits the task best
Posts: 17,148
Blog Entries: 2

Rep: Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886
It is possible and actually quite easy. For Steam there are even pre-made containers available from Docker, including instructions gow to run them. It basically comes down to specify the correct bind-mounts in your Docker file to get it running (stuff like the X and Pulseaudio magic cookies and parts of the /dev tree).
 
Old 03-14-2015, 06:27 AM   #8
syg00
LQ Veteran
 
Registered: Aug 2003
Location: Australia
Distribution: Lots ...
Posts: 21,153

Rep: Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125Reputation: 4125
Quote:
Originally Posted by browny_amiga View Post
Hmm, interesting. I seem to be the only person that has contemplated this so far.
Restrain your ego - most of the aware world has looked at docker for quite some time.
 
Old 03-14-2015, 08:40 AM   #9
browny_amiga
Member
 
Registered: Dec 2001
Location: /mnt/UNV/Mlkway/Earth/USA/California/Silicon Valley
Distribution: Kubuntu, Debian Buster Stable, Windoze 7
Posts: 684

Original Poster
Rep: Reputation: 56
Quote:
Originally Posted by syg00 View Post
Restrain your ego - most of the aware world has looked at docker for quite some time.
I would be to differ, I posted this a month and 6 days ago and nobody reacted, but so far 616 people read the post and even when I responded to my own post 3 days later with the "am I the only one?", nobody responded to that. Hardly a trivial "oh yeah, here are lots and lots of links, it has been done for years now, have you been living under a rock?"

So most of the world might have looked at docker, but not come up with solutions for the problem I described. I inherently is a great solution for the distro framentation on linux: For companies to release one version that runs on all Distros, guaranteed. Yes, it is wasteful, but many companies usually release statically linked stuff anyway, so no big change there.

And it would solve many of my problems and I'm sure other peoples too: I'm currently try to get wineasio working on Debian Wheezy, but after spending days, I am not closer to a solution. It works on KXStudio, so creating a docker container for wineasio based on Kxstudio would be a possibility that would surely work, but there are tricky questions that I have not found answers to so far:
how do you connect and integrate low level system access like to alsa or to the sound card? How do you let programs outside the container connect to for example jackd inside a container?

I don't know enough about docker yet to find a solution to it.
 
Old 03-14-2015, 09:02 AM   #10
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Germany
Distribution: Whatever fits the task best
Posts: 17,148
Blog Entries: 2

Rep: Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886Reputation: 4886
Quote:
Originally Posted by browny_amiga View Post
how do you connect and integrate low level system access like to alsa or to the sound card?
There is nothing more to it than bind-mounting the devices you need from the /dev tree to your container.
I don't know much about Jack, but it should either be similar to the soltuion above, or if it is network-based then just forward the ports to your host OS.
 
Old 04-16-2015, 10:14 AM   #11
kpt65
LQ Newbie
 
Registered: Mar 2015
Posts: 8

Rep: Reputation: Disabled
Quote:
Originally Posted by browny_amiga View Post
Hi,

just recently, I got smacked in the head with an error that I have come to hate:

Unpacking replacement google-talkplugin ...
dpkg: dependency problems prevent configuration of google-talkplugin:
google-talkplugin depends on libc6 (>= 2.14); however:
Version of libc6:amd64 on system is 2.13-38+deb7u6.

I'm using Debian Wheezy and love the stability it offers, but I know that I won't be able to install this package unless I update the whole system.

Now every since investigating Docker, I imagined that it could be the solution for all the "this libc library is too old / too new for this software" problems or get software running on a distro that was not originally meant for it and saving you hours and hours of digging around forums to figure out how to make it work.

Here a few examples of what I imagine would save so much time:
run sofware like steam on Debian, just use a Ubuntu image container.
Run things that only works on Debian Jessie on Wheezy.

In the above case, the plugin is part of chrome. Now I would probably have to run Chrome too in the container too.

Now my question is, is this doable? What have been your experiences with this?

Does this work with stuff that connects to the hardware?
As an example, I have tried to compile wineasio for Debian Wheezy and it has been such a pain and so far I could not make it work. Kxstudio has a working and reliable wineasio.

Now I imagine to just run this in a kxstudio container. But wineasio connects to jack and jack connects to alsa and alsa of course to the hardware, can docker do such a thing?
Strangely, I never even considered this before, though it's obvious. Always thought of it as a way to isolate network apps. Actually, this could be a far better way for commercial companies to deliver their software to linux. Currently the state of that is a mess.

Of course the old way, in my personal order of preference, was

1. best: grab the source package from testing/unstable or some other repo and rebuild an installable package on your system (debian makes this a 1 step process, very easy)
this works most of the time so long as the app doesn't have a lot of lib dependencies satisfied only in the other release, but usuall apt-get build-deps will give you what you need. This can screw up a release upgrade, though, so you have to uninstall all of this before doing dist-upgrade. I only do this for simple cli commands and what not.

2. build a minimal chrooted testing or unstable system on the file system. More work up front, but much cleaner. This is about what your're doing with docker here. The difference being you can slap the docker container on a thumb drive and run it elsewhere.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] dependency hell, libc6:i386 and libgcc1:i386 depend on each other qrange Debian 9 07-01-2012 11:38 AM
I got in dependency hell... deltrem Linux - Software 4 02-01-2011 01:08 PM
dependency hell? Ryzol Red Hat 4 03-14-2008 04:46 AM
Is this what they mean by dependency hell? john_walsh54 Linux - Software 1 10-10-2003 07:52 AM
Dependency Hell Time Lord Mandriva 2 09-09-2003 03:48 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Virtualization and Cloud

All times are GMT -5. The time now is 08:37 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration