Hacker News new | ask | show | jobs
by AnIdiotOnTheNet 2854 days ago
But there is quite a lot of thought given to keeping applications that ran on previous Windows versions running on newer ones, without recompilation. And bundling all the non-system-provided dependencies with the application actually is a ton more flexible. In many instances, you can put the application's folder on a thumb drive and run it from there on a different computer. Try that with Linux applications without jumping through a ton of hoops, the first of which is "how do I know which files belong to this application, since they're spread all over the file hierarchy and mixed in with everything else?".
1 comments

I don't know why you're trolling all over this thread, but this makes it sound like you don't know what you're talking about.

Why do you think you can't ship your non-system-provided dependencies on Linux? This is the common complaint about Linux, that you have to bundle a bunch of dependencies if you want it to run everywhere. You can also ship a single directory containing your application that is runnable wherever you drop it.

> "how do I know which files belong to this application, since they're spread all over the file hierarchy and mixed in with everything else?"

Just an FYI, ldd <binary> will tell you the libraries you depend on, but if you're shipping all non-system-provided dependencies, there shouldn't be anything that points outside of your directory other than libc.

> Why do you think you can't ship your non-system-provided dependencies on Linux?

I don't think that. It's just that:

> but if you're shipping all non-system-provided dependencies, there shouldn't be anything that points outside of your directory other than libc

In other words you have to ship most of what other operating systems consider to be part of the base system, because Linux doesn't provide a standardized basesystem at all. Hell, even depending on libc can be a problem, NixOS even manages to break AppImage because of how ld.so works, and to top it all off glibc abhors static linking.