3 ms·
> Many rails apps work with a simple untar because they include their libraries in vendor. I'm not a ruby guy, but Luke Kanies (creator of puppet) is, and wrote
by FooBarWidget 17y ago
> Many rails apps work with a simple untar because they include their libraries in vendor. I'm not a ruby guy, but Luke Kanies (creator of puppet) is, and wrote a great post on why this is stupid
Is it? Rails apps have to work on more platforms than just Debian. You can embrace apt-get and make Debian users happy but you'll piss off everybody else. I wouldn't call the decision to vendor stuff "stupid", but "necessary".
I've noticed that most users actually prefer that an app bundles its dependencies because it reduces installation hassle. Some users literally begged me to vendor a certain library because installing it themselves is too much of a pain. Only a select group of vocal Debian users care about enforcing everything through apt.
- californiaguy 17y agoIn my experience Debian users are generally dorks who have very little concern for how things are done in the real world.
- forkqueue 17y agoI can only assume you didn't read Luke's article, with which I wholeheartedly agree. The crux - what do you do when you need to depend on non-Ruby libraries? Include the binaries of these? What if they depend on glibc (which they probably will) - do you stick that in vendor too? You'd be better off shipping whole virtual machine images as your 'application' if that's the route you want to take. All modern Linux distributions - RHEL, SuSE, Ubuntu and yes Debian too have packaging formats to handle dependencies. It's up to the distributions to package the apps, as a software developer I think you should be shipping just a plain tarball, which lists its dependencies but doesn't include them. My main point was the idea that Django apps shouldn't have dependencies is wrong. Django is awesome mainly because of the ability to easily build on other apps. Doing this creates dependencies, and there's nothing wrong with that.
- FooBarWidget 17y agoI did read his article, and I don't agree. He's only considering his own world without recognizing that Rails needs to consider everybody else too. As for native code, yes that would be a problem, one that hasn't been solved yet. But luckily most dependencies are pure Ruby, and only few libraries depend on native code. Nobody's suggesting vendoring everything all the way up to the kernel, but vendoring a reasonable amount of dependencies does not seem evil to me. I don't see any point in taking an extremist approach of vendoring absolutely nothing, it will piss off a lot of users. Also, if distributors will package the apps anyway, then why not vendor libraries? Distributors will remove vendored libraries as they see fit anyway. With this in mind it would make more sense to me to vendor libraries, because people who grab the source tarballs are likely users of platforms with no decent package management.