miguno/wirbelsturm

External dependencies on Mac OS

bzz opened this issue · 5 comments

bzz commented

Is there a way to use this software without bringing in rvm and one more C++ compiler?

Right now ./bootstrap script tries to install a ruby version using rvm, wich brings gcc4 from homebrew.

May be that should be documented somewhere.

Yes, as you said ./bootstrap will do a couple of things -- including managing a sandboxed Ruby/rvm/gems environment -- to make sure everyone has the same environment to run Wirbelsturm (and thus Vagrant, Puppet) on the host machine.

That being said I agree that this setup doesn't need to be mandatory. For instance, if your host machine happens to have a different Ruby 1.9.x installed you should still be able to give it a go, albeit that means if you run into version conflicts etc. you're on your own.

How would you improve the bootstrapping process? Would an option ./bootstrap --skip-ruby-bootstrap help, that would disable installing Ruby/rvm/bundler/gems?

Adding such an option per se is not a big deal, but rather how to unambiguously explain users what they need to do to install any required gems manually (see e.g. Gemfile). So in other words, how to make the "user interface' of adding such an option as simple and intuitive as possible.

PS: Do you know how gcc4 is actually being introduced as a dependency by rvm? I checked the sources of rvm-installer but didn't find a reference to homebrew.

bzz commented

It looks like Ruby 1.9 binaries do not exist in rvm (at least for osx 10.9), so it tries to compile one. Somehow clang does not work (isn't officially supported in 1.X?) for building Ruby, so rvm installes gcc with hombrew or mac-ports.

Workflow for users with existing ruby available (i.e using rbenv) seems very reasonable to me.

Would this be enough to take care of dependencies?

./bootstrap --skip-ruby-bootstrap
bundle install

And this part https://github.com/miguno/wirbelsturm#install-wirbelsturm could be updated with fact that RVM is used in default bootstrap procedure + one new sub-section on the case when the user is in charge of managing ruby environment on his own.

Does this make sense?

Yes, it does -- thanks for the follow-up.

Do you want to take a stab at this (particularly so that you could also test whether it suits your needs/setup), or shall I?

bzz commented

Sure, I'll give it a try.

Many thanks, Alexander. See #2 for further details on the actual changes that were merged.