7 ms·
Milestone release vs. rolling release is a red herring. The real problem is the issue of shared libraries and shared dependencies. This is one thing Windows g
by acabal 14y ago
Milestone release vs. rolling release is a red herring. The real problem is the issue of shared libraries and shared dependencies. This is one thing Windows got right--updating one program (usually) doesn't affect other programs on the system. But in Linux, updating one library or program might introduce bugs into all of the programs using it. Hence was born the milestone concept, where we freeze a known stable state of the entire system and use that, because all the interdependent clockwork seems to work ok at that point; and then the rolling release concept, where we acknowledge the need for new software, but update everything, top to bottom, so frequently that breakage is common.
These approaches have the added side effect of making the distro the curator of the galaxy of 3rd-party software running on it. I find this the most surprising thing--why should the OS provider have to spend the energy curating every single well-known program that runs on the OS?
What we really need is a reform in the way dependencies and packages are managed so we can update one aspect of the system (Firefox, Pidgin, etc.) and not drag in new versions of libraries that can introduce bugs in to other parts of the system. Gobo Linux started edging towards this approach but it's sadly no longer maintained.
An approach that combines a stable core--kernel, video/network drivers, etc.--that is thoroughly tested and rarely updated, plus sandboxed apps that update at their own pace and are not curated by the distro maintainer, would be the ideal approach, I think. We could even keep the concept of centrally-sourced packages.
Is this possible given that Ubuntu inherits Debian, or given the general philosophy and practices of OSS? Maybe not. But it'd go a really long way towards assuaging the constant and unforgivable breakage that happens with every new Ubuntu release. (And before someone chimes in with "you're wrong, it works perfectly for me", I have a single anecdotal data point to counter your single anecdotal data point.)
- lhnn 14y agoIf the distros continue to have their "app store" feel, where you get apps from distro maintainers as a trusted provider, then vaildating the barest amount of security and usability for programs uploaded to their archives would be even more of a chore. It would also tax bandwidth and drive space, FWIW. Windows got/gets away with it because they provide the OS and a few apps, and says, "go to download.com for all your needs!".
- acabal 14y agoTo clarify I think moving towards the Windows approach is precisely what Linux needs. It rightly shifts responsibility away from the distro to the app maintainer. This is not incompatible with the central-sourced model like "apt-get install x"; there could be some central list of non-core packages plus 3rd-party download links that is hosted on a Canonical server. App developers would push their updated app information to that list, and everyone using the OS benefits without having to wait 6 months for Canonical to curate the next edition of their clockwork galaxy. I'm just spitballing here but the point is that theoretically we could still have something apt-get-ish and not rely on Canonical as the curator.
- dale-cooper 14y agoCould just take debian/ubuntu, remove all library dependencies from all packages and recompile them statically i guess. Not really sure if it's worth it. There's nothing stopping you from running something like debian stable and then manually downloading and installing things like Firefox, which is exactly what you would do on windows.
- Nursie 14y ago"To clarify I think moving towards the Windows approach is precisely what Linux needs." WT-actual-F? A model where people are trained to download and install random unvalidated garbage from the internet and live with the ad/crap/spy/mal-ware that that entails? Please god no. You can, if you want, install new repos and PPAs into ubuntu and debian quite easily, and yes running a decent repo takes maintainance. It's also the reason why debian stable is rock solid.
- CJefferson 14y agoI already download and install lots of source package, which doesn't seem particularly any better than windows. How many github repositories bother building a deb package?
- Nursie 14y ago
- vacri 14y agoI really do not like that my windows machine takes longer and longer to log in as every single software provider has to have their own 'phone home' mechanism to see if there's an update. Windows did not 'get it right'.
- randallsquared 14y agoWindows programs all check on login? Is there something that disallows them from checking from time to time when the machine is idle?
- 4ad 14y agoUpdating software is orthogonal to software modularity.
- nicktelford 14y agoYou might be interested in the Nix package manager: http://nixos.org/nix/ http://nixos.org/nix/ Among the raft of interesting ideas it brings to the table is application sand-boxing; many versions of a shared library can be installed with dependent apps linking against the version they depend on.
- lucian1900 14y agoThat would be giant liability (and already is on Windows and OS X), as apps have to provide their own versions for libraries (or statically compile), which can't get security updates system-wide.
- runeks 14y agoJust a though: what prevents the OS from keeping several versions of a library installed, linked dynamically to an application that specifies which version it needs? We'd have to change some system calls, of course, from load("blah.so") to load("blah.so", maj_ver=4, min_ver=2). But couldn't that solve a part of the problem?
- lucian1900 14y agoApps already link against specific library versions. With a package manager that allows multiple installed versions, app could link against library major versions and receive minor version (security) updates automatically. But all this would still require everything is managed by the package manager.
- gus_massa 14y agoIn Windows it was called "DLL Hell". All the shared dll were in system or system32 and when a program updates it, no one knows what would happen to the other programs. Now it's almost fixed because each program store its libraries it its directory.
- fghh45sdfhr3 14y agoNow it's almost fixed because each program store its libraries it its directory. And wasn't this pioneered on OSX?
- tokipin 14y agomy hope is it would have been pioneered by Dr. Obvious
- naner 14y agoupdate everything, top to bottom, so frequently that breakage is common. Breakage is not common for me on Arch. It was probably more common a few years ago in Arch and back several years when I was using Gentoo but I rarely ever have to dive in and fix anything anymore.
- silasb 14y agoI disagree, while Arch is pretty good, core bugs get by that shouldn't get by. An recent example is python2-urwid issues with wicd-curses, which resulted in wireless not working.
- andrewcooke 14y agoshared libraries can be versioned - http://www.ibm.com/developerworks/linux/library/l-shlibs/index.html http://www.ibm.com/developerworks/linux/library/l-shlibs/ind...
- k_bx 14y agoIs there a possibility for packages for non-core software to be built statically with all their dependencies? Why not use this approach?
- lorenzfx 14y agoIf one is willing to spend a little memory and disk space one can just keep different versions of every library around. I believe PC BSD is doing this (but have not tried it yet myself).