Results 1 to 6 of 6
So I've had this idea concerning how to run software across multiple different debian-type OSs. Why: I like the stability of Debian stable, but the software is ancient. Firefox 3.5? ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 10-08-2011 #1
Universal .deb Installation Ideas
I like the stability of Debian stable, but the software is ancient. Firefox 3.5? So either I upgrade to an OS that I like less or else I spend a lot of time getting software to run. Neither is that difficult but neither is optimal either.
Debian Stable has a thing called 'backports' which is where newer versions of software are compiled and linked statically and distributed as binaries. There is only one real downside: someone has to compile them. Of the several major software applications that I most wanted to upgrade, only one of five a backport. Sure, I could break down and just compile my own software, but the next time I want a new version of a different program I have to do it again.
My idea is really simple: you have essentially another package management program in addition to the one used by the OS, which instead of installing apps for your OS installs them in a different directory for a different OS, including all dependencies. Using firefox as an example, your directory structure might look like:
/ -> usr ->bin firefox ->firefox (firefox settings, files, etc) ->lib (firefox libs) ->UBUNTU_1104 -> usr ->bin firefox (run_script) ->executables firefox ->firefox (firefox settings, files, etc) ->lib (firefox libs)
I'd like people experienced with debian/ubuntu package management to point out problems, or if there are good points, noting those would be appreciated too. How difficult to implement does this sound- am I missing something here? Normal users: if something like this existed, would you use it? Why or why not?
- 10-08-2011 #2
The base of your idea has a lot of merit, but you already pointed out what I think would be the major issue. Installing multiple instances/versions of libraries.
While manually doing so for one or two specific programs won't cause any issues, having it done for 20 or 30 most likely will end up causing conflicts with applications that you never intended to influence.
I think it would be like having yum and apt-get running on the same system.
I'm not an expert on the ins and outs of package managers, so those are just my thoughts.
- 10-08-2011 #3
I understand what you're saying, but you're at least missing something, although I may be as well. As I understand it libraries are linked at runtime by the dynamic linker, ld.so. ld.so knows where to look for libraries based on an environment variable, LD_LIBRARY_PATH.
So for your debian applications, you'd set it to all the normal locations, /lib, /usr/lib, or wherever libraries are normally stored, and for your ubuntu applications you'd set it to /usr/UBUNTU_1104/lib, /usr/UBUNTU_1104/usr/lib, or whatever. So you would essentially have two different systems managed by apt, completely separate.
You'd have to have to only manage one or the other at a time, but they would never have to interfere with each other. They'd each have their own sources.list, corresponding to the sources for their respective OS, their own list of installed packages, and they'd do dependency resolution only for their specific OS, ignoring whatever belonged to other ones.
- 10-08-2011 #4
Depending on the package, it's possible to just download an archive and extract it to any folder and run it. Firefox/Iceweasel works that way very well. You can just download the archive, extract it to a folder in your /home hierarchy, and run it. All the necessary libraries are there. This works for all Mozilla packages I'm aware of, and for many others, but certainly not every available package. The standard locations in the root hierarchy to put third-party packages is /usr/local or /opt. You can try that, but I would first try just extracting an archive to a folder in /home and see if it runs. If it does, you're done, other than making a shortcut somewhere if you want.
- 10-08-2011 #5
I did not know that. Thanks for the tip.
It still doesn't work for anything with an external dependency on a library newer than the one in you OSs repository though, right?
- 10-08-2011 #6
Yes, a package with external dependencies may not run at all installed that way. Mozilla packages all the necessary libraries in the distribution, but that's actually somewhat rare. All I can suggest is try it and see if it works. If not, you'll have to try something else.