Hacker News new | ask | show | jobs
by acabal 5203 days ago
I've been saying this same thing for years. Package managers are a nice concept in theory, but Linux on the desktop will never, ever succeed until upgrading (for example) Firefox doesn't result in an install of Unity. The entire concept of a milestone-based monolithic distro is so broken for desktop use that I can't believe a better alternative hasn't been developed yet.

Even as a Linux nerd I'm constantly faced with problems caused by this. I'm stuck on Ubuntu Natty, for example, because it has the last stable version of Compiz that worked for me on the flgrx ATI drivers. If I wanted the latest version of Unity (I don't, I think Unity is terrible, but this is just an example) that means I'd have to upgrade Compiz and everything else and get stuck with all the horrible bugs new Compiz versions have with my drivers. It would also mean upgrading to Gnome 3 which still has many usability regressions (unrelated to Gnome Shell) and in my opinion isn't fully baked yet. I don't want all that shit just to get the latest version of a single package!

(You could perhaps pull it off with some PPA mumbo-jumbo, but you'd have to understand what a PPA is, luck out in finding a PPA in the first place, and messing with them can more than likely bork something up. Not something for the average-Joe audience Ubuntu is targeting.)

Shared libraries made sense in the days of limited space and resources. They still make sense from a few security perspectives. But from a practical perspective, Windows did it right by allowing programs to ship their own libraries and by doing backwards-compatibility right.

2 comments

The entire concept of a milestone-based monolithic distro is so broken for desktop use that I can't believe a better alternative hasn't been developed yet.

I feel like even the original 1984 Macintosh was a better alternative. Each app is contained in one file; it has no dependencies other than the OS. There is no need for installers/uninstallers. For updates, even Sparkle (annoying as it is) at least doesn't disrupt your whole system.

There are Linux distros that try to work this way, but the upstream developers have become lazy; they expect distros to do packaging for them. This leads to some skewed incentives; I think everything works better when the developer is also responsible for packaging, marketing, and support.

I understand where you're coming from, but people have the exact same problem with Windows (and maybe Mac also; but I don't have much experience with Macs). Many people are staying on XP because they dislike Windows 7/Vista. I suspect the same is happening with Ubuntu.

I personally LOVE LOVE LOVE that all my apps are updated by the same program. Instead of the Windows/Mac way of each app running it's own updater.

However, I do agree that the UI for upgrading a single app should be made better.

Just this week, I finally moved out of Unity while staying with Ubuntu 11.10. My workaround is to move to XFCE (Xubuntu). So far, no problems. Btw, I have Compiz enabled with the proprietary nvidia drivers. You might want to try Xubuntu.

It's amazing how easy it was to take out Unity and replace it with xubuntu: sudo apt-get install xubuntu-desktop.

The xubuntu people have taken the trouble to interface with all the Ubuntu plumbing (networking, sound, updates etc) via XFCE. Overall I'm impressed with the Ubuntu ecosystem.

We're talking about different problems. Windows does not have the problem I'm describing. If I want to update Firefox on Windows XP, I can do that without Windows forcing me to update to Windows 7 as part of the deal. That's the problem. Updating Firefox on Ubuntu 11.04 after a certain (very soon in the future) point in time necessitates an update to Ubuntu XX.YY.

In fact you're precisely illustrating my point with your example. That people can choose to stick to XP because they don't like 7 is precisely analogous to wanting to stick with Gnome 2 because I dislike Unity. But the difference is that I can do that in Windows because I can still get app updates in XP for over a decade, but I can't in Linux because app updates are tied to the entire massive distro and everything else that goes with it... often every 6 months.

It certainly is possible to upgrade parts of the system using esoteric (to the average-Joe) solutions like PPAs or compiling from source or being forced to switch to a different desktop environment. (Most users don't even know what a DE is!) But the fact that you're forced to turn to such solutions is what I--and the OP and the linked article--argue is the biggest nail in the desktop Linux coffin.

> If I want to update Firefox on Windows XP, I can do that without Windows forcing me to update to Windows 7 ... Updating Firefox on Ubuntu 11.04 after a certain (very soon in the future) point in time necessitates an update to Ubuntu XX.YY.

I'm not 100% sure about it. As it happens I run both Ubuntu 10.10 (at work) and Ubuntu 11.10. I just saw an alert to upgrade my 10.10 Ubuntu to Firefox 11. I give them major props for keeping an major package like Firefox updated. They probably don't do this for other packages.

Now wrt app updates, people have pointed out downthread that PPAs can be added to the system by clicking a specially-encoded URL in Firefox). People on Windows also do things like download the file, locate it, double click, respond to a UAC prompt etc. So installing through PPA isn't that much more complicated. IMHO.

Also Ubuntu has a software store, to which developers are free to push their updates.

In summary, what people are wishing for in this thread is to have the 3-4 apps they use upgraded to the latest and greatest versions while leaving the core OS and other apps at baseline versions. But ... the solution of using PPA (analogous to downloading the app in Windows) is deemed too nerdy ... Leading to the conclusion that the distro should take responsibility for maintain all the 10s of 1000s of packages for ~10 years. Am I understanding you correctly? Probably ain't gonna happen.

Do you really think it would be a step forward if we got rid of the huge number of non-core packages in distros and had to hunt down PPA sources (again, equivalent to downloading apps from different websites in Windows) for each program. I'm not sure.

Continuing, I'm not sure the lack of updates for old releases is only a technical problem: XP has an installed base, so people jump through ALL kinds of hoops to make their programs work there. IIRC, there are major differences in audio/video/drivers between Win7 and XP, but people (e.g., Flash/Chrome) still do it.

I doubt developers will keep their apps updated and working on XP if it didn't have such a large installed base.

End long reply. :)

