Does anyone here have specific problems? From my experience, it really has been a matter of "gem update --system; gem install rails".
Does anyone here have specific problems? From my experience, it really has been a matter of "gem update --system; gem install rails".
That'll throw a permissions error on a default OS X install-- and your Rails newbie will definitely not know that that means "you should really use rvm".
With that said-- a shell script that installs homebrew, git, rvm, the latest ruby, the latest rails, and a handful of useful gems, then drops you right into a shell of you brand spankin' new Rails (and Heroku!) project seems... pretty straightforward. Dealing with the common edge error cases and making it look nice and user friendly might take a couple hours. I'm curious to see where the time gets spent on this project.
In fact, it was so messed up, it motivated me to go out and buy a new Macbook (I needed a new computer anyway, but it provided a major impetus to go out and get one).
And that's just me. Even worse is the fact that I work on a lot of Rails projects with a designer who lives in Montreal, which is a good six hour drive from where I live. I've helped him get Rails set up on his computer, but it has not been easy - far from it. As a non-techie his computer is prone to all sorts of weird shit, he hates the CLI, he needs to be walked through, line-by-line, any situation involving some weird gem dependency nonsense - it's a horrible waste of my time. Imagine trying to debug someone's effed-up gem environment via a laggy screen-sharing connection while you're on deadline - it's awful!
To sum it up: this is a project worth supporting and I'm going to support it as soon as I click the 'reply' button on this comment form.
Generally speaking, you now need a compiler. If not to install something other than a quite old system ruby, then to install common gems like nokogiri.
XCode seems to change significantly every release. Not long ago, you had to download it, or get it from your system CDs. Then you had to buy it from the app-store. Then you got it for free from the app-store. Then you got the installer for free from the app-store, and had to run the installer. And today I think you get the installer, which you run, and then you go through a series of menus to get to "install command line tools" (like gcc).
Once gcc is there, then you need a ruby. There's RVM and rbenv. Those need to be found, installed (by running a curl command piped through bash), and then a ruby needs to be installed. I use RVM, which is easy enough for me, and it does install bundler by default (which is good).
Once you have a modern ruby, you probably want a database other than sqlite. For that, you usually need homebrew. Again, install homebrew, and then have homebrew install postgresql/mysql.
At this point you are almost ready to install the rails gem.
Oddly, a lot of the newer complexity has less to do with Rails, and has more to do with the Ruby ecosystem getting both older and more complex at the same time.
Every time I help a new developer get started with the rails environment, I too am amazed at how much has changed since I setup my own laptop one year ago.
That is, except for Lion and XCode 4.2/4.3, which caused me about three lost days. 'rvm get head' and 'rvm install 1.9.3-head' fixed that, though.
But then again, all this seems easy to me, can't speak for people entirely new to development.
It is a different story for someone completely new. When I have time to sit down and help my brother and friends interested in getting started building websites, I recommend Rails (or Sinatra these days). The entire first session is usually devoted to helping configure their environment, and explaining the various tools they may need to know about when they are on their own. This is before even getting to the bit about learning HTML, CSS, Javascript, and Ruby. All of this is usually a complete waste of time because they have most likely lost me after typing in "cd" or "mkdir" for the first time. Yehuda's proposal nicely solves the configuration step for a beginner (the only class of developer for whom I think it is a seriously debilitating problem), but that is really the least of worries for someone new to web development in this day and age.
Perhaps part of the confusion is that there are a number of old blog posts that you'll dig up via google, and if you make the mistake of following an older one, you'll run into problems. I made this mistake trying to get rails set up on Ubuntu before I knew about rvm, and it was pretty painful.