News for hackers. Stuff that matters.
Re:Thank you, Ubuntu by IgorPartola on Saturday October 02, 2010 @09:04AM (#1750357)
I keep try to evangelize the fact that things like apt are one of the biggest wins for the various UNIX-like OS's. In Windows world installing software takes both finding it and configuring the installer. On a Mac you have to at least find it. On Ubuntu/Debian/etc you just have to know the name (or you can search a central database). Also no more Java/Flash player/Acrobat Reader "needs to be updated" messages. You update everything at once. And it can all be scripted. And you can update your entire OS to the next major release in three commands. I can go on and on.
Re:Thank you, Ubuntu by code_duck on Saturday October 02, 2010 @12:41PM (#1750772)
It's so true - when I configure a Windows machine I can't believe what a pain it is to go find and install all the needed software (go to web page... click... find download area... download... double click... click 800 more times...). And then, uninstallation is a mess. That's one of the things that I think is so silly when people say Linux isn't user friendly, that the package management is really so amazing, and people who have never used Linux really just have no idea.
Re:Thank you, Ubuntu by bryanh on Monday October 04, 2010 @12:00PM (#1756090)
Check out http://ninite.com/. The name is extremely forgettable (I have it bookmarked under mass installation), but it lets you install dozens of Windows apps with one click!
Re:Thank you, Ubuntu by fauigerzigerk on Saturday October 02, 2010 @01:12PM (#1750837)
The package manager concept is actually what I hate most about Linux systems and Ubuntu's strategy to not let you upgrade some packages without upgrading the OS itself is insane.

Packages tend to thrust some completely idiosyncratic configuration scheme down my throat that is documented nowhere and that creates conflicts of its own. They don't just solve dependencies they encourage dependencies because they are supposed to be resolved automatically anyway. But they're not. Things break all the time. The Linux dependency hell has far surpassed the infamous Windows DLL hell of the 90s.

I was called to help people fix their Ubuntu installation after some package upgrade had uninstalled half the system. I had an upgrade replace a working but proprietary wifi driver with a non functional "free" one, etc, etc.

Most of the problems I ever had with Ubuntu were caused by that completely broken package management idea. If I want Python 2 and 3 on the same system I can't have a package manager tell me that's not supposed to be when I know full well that it's no problem.

Re:Thank you, Ubuntu by dkarl on Saturday October 02, 2010 @01:53PM (#1750918)
They don't just solve dependencies they encourage dependencies

This is a good thing. Developers' attitude toward dependencies gets very lax when it's too much work to declare them or too much work for the user to satisfy them. Then you get into situations where you install a piece of software and 90% of the functionality is broken, because the developer was "considerate" enough not to "force" a bunch of dependencies on you, so you resort to Google to find the real dependencies, which of course aren't available for your distro. Apt gives developers a flexible way to declare different kinds of dependencies, and the Debian and Ubuntu distro repositories give them confidence that the dependencies will install smoothly for users.

I had much more difficulty with undeclared dependencies back in the day than I have with excessive dependencies now. It's just wrong for software to easily install in a mostly broken state. If you want broken, partly-working software, you should have to do extra work to achieve that, not the other way around.

Re:Thank you, Ubuntu by Gormo on Saturday October 02, 2010 @02:33PM (#1751033)
How about statically-linked builds? Hard drives and memory are cheap compared to the annoyances of having to manage dependencies on the user's system.

Package management is a solution to a problem that doesn't need to exist in the first place.

Re:Thank you, Ubuntu by IgorPartola on Saturday October 02, 2010 @02:43PM (#1751060)
What do you propose instead? So far package management solves these problems for me:

  1. Upgrading the entire OS at once.
  2. Easy updates.
  3. Almost never having any issues with incompatible software. When issues arise I can easily roll things back or wait until they are fixed.
  4. Never having to hunt for software on the web.
  5. Ability to script server/workstation deploys.
  6. Never having to spend more than 5 minutes on maintaining my workstation.
That last point is huge. How long would it take you to update Java, Flash Player, Adobe Reader, IE and install SP# on Windows?

If there is an alternative way of approaching it I'd be very happy, since it can only be an improvement upon already stellar apt/yum/BSD ports, etc.

Re:Thank you, Ubuntu by Gormo on Saturday October 02, 2010 @03:04PM (#1751100)
I'm only speaking to the dependency-resolution function that makes package management necessary on certain OSes. Public application repositories sharing a standard interface still have some nice features.

But if the applications are all statically-linked, I don't have to worry about dependency conflicts, and some things are a lot simpler, e.g. copying the binaries off to a flash drive to take them to another system, or running two different versions of the same software simultaneously.

On Windows, I don't usually even run installers anymotre; I extract the installers, collect all of the dlls into the application directory, and compress everything with UPX. Once the program is running out of a self-contained directory, I can run it off a thumbdrive, copy it to my Dropbox, etc. Plus I have the option of not updating software when I prefer not to.

Re:Thank you, Ubuntu by IgorPartola on Saturday October 02, 2010 @03:32PM (#1751160)
I don't really see how your approach to installing Windows applications can scale. Also, pinning will allow you to hold back any packages you'd like.

The only potential problem I see is statically-linked applications issue. However, I think in the case where libraries are open and shared amongst many applications/other libraries, it makes no sense to use static linking. Its advantages are that you don't need to worry about dependencies but that "is a solution to a problem that doesn't need to exist in the first place" since package management takes care of these issues.

IMHO it's better to spend 30 minutes once a year resolving an issue that arose when a Debian/Ubuntu repository got screwed up for a short period of time, than to constantly try to solve the problem of managing software installation/upgrades.

Re:Thank you, Ubuntu by vog on Sunday October 03, 2010 @05:37AM (#1752426)
Under Windows and OSX, statically-linked or self-contained packages are indeed the only way to stay sane when deploying an application.

However, this comes at a price: You'll always have to provide a newer version of the application whenever a serious issue is fixed in one of your dependency libraries. This means extra work for you. Also, you'll have to take care of an auto-upgrade mechanism.

On systems with a package manager, you'll only have to provide updates if you fix an issue in the application itself. You also don't have to write an auto-upgrade mechanism. Just upload a new package to your server.

However, if you don't care that much about users' security, statically linking is indeed a lot less work than using a package manager.

(FWIW, I'm the maintainer of Mingw-cross-env (http://mingw-cross-env.nongnu.org/). This is a project that provides a cross-build toolchain for statically linked Windows applications. It builds a cross compiler and lots of free software libraries. We have that kind of discussion from time to time on our mailing list.)

Re:Thank you, Ubuntu by koenigdavidmj on Saturday October 02, 2010 @02:39PM (#1751051)
Then some central library has a security hole and half your system has to get updated, instead of just one thing.

Also, you might like http://sta.li/ ;)

Re:Thank you, Ubuntu by Symmetry on Saturday October 02, 2010 @05:23PM (#1751392)
Generally speaking, two vulnerable apps is less than twice as bad as one vulnerable app - and if a centralized repository means that all of your apps are fixed sooner they its a big win.
Re:Thank you, Ubuntu by Gormo on Saturday October 02, 2010 @03:08PM (#1751110)
True enough, if the security hole is in a library that half of the software on my system is using. But most applications have fairly frequent update cycles for their own codebase anyway, and it's just as likely that an update to a central dynamically-linked library might introduce a new security hole that instantly compromises half of my system at once.

Thanks for the link to sta.li, I'll check it out. What I'd really like to see is a Linux distro that managed applications the way OSX does - every program is contained in its own directory.

Re:Thank you, Ubuntu by pyre on Sunday October 03, 2010 @01:49AM (#1752197)
IIRC, they still dynamically link against system libraries. It's just that OSX isn't a moving target with respect to what is expected to be in the system in it's 'base' state of a specific version. So you dynamically link against everything that should be in the system in the 'base' state, and then all other libraries need to be self-contained in the .app directory. The problem with this on Linux is that: 1) the 'base' configuration is a moving target that varies across vendors and 2) most of the libraries/etc that would make up that 'base state' are things that people would want to upgrade/modify/whatever (thereby messing up your 'base state' that you were supposed to be able to rely on) (You don't have this on OSX because Apple is the one that controls most of the things in the 'base state').
Re:Thank you, Ubuntu by astine on Sunday October 03, 2010 @09:49AM (#1752701)
"What I'd really like to see is a Linux distro that managed applications the way OSX does - every program is contained in its own directory."

That exists, it's called Gobo Linux. I've never touched it, but you can give it a try:

http://www.gobolinux.org/

Re:Thank you, Ubuntu by Symmetry on Saturday October 02, 2010 @05:21PM (#1751384)
Hard drive space is cheap but bandwidth less so. Having only one copy of a library makes downloading, installing, and updating your OS much easier.
Re:Thank you, Ubuntu by pronoiac on Saturday October 02, 2010 @02:01PM (#1750942)
Ubuntu's strategy to not let you upgrade some packages without upgrading the OS itself is insane.

You can; it's called "pinning:" https://help.ubuntu.com/community/PinningHowto

If I want Python 2 and 3 on the same system I can't have a package manager tell me that's not supposed to be when I know full well that it's no problem.

Let me check; here on Jaunty I can separately install python2.4, python2.5, python2.6, python3.0, & python3.1.

I don't doubt that you've had problems with the package managers, but, um, I think you're doing it wrong.

Re:Thank you, Ubuntu by fauigerzigerk on Saturday October 02, 2010 @03:09PM (#1751111)
I guess what I'm "doing wrong" is to expect sensible out of the box behaviour. I'm fully aware that I can make it do whatever I want to if I put enough work into it. That holds for almost everything in life. What's limited in my life, though, is time.

Installing Python 3 alongside the old version didn't work for a long time after Python 3 came out. If it works now, that's fine. I compiled my own Python 3 a long time before it finally appeared in my system's package manager.

[Edit] And one more thing. I'm not a sysadmin and my interest in system configuration and change management is very limited. But I've been using Linux for a very long time, so if I'm still doing it wrong then many people will do be doing it wrong and that means there's something wrong with the way it works.

Re:Thank you, Ubuntu by s3graham on Sunday October 03, 2010 @04:38AM (#1752389)
On the contrary, you're acting like you desperately want to be a sysadmin by demanding to control which specific version of each package is installed.
Re:Thank you, Ubuntu by fauigerzigerk on Monday October 04, 2010 @10:57AM (#1755826)
No, I want developers to be in control of dependency management.
Re:Thank you, Ubuntu by india on Saturday October 02, 2010 @03:56PM (#1751215)
> The package manager concept is actually what I hate most about Linux systems

You really should give Slackware a try. None of that sophisticated package management nuisance[1] and everything just works!

[1] http://en.wikipedia.org/wiki/Slackware#Package_management

Re:Thank you, Ubuntu by dinkumthinkum on Saturday October 02, 2010 @04:02PM (#1751228)
I'm not sure I would say "everything just works" and Slackware in the same sentencd!
Re:Thank you, Ubuntu by rtra on Saturday October 02, 2010 @09:26PM (#1751834)
I'd say "Everything just works as expected"
Re:Thank you, Ubuntu by fungi on Saturday October 02, 2010 @10:46PM (#1751951)
> Ubuntu's strategy to not let you upgrade some packages without upgrading the OS itself is insane.

you're doing it wrong

Re:Thank you, Ubuntu by demallien on Saturday October 02, 2010 @09:30AM (#1750392)
yeah, until the repository maintainers mess up, create two packages that are in conflict, and yet both installed on your system, and now every attempt to update your software fails because you have out-of-date dependencies that can't be updated due to the conflict.

In case you hadn't noticed, I'm a bit bitter about my fedora install at the moment :)

That said, I think you overestimate the delta between OSX and the various linuxes. On the Mac, as with linux, if you want to use a package that isn't part of the core system, you should package it into your app/lib yourself. The big advantage that the linuxes have is that they have a far bigger range of packages in the repository than you have in a mac's standard install. But by the same token, you can't have as much confidence that all the libs play well together, because they haven't been tested as thoroughly as Mac OSX's set of libs...

Re:Thank you, Ubuntu by spacemanaki on Saturday October 02, 2010 @09:48AM (#1750420)
I'm not sure I follow your suggestion of "package it into your app/lib yourself". Are you suggesting manually installing stuff that isn't available from Macports or Fink? Or something else? For the record I'm pretty green when it comes to Unix sysadmin stuff so go easy...

I'm genuinely interested - I'm a new Mac user who came from Linux and my biggest issue on the Mac so far is that package management isn't as good as apt. There was a discussion on HN and I was disappointed to find a lot of other people have had the same feeling.

Re:Thank you, Ubuntu by mnutt on Saturday October 02, 2010 @11:45AM (#1750645)
You should check out Homebrew for Mac. I've found it a little bit more reliable than Macports, and it's actually reasonably easy to create your own packages. To create a new package you can just `brew create http://foo.org/crufty-package.tar.gz` and 90% of the time the generated recipe just works and the other 10% it requires you to tweak the (quite readable) ruby file.

Also, while Homebrew has an official repo, it's managed through git and hosted on Github. So for any given piece of software, chances are pretty good that someone out there has packaged it.

Re:Thank you, Ubuntu by thristian on Saturday October 02, 2010 @10:26AM (#1750486)
For what it's worth, I'm an ex-Mac user who went back to Linux because I missed apt. Of course, I do a lot of hobby programming and general messing around with open-source software; if your use-cases tend more towards pre-packaged software, you might get on perfectly well.
Re:Thank you, Ubuntu by _delirium on Saturday October 02, 2010 @01:17PM (#1750850)
I do sort of both by running Debian inside Virtualbox on my Macbook as a dev environment. I especially like being able to install -dev packages to get header files/libraries into the right places, whereas on OSX, if you want to compile software that depends on anything that didn't come with XCode, it's a mess of manually extracting things and passing pathnames.

I don't go the whole way and just install Debian on the machine mostly because having OSX handle things like the touchpad driver, hibernation, wifi, etc., is less hassle, and I also like OSX as a desktop environment (e.g. being able to use multitouch gestures in the browser). But Linux in a VM is definitely a nicer experience imo than fink was, as a way of getting a parallel Unix CLI userland onto OSX.

Re:Thank you, Ubuntu by technomancy on Sunday October 03, 2010 @11:26AM (#1752859)
> I don't go the whole way and just install Debian on the machine mostly because having OSX handle things like the touchpad driver, hibernation, wifi, etc., is less hassle

Have you tried this recently, or do you just say that because it's the stereotype? Because it's been over three years since I had any hardware trouble with Ubuntu. These days I have more issues on my friend's OS X Macbook (no drivers for 3G modems out of the box) than I do on Ubuntu where everything just works.

Re:Thank you, Ubuntu by spacemanaki on Saturday October 02, 2010 @12:41PM (#1750776)
I definitely haven't written off switching back to Linux - if I ever do it will probably be because of apt (and maybe xmonad). For now, installing the vanilla versions of stuff like ruby 1.9, SBCL, mit-scheme from Macports, and pre-packaged versions of MacVim and emacs are working for me but that may not always be the case...
Re:Thank you, Ubuntu by jfb on Saturday October 02, 2010 @01:14PM (#1750843)
Homebrew is the best, but I always end up building everything I need from scratch, because I'm paranoid that some idiot package maintainer will require some tiny library that will necessitate building and installing X11, which software is largely the reason I use a goddamn Macintosh in the first place.

Also, Interface Builder.

Re:Thank you, Ubuntu by bravo_sierra on Saturday October 02, 2010 @11:43AM (#1750640)
MacPorts can be hard to grep if you haven't used a BSD before (not that it's great anyway), and Fink is a bit more painful than apt et al.

If you're on OSX, the ace up it's sleeve is Homebrew[1]. Definitely the easiest package management system anywhere.

[1]: http://github.com/mxcl/homebrew

Re:Thank you, Ubuntu by spacemanaki on Saturday October 02, 2010 @12:43PM (#1750779)
I'd forgotten about Homebrew but found it again when I went hunting for the earlier discussion on HN... I'll definitely be checking it out soon, thanks.
Re:Thank you, Ubuntu by retube on Sunday October 03, 2010 @05:42AM (#1752431)
fedora- are you talking about rpm? Yes, this is a nightmare- package conflicts are common-place, and generally a real b*tch to fix. RPM was the main reason I ditched Fedora and switched to Ubuntu. In 3 years I don't think I've ever had an install failure or conflict or any problem with apt-get. It's always worked flawlessly.
Re:Thank you, Ubuntu by swies on Saturday October 02, 2010 @01:56PM (#1750929)
http://ninite.com is getting close to apt-get for Windows. We're working on a Mac version too.

Things are better on Linux, but not all rosy. Installing Dropbox, for example, is a surprisingly crappy experience (windows popping up, separate proprietary daemon download, etc). That, and way more user requests than you'd imagine, is why we have http://ninite.com/linux now too.

Re:Thank you, Ubuntu by IgorPartola on Saturday October 02, 2010 @02:37PM (#1751045)
Certainly looks promising. For some reason it reminds me of Portable Apps.

As for Dropbox, yes, I recently went through installing it. Terrible experience on Ubuntu. I think the reason is mostly that it is using a proprietary daemon. A FUSE driver seems like a much better idea, and if they released it under an open license, it would be as easy as apt-get install dropbox.

Re:Thank you, Ubuntu by wyclif on Sunday October 03, 2010 @08:16AM (#1752582)
I've had nothing but a completely smooth experience with Dropbox on Ubuntu. YMMV?
Re:Thank you, Ubuntu by IgorPartola on Monday October 04, 2010 @08:52AM (#1755474)
I tried to set up Dropbox without any sort of a GUI. I know that their .deb package is partially an extension to Nautilus, and since I run Xubuntu I don't have that installed. Instead I followed the poorly written instructions at http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall which resulted in a .py file being invoked via ~/.profile which still creates a GUI window to ask you for your information, etc. Why not have a standard daemon with a ready-made init.d script rather than this madness?
Re:Thank you, Ubuntu by robgough on Sunday October 03, 2010 @10:44AM (#1752783)
I use ninite all the time (it's brilliant!), but only ever for initial installation. Does it handle updating apps?
Re:Thank you, Ubuntu by swies on Sunday October 03, 2010 @12:23PM (#1752978)
Yes, just run the installer again (they always get the latest versions, regardless of when they were made). We're looking into building some sort of dedicated update checker too.

Glad to hear you like it.

Re:Thank you, Ubuntu by mdwrigh2 on Saturday October 02, 2010 @02:16PM (#1750990)
OS X has a package manager, it just isn't installed by default. Checkout MacPorts or Homebrew.
Re:Thank you, Ubuntu by IgorPartola on Saturday October 02, 2010 @02:33PM (#1751032)
Yes, I am aware of these projects. They, however, don't have the advantages that things like apt have. For example you cannot use them to update your entire OS. Instead you must order DVD's from Apple, and then boot from them. Yes, installing certain software this way is easier, but it is not nearly as convenient as having the entire OS built around it.

On the other hand, existence of these projects indicates that Mac users are dissatisfied with how installing/updating/maintaining software is done in Mac OS X and are looking for something better.

Lastly, I don't necessarily think that apt is end-all be-all silver bullet answer to all questions. I just think that out of the available technologies today, OS's that are built around package management work better and are easier to use than anything else out there.

Re:Thank you, Ubuntu by meric on Sunday October 03, 2010 @11:09AM (#1752827)
The existence of these projects is necessitated because users want to use unix-y programs but they don't know how to compile themselves. I don't use either of homebrew or macports anymore. I used to have them but then when I want to make something that depends on something I got from homebrew or macports it doesn't quite work and I end up downloading the source and compiling it into a framework using XCode myself anyway.

I've done this so many times it doesn't take me more than a few minutes to get all the dependencies in order. (I can re-use frameworks I've made before). The frameworks are embedded into the application bundle and can be used on any other computer that can run universal binaries. That makes the app portable, too. The beauty of all this is that other computers don't even need a compiler installed and they can still use the same programs I built. Of course it'll never beat apt... but it's the easiest in terms of getting that DVD to ipod video converter onto my aunt's computer.

I believe you're right. If you want package management the OS has to be built around it, otherwise it won't work quite right (unless you put time into it, of course).

I still will use macosx though, it needs less configuration and everything just works; or maybe I'm just too used to it to use anything else. Mac OS X is built for consumers and developers who develop for consumers who use Apple products. For these consumers and developers Mac OS X is the best there is. Unfortunately I think that's it. Terminal is still good, though.

To upgrade your OS, you only need to click "Restart" when software update tells you to. The only time you need the DVDs is when there is a major version out, i.e "Leopard", "Snow Leopard", etc.

Re:Thank you, Ubuntu by dinkumthinkum on Saturday October 02, 2010 @04:01PM (#1751225)
Bah, it's not really that easy. I remember having an annoyingly difficult time getting a working up-to-date Glade on the latest LTS version. Sure, it worked on the latest Ubuntu just fine, but shouldn't we able to have some popular applications up-to-date without a big mess? But yeah, in general its pretty great.