Firefox is a special case. Ubuntu specifically updates that one package more frequently. Perhaps it was a bad example as that's one of the very few packages that is singled out for frequent updates by Canonical.

PPAs still aren't the best solution even if distros make them easy-to-use. The reason is that now maintainers have to get their software into two places: the core repos and now an optional up-to-date PPA. Additionally they must still target those PPAs to every single new version of the entire distro. For example: I run Natty because I like Compiz, but Oneiric has showstopper Compiz bugs for my ATI card. On Natty I use a PPA that downgrades the version of Compiz to a more stable one. However that PPA has not published an update for Oneiric, so I can't upgrade to Oneiric and get other new packages. What now? My fate is in the hands of a single PPA maintainer.

Or: many PPAs only publish releases for the past 2 or 3 distro releases. What if I'm on a non-LTS release and don't want to upgrade (because upgrading would bring in more unwanted packages), but the PPAs I use no longer publish for my version? I'm out of the game again.

The core problem in these scenarios is the distro model. Devs have to keep their apps up to date with the quickly-moving target of a "distro." That's just not a situation anyone should be in. The OP and the linked article explain this better than I can.

You want stability and a slowly-changing core system, but won't use the LTS releases? Because your app provider doesn't make updated PPA's for the LTS release. At which point you blame the existence of the distro's non-LTS releases? I think the correct target of your ire should be the app developer who doesn't produce PPAs for the LTS release.

I carefully read what you wrote, and IMHO your requirements are not reasonable: in effect, you want the non-LTS releases of distros to vanish so that app providers don't have the temptation to not support previous releases.

Maybe I'm a what somebody called a "technologist" downthread.

I want what Windows does: Stable core, independent apps. The entire concept of "LTS" is a red herring. It's a byproduct of the distro mindset. To put it another way: There is no Windows LTS. You buy one version of Windows and it works for a decade--a DECADE--and your apps are kept updated for as long as the developer cares to do so, often automatically in-app. (There's no Windows "app store", but as Apple demonstrates it's a matter of will, not technology, to make one.)

That is simply not the case with Linux today no matter how you frame it. And for some reason too many Linux supporters are totally blind to that because they think package managers are flawless gems of convenience. They mistake package managers for convenience when in reality they're a band-aid for a situation that shouldn't exist in the first place, and that other OS's have solved better. The OP calls this out perfectly.

The fact that Windows tries valiantly to offer backwards compatibility (actually is forced to by their own business model) I have to assume is at least partially responsible for the overall huge suckage that is working on Windows.

OSX/iOS are much more like Ubuntu -- practically any cutting-edge app requires something near to the latest OS release.

Android is suffering precisely because there is low OS upgrade adoption, as I've heard recently right here on HN.

Windows has which problems, exactly? His mentions are pretty Linux-specific and I couldn't find one that applied to Windows.
My first digital camera had drivers only for Windows 98. I had to dual boot until I got a CF card reader.
Could you elaborate on the jist of your point? I'm genuinely not getting it. Keep in mind than Windows 98 is a 15 year old, crappy legacy OS. And we were all running FVWM and AfterStep.
OP said: "I'm stuck on Ubuntu Natty, for example, because it has the last stable version of Compiz that worked for me on the flgrx ATI drivers."

It's easy to imagine a similar problem (somebody stuck on XP because for e.g., a device driver exists only for XP). For instance, an old laptop of mine has a webcam driver only for Vista but not Windows 7.

http://www.sevenforums.com/drivers/43156-dv6000-webcam-drive...

>I understand where you're coming from, but people have the exact same problem with Windows (and maybe Mac also; but I don't have much experience with Macs).

No, they do not have the same exact problem of package managing. Preferring XP over Vista/7 whatever, is not the "exact same problem".

>I personally LOVE LOVE LOVE that all my apps are updated by the same program. Instead of the Windows/Mac way of each app running it's own updater.

Well, Mac now has the Mac App Store, which handles updates for App Store installed programs.

But the problem is not about all programs being installed by the same program. It's about installations being transparent to the end user and not wrecking havoc. Also, not being inter-dependent.

Even Mac apps that update with their own updater, are autonomous units. At most, the app itself breaks.