LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Distributions (https://www.linuxquestions.org/questions/linux-distributions-5/)
-   -   Best of both worlds ? (https://www.linuxquestions.org/questions/linux-distributions-5/best-of-both-worlds-4175504995/)

aspras 05-14-2014 01:06 PM

Best of both worlds ?
 
I would like to get some feedback from more experienced people on an idea I've had for a while now.
I have always been in a dilemma when having to choose a desktop distribution. While I want my operating system to be stable and not have things break out of the blue due to an update I also want to have the latest versions of certain software installed such as GIMP and Blender to name a couple.
Currently the distribution that comes closest to this is Manjaro but still what I have in mind is running something as stable as Debian but also be able to install the latest versions of software without a hassle.
As far as I understand the problem is the fact that linux software depends on layers of shared libraries so if I was to install a newer version of a library everything could suddenly break, but why does it have to be that way ? Theoretically would it be possible to have multiple versions of shared libraries installed as well as software that could automatically determine which packages depend on which version of a library and have them use the correct one ?

ondoho 05-14-2014 02:02 PM

yes it's possible. it already exists. it's called windows.

the shared libraries are the best bit of linux. shared development.

if everyone starts cooking their own applications, well then it's not shared anymore.

and in a couple of years you have the same sort of bloat that is windows.

what you want is possible - some apps on your system are probably even doing it. proprietary blobs, for example.
it creates bloat.

apart from that, i haven't had any breakage for ages. not even minor issues for months. and i do install & update a lot of stuff all the time - but maybe there's a point where i say to myself: ok, i just can't install this particular application without a world of pain. i have to make do with sth else. this particular feature i cannot have.

dugan 05-14-2014 02:08 PM

Slackware. This is the advantage of not having dependency resolution: you can just upgrade any random package you want, including libraries. Slackware also makes it extremely easy to build your own packages. And no, in practice this does not cause problems.

unSpawn 05-14-2014 03:12 PM

Moved: This thread is more suitable in the Linux Distributions Forum and has been moved accordingly to help your thread/question get the exposure it deserves.

Myk267 05-14-2014 05:29 PM

Quote:

Originally Posted by aspras (Post 5170843)
I would like to get some feedback from more experienced people on an idea I've had for a while now.
I have always been in a dilemma when having to choose a desktop distribution. While I want my operating system to be stable and not have things break out of the blue due to an update I also want to have the latest versions of certain software installed such as GIMP and Blender to name a couple.
Currently the distribution that comes closest to this is Manjaro but still what I have in mind is running something as stable as Debian but also be able to install the latest versions of software without a hassle.
As far as I understand the problem is the fact that linux software depends on layers of shared libraries so if I was to install a newer version of a library everything could suddenly break, but why does it have to be that way ? Theoretically would it be possible to have multiple versions of shared libraries installed as well as software that could automatically determine which packages depend on which version of a library and have them use the correct one ?

It's a research problem, just like trying to make software that's entirely ABI/API compatible between versions.

One solution that I'm seeing come up more often is a stable distro like Debian or Slackware combined with Nix to get newer packages. Just keep in mind that you have to learn to use a new and sophisticated tool and deal with it's problems - To be honest, using Nix can sometimes be frustrating.

There's also the Guix package manager, which is based on Nix, for the GNU operating system, written in Guile scheme. Exciting things may happen when/if that manages to land in other distributions, so you'll at least want to keep your eyes on the project.

Another project is GoboLinux, which features a radically different file system hierarchy. I just got my copy, so I don't have any real opinions on it in comparison to these other tools.

http://nixos.org/nix/

Quote:

Originally Posted by ondoho (Post 5170886)
yes it's possible. it already exists. it's called windows.

the shared libraries are the best bit of linux. shared development.

if everyone starts cooking their own applications, well then it's not shared anymore.

and in a couple of years you have the same sort of bloat that is windows.

what you want is possible - some apps on your system are probably even doing it. proprietary blobs, for example.
it creates bloat.

apart from that, i haven't had any breakage for ages. not even minor issues for months. and i do install & update a lot of stuff all the time - but maybe there's a point where i say to myself: ok, i just can't install this particular application without a world of pain. i have to make do with sth else. this particular feature i cannot have.

Concluding the realm of possibilities with Windows sure seems grim.

Further, I think your view has been clouded by Windows: shared libraries are worthwhile, so why not build a system that can share libraries along with allowing different versions? Windows ends up wrapping the entire universe in each package, essentially deep copies of each artifact, because doing so is a lot less work than figuring out how persistent data structures work across a file system, not because they solved the problem and the only solution is a bloated mess from MS.

Quote:

Originally Posted by dugan (Post 5170891)
Slackware. This is the advantage of not having dependency resolution: you can just upgrade any random package you want, including libraries. Slackware also makes it extremely easy to build your own packages. And no, in practice this does not cause problems.

I'm sure Pat would like to know your trick, dugan. I vividly remember Firefox getting bumped to the ESR version because a bunch of Slackware versions were stuck with an old libc. I'm sure there's other little dependencies that also don't upgrade so smoothly between versions.

dugan 05-14-2014 05:35 PM

Quote:

Originally Posted by Myk267 (Post 5171023)
I'm sure Pat would like to know your trick, dugan. I vividly remember Firefox getting bumped to the ESR version because a bunch of Slackware versions were stuck with an old libc.

Could you please post a link to the thread? Not doubting you; I'm asking because I missed it.

FWIW, I've built newer versions of Firefox on Slackware before. And if you're starting from a Firefox binary tarball, the SlackBuild just needs to put the files in the right place.

aspras 05-14-2014 06:55 PM

Quote:

Originally Posted by Myk267 (Post 5171023)
It's a research problem, just like trying to make software that's entirely ABI/API compatible between versions.

One solution that I'm seeing come up more often is a stable distro like Debian or Slackware combined with Nix to get newer packages. Just keep in mind that you have to learn to use a new and sophisticated tool and deal with it's problems - To be honest, using Nix can sometimes be frustrating.

Nix seems to be a lot like what I had in mind, thankfully I am not the first one to have thought there should be a way to isolate packages and their dependencies from the rest of the os.
Would it be an exaggeration to say Nix is one of the best things to have happened in the linux world ?

TobiSGD 05-14-2014 08:21 PM

Quote:

Originally Posted by dugan (Post 5170891)
Slackware. This is the advantage of not having dependency resolution: you can just upgrade any random package you want, including libraries. Slackware also makes it extremely easy to build your own packages. And no, in practice this does not cause problems.

While this is true for many packages it is not true for some of the bigger software projects, especially the likes of Gimp, which oftentimes also need newer libraries installed, which in case of Glib can be a real hassle. Back in the days (I am not sure if it was 14.0 or 13.37) I tried to get the newest Gimp and after replacing some libraries with newer versions I pulled the plug when it came to Glib, which is essential for many GTK programs.

For being a middle thing between being stable and having the newest version I would recommend rather to go for Gentoo or a semi-rolling release distro, like LMDE or Chakra.

ondoho 05-15-2014 02:54 AM

Quote:

Originally Posted by aspras (Post 5171060)
Would it be an exaggeration to say Nix is one of the best things to have happened in the linux world ?

yes.
i agree with what has been written about Nix here:
http://crunchbang.org/forums/viewtop...363360#p363360

syg00 05-15-2014 03:38 AM

Hmmm - ghosts from the past. Haven't looked at nix for years - seemed like a nice concept. Never did get to proceed with it, might be time to add it to the to-do list.

Myk267 05-15-2014 12:51 PM

Quote:

Originally Posted by aspras (Post 5171060)
Nix seems to be a lot like what I had in mind, thankfully I am not the first one to have thought there should be a way to isolate packages and their dependencies from the rest of the os.
Would it be an exaggeration to say Nix is one of the best things to have happened in the linux world ?

I think the best thing is to have an open mind and be mindful of design decisions and their tradeoffs. Nix has some tradeoffs for sure: check out that directory name in ondoho's link - that's horrific, and definitely has a very 'for developers, by developers' look to it, if not also 'by the machine, for the machine'.

Quote:

Originally Posted by dugan (Post 5171027)
Could you please post a link to the thread? Not doubting you; I'm asking because I missed it.

FWIW, I've built newer versions of Firefox on Slackware before. And if you're starting from a Firefox binary tarball, the SlackBuild just needs to put the files in the right place.

I may be wrong. It looks like 13.37 upgraded to an esr version because of a python dependency couldn't be upgraded comfortably by Pat, and 14.0 upgraded to esr because of oxygen-gtk theme having issues.

I only wanted to say that Slackware's package management scheme doesn't fix every problem of having some mix of new and old packages.

On the other hand, I'll gladly concede that it strikes a great balance between update speed, stability and featuring a package management tool set that doesn't fight against you. I always end up running Slackware on the bare metal because of those reasons. In short of something crazy like Nix taking over the world, I'll take Slackware in the mean time. :)

aspras 05-18-2014 07:44 AM

Quote:

Originally Posted by Myk267 (Post 5171513)
I think the best thing is to have an open mind and be mindful of design decisions and their tradeoffs. Nix has some tradeoffs for sure: check out that directory name in ondoho's link - that's horrific, and definitely has a very 'for developers, by developers' look to it, if not also 'by the machine, for the machine'.

I believe those horrific directory names are a small price to pay compared to what nix offers.
I was able to install the latest versions of Blender and Gimp on Wheezy by running a single command for each, how long would it take me to manually resolve all the dependencies and build them on Slackware and how user friendly would you say that procedure is ?

TobiSGD 05-18-2014 09:47 AM

Quote:

Originally Posted by aspras (Post 5173024)
I believe those horrific directory names are a small price to pay compared to what nix offers.
I was able to install the latest versions of Blender and Gimp on Wheezy by running a single command for each, how long would it take me to manually resolve all the dependencies and build them on Slackware and how user friendly would you say that procedure is ?

Gimp is installed by default on Slackware, for Blender you would have to refer to its Slackbuilds.org site, according to the blender.info file it has no additional dependencies. If you use a program like sbopkg it also comes down to one command to install Blender.

dugan 05-28-2014 02:13 PM

Quote:

Originally Posted by aspras (Post 5173024)
I was able to install the latest versions of Blender and Gimp on Wheezy by running a single command for each, how long would it take me to manually resolve all the dependencies and build them on Slackware and how user friendly would you say that procedure is ?

Just like this:

Code:

sbopkg -i blender
Blender doesn't have dependencies, but that line would work even if it did.

Gimp is preinstalled.

And you don't "manually resolve dependencies" on Slackware. That's a misconception. See: http://www.linuxquestions.org/questi...3/#post5153716

ondoho 05-29-2014 05:10 AM

even if all this is possible on slackware and actually any other linux distro,
in the end it always comes down to "someone made a userfriendly distro out of it".

when you seriously start working on your linux install, you will quickly realize how good it is that directories are called "lib" or "doc" or "icons"... something a human being can actually understand... and that there's some long-term logic at work that tells me e.g.: apps' global configurations are most probably in /etc.

with an automated, user-friendly ("one command"!), library-independent standalone installation system you are losing this.

plus, the bloat:
redundancy is always to be avoided, esp. if you think ahead.
it grows quicker than you think.

there's probably other implications that i'm not even aware of.
my guess is, bill gates had some similarly "revolutionary" ideas in 1980, and we all know how that went: these days windows is trying more and more to re-implement almost historic features of unix-like operating systems, that were no doubt then dropped by young billy because he thought them a hindrance.


All times are GMT -5. The time now is 05:22 AM.