Strangely, while mentioning Damn Small Linux, geek.com doesn't mention that it's the same person, Robert Shingledecker, behind it and Tiny Core. Apparently, there's been some drama involved (http://www.shingledecker.org/andrews.html) and Shingledecker had to leave Damn Small Linux to stagnation, while Tiny Core is reincarnation of his ideas on a new level.
What's the smallest conceivable reliable distro I can host Rails (or, better, JRuby/Rails) on? Getting it up and running on Tiny Core seems like a Project.
I think it quite might be Tiny Core Linux. Tiny Core is meant to be not just smallest possible distro for its own sake, (an a lot work has gone into this), but the smallest possible core on top of which all the necessary functionality should be mounted.
You'll need a C library, a small handful of C libraries, a web-server and the Linux kernel. SSH would be good, possibly git as well depending on the way you deploy. Ignoring any need for a GUI, I think you could get a rather small system.
If you were going to compile it yourself, it's just missing M4, autoconf, automake and OpenSSL. Otherwise you can use it's Appbrowser (ab in micro, the CLI version) to install Ruby in about five minutes.
Quite true. I suppose in my post I really was assuming starting off from brass tacks, cross compiling from a larger system. You are, of course, correct: if the system must be able to bootstrap itself a more expansive base is needed.
I also neglected to mention any sort of shell. Dash, I believe, is POSIX compliant and rather tiny.
Depending on your disk space requirements and how comfortable you are with building your own distro, you might have an easier time starting with a more full-fledged Live CD and stripping it down rather than starting with something stripped and building it up. It's fairly easy to remaster a Knoppix or even Ubuntu live disc by removing packages you don't need. If you search for "Knoppix remastering," you'll even find quite a few community remastered cds which you could potentially start from.
Is your time so lacking in value that you'll expend a substantial amount of time rolling and maintaining a custom distro of Linux that'll save maybe 50-150 megabytes of RAM? Are you in the web hosting business or something?
I was speaking in RAM, not the disk-space of a VM. I didn't know the context of what you were looking for.
Is there some reason you can't accomplish this using RVM and a dev database? Any specific software that makes you think it isn't practical to do so?
Virtualization seems a little heavy duty given the options for sandboxing python and ruby apps these days.
Edit: You really really don't want to cope with the raw horror and pain of a minimalist kernel that doesn't provide any of the things you usually take for granted.
It provides a Mac OS X app that includes all of its dependencies in the app - including Rails.
If you're patient, eventually MacRuby will support Rails and can generate compiled .app bundles. But if you need it NOW, I'd look into how Instiki works.
Joyent came out with such a product in 2007, called Slingshot. I remember it being quite slow (…for what was supposed to be a desktop app), but functional.
this is really the right answer, as it is the exact solution given what tools are available for solving the problem of managing development. but what is the difference between the startup time in this video, and the start up time of an ide?
i can see a developer workflow where you start up the vm, create your example function or class of what you are solving, close the vm, and let some script find the new file, check everything in, etc...
i don't feel it would be much different than having a standard install of an ide for a group of devs, but in this instance you could have all the customization of an entire OS, plus creating a single app that people can throw away and start from square one, or even check in the whole OS install as a version?
i agree this is a lot of overhead, but i think it is okay someone is exploring this, i feel it is very interesting, and a pattern of abstraction we should consider more. this is how i see the small EC2 images i've been playing with.
What is? I'm having a really hard time understanding you.
>a pattern of abstraction
What pattern, what abstraction? An abstraction is a distinct singular entity, a pattern is multiple related datum with a a correlation in form or substance.
1. video - there is a video in the original post
2. job - i have to explore on the job all the time, i don't have the stuff at home
3. creating a vm for making dev environments, what i was thinking this part of the thread is about
4. abstracting away the entire os setup and seeing that combination of os+app as just an app, i would consider that an abstraction, and not just a pattern, but the pattern being trying to think along these things of what can be abstracted in this way. not trying to combine or confuse the terms.
I think my typical server setup idles at 30~40mb of ram before I add services.
At the moment with nginx (with passenger, no active rails processes), cloudkick-agent, a fat irssi and some php-fastcgi workers I'm only using 122mb of ram. I don't know how much ram you really have to shave off.
More or less my point. the ~150 additional megabytes was if they were deploying with Ubuntu + some kind of java server management software (worst case scenario for a base deployment template?)