Best Practice setup Development environment OS X and Linux

Hi,

I am new to Ruby and Rails (but experienced developer) I use both a
Linux workstation and MacBook Pro OS X to do development work. I wanted
to know what the recommended setup would be for a flexible development
environment? I see there are many releases of ruby and rails. So I
have setup rvm (Ruby Version Manager) to allow configuring and switching
between different rubies... But I am concerned the rvm environment and
gems etc. are all configured for the local user which could introduce
issues when integrating with system wide resources like Apache2, MYSQL
So I am overwhelmed... Your suggestions are appreciated.

Best Regards

Dale Ackerman

Hi Dale,

Previously, I've just used Ruby 1.8.7 and an upgraded copy of the base
RubyGems install that came with Snow Leopard. However, I wanted to
take advantage of 1.9.1's speed improvements, and since I'm starting a
new app, now seemed like the appropriate time to switch, and start
writing for the new version of Ruby. Currently, I've got 1.9.1
installed under my /opt directory, and have symlinked ruby1.8 to the
default install, so I can switch whenever I want.

There is one issue, though - I have to maintain two different gem
directories....

Nicholas

Dale Ackerman wrote:

Hi,

I am new to Ruby and Rails (but experienced developer) I use both a
Linux workstation and MacBook Pro OS X to do development work. I wanted
to know what the recommended setup would be for a flexible development
environment?

What sort of flexibility do you want?

I see there are many releases of ruby and rails. So I
have setup rvm (Ruby Version Manager) to allow configuring and switching
between different rubies...

Why bother, unless you actually need the bleeding-edge 1.9 (hint: you
probably don't yet).

But I am concerned the rvm environment and
gems etc. are all configured for the local user which could introduce
issues when integrating with system wide resources like Apache2, MYSQL
So I am overwhelmed... Your suggestions are appreciated.

Best Regards

Dale Ackerman

You're overcomplicating things. My setup:
MacBook Pro -- Apple's Ruby 1.8.7 (installed as part of Apple's dev
tools), appropriate gems, KomodoEdit, iTerm, Fink.
Typical server: Ubuntu, Passenger, Ruby Enterprise Edition, either Nginx
or Apache.

This is really all you need.

Best,

Marnen Laibow-Koser wrote:
[...]

You're overcomplicating things. My setup:
MacBook Pro -- Apple's Ruby 1.8.7 (installed as part of Apple's dev
tools), appropriate gems, KomodoEdit, iTerm, Fink.
Typical server: Ubuntu, Passenger, Ruby Enterprise Edition, either Nginx
or Apache.

This is really all you need.

Or rather, almost all you need. I forgot to mention PostgreSQL (I don't
recommend MySQL) and Webmin.

Thank you for the reply. It is good to know that 1.8.7 is O.K. So Just
use
WEBrick for development then?

There are so many releases and not much in the way of info on what to
start with. I guess I will remove the RVM package from my mac. Oh I do
have a Ubuntu Linux machine would it be recommended to set it so I can
understand/test deployment?

Thanks

-dale

Dale Ackerman wrote:

Thank you for the reply. It is good to know that 1.8.7 is O.K. So Just
use
WEBrick for development then?

That's what I do. If I had a dedicated dev machine, I might put
Passenger on it.

There are so many releases and not much in the way of info on what to
start with.

Many releases of what? There are only a couple of versions of Ruby in
active use, and it's usually best to use the current Rails gem.

I guess I will remove the RVM package from my mac.

Yeah, you may need it in future, but until then, keep it simple.

Oh I do
have a Ubuntu Linux machine would it be recommended to set it so I can
understand/test deployment?

Sure! (And Capistrano + Git is probably the best way to do that.)

Thanks

-dale

Best,

Nicholas Young wrote:

Hi Dale,

Previously, I've just used Ruby 1.8.7 and an upgraded copy of the base
RubyGems install that came with Snow Leopard. However, I wanted to
take advantage of 1.9.1's speed improvements, and since I'm starting a
new app, now seemed like the appropriate time to switch, and start
writing for the new version of Ruby. Currently, I've got 1.9.1
installed under my /opt directory, and have symlinked ruby1.8 to the
default install, so I can switch whenever I want.

That's probably what I'll do when I start worming with 1.9 too.

There is one issue, though - I have to maintain two different gem
directories....

Well, I suppose you could symlink those too, although I don't know if
that would cause compatibility problems.

Nicholas

So I am overwhelmed... Your suggestions are appreciated.

Best Regards

Dale Ackerman
--
Posted viahttp://www.ruby-forum.com/.

--

You received this message because you are subscribed to the Google
Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.

Best,

Nicholas Young wrote:

Hi Dale,

Previously, I've just used Ruby 1.8.7 and an upgraded copy of the base
RubyGems install that came with Snow Leopard. However, I wanted to
take advantage of 1.9.1's speed improvements, and since I'm starting a
new app, now seemed like the appropriate time to switch, and start
writing for the new version of Ruby. Currently, I've got 1.9.1

HI,
I have rvm installed and it does what you are suggesting. I have 1.8.7
(system) and 1.9.1 and Jruby etc.. can switch very simply

$ rvm ruby-1.9.1

This sets up the environment and PATH etc.. to point to the build 1.9.1

All works fine even rails WEBrick server. I just was unsure if this
setup would make it impossible to use passenger, mysql via the OS X
installed apache2 httpd

-dale

Dale Ackerman wrote:

Nicholas Young wrote:

Hi Dale,

Previously, I've just used Ruby 1.8.7 and an upgraded copy of the base
RubyGems install that came with Snow Leopard. However, I wanted to
take advantage of 1.9.1's speed improvements, and since I'm starting a
new app, now seemed like the appropriate time to switch, and start
writing for the new version of Ruby. Currently, I've got 1.9.1

HI,
I have rvm installed and it does what you are suggesting. I have 1.8.7
(system) and 1.9.1 and Jruby etc.. can switch very simply

$ rvm ruby-1.9.1

This sets up the environment and PATH etc.. to point to the build 1.9.1

All works fine even rails WEBrick server. I just was unsure if this
setup would make it impossible to use passenger, mysql via the OS X
installed apache2 httpd

Passenger: Maybe. You'd have to make sure it pointed to the right Ruby.

MySQL: No. The location of the Ruby binary is absolutely irrelevant to
your DB server. (Again, though, I'd really recommend PostgreSQL instead
of MySQL.)

-dale

Best,

Passenger: Maybe. You'd have to make sure it pointed to the right Ruby.

MySQL: No. The location of the Ruby binary is absolutely irrelevant to
your DB server. (Again, though, I'd really recommend PostgreSQL instead
of MySQL.)

Thanks .. I will look at PostgreSQL. I have been using SQLite3 and
MYSQL I am also using PHP Word press etc. But would love to move all
over to ruby and rails. What can you tell me about performance? Should
I test with REE locally. Oh BTW I found docs on the RVM site regarding
passenger and it is like you said just point the config files to the
right ruby rails env.

It looks like this is going to be like the old days of command line
compiles environments vars and make... :slight_smile:

I will probably set up my MacBook Pro with just the rvm(rubies) and
develop under WEBrick. However my Linux box I will set it up with
RVM(rubies) and Passenger/mod_rails/Apache2 for deployment testing.

One other thing why PostgreSQL?

Thanks

-dale

Hi,

I am new to Ruby and Rails (but experienced developer) I use both a

Linux workstation and MacBook Pro OS X to do development work. I wanted

to know what the recommended setup would be for a flexible development

environment? I see there are many releases of ruby and rails. So I

have setup rvm (Ruby Version Manager) to allow configuring and switching

between different rubies… But I am concerned the rvm environment and

gems etc. are all configured for the local user which could introduce

issues when integrating with system wide resources like Apache2, MYSQL

So I am overwhelmed… Your suggestions are appreciated.

Best Regards

Dale Ackerman

Dale, you’ll need to following the instructions here for configuring Passenger to

work with RVM:

http://rvm.beginrescueend.com/passenger

In short, you need to do the following:

PassengerRuby /Users/<YOUR_USER_NAME>/bin/<RUBY_VERSION>

For example,

PassengerRuby /Users/darnocwt/bin/ruby-1.9.2-preview1

Note: ruby-1.9.2-preview1 is a shell script which properly sets your environment to use

the correct gems that have been installed for the Ruby VM in question.

Good luck,

-Conrad

Hi,

I am new to Ruby and Rails (but experienced developer) I use both a

Linux workstation and MacBook Pro OS X to do development work. I wanted

to know what the recommended setup would be for a flexible development

environment? I see there are many releases of ruby and rails. So I

have setup rvm (Ruby Version Manager) to allow configuring and switching

between different rubies… But I am concerned the rvm environment and

gems etc. are all configured for the local user which could introduce

issues when integrating with system wide resources like Apache2, MYSQL

So I am overwhelmed… Your suggestions are appreciated.

Best Regards

Dale Ackerman

Dale, you’ll need to following the instructions here for configuring Passenger to

work with RVM:

http://rvm.beginrescueend.com/passenger

In short, you need to do the following:

PassengerRuby /Users/<YOUR_USER_NAME>/bin/<RUBY_VERSION>

PassengerRuby /Users/<YOUR_USER_NAME>/.rvm/bin/<RUBY_VERSION>

For example,

PassengerRuby /Users/darnocwt/bin/ruby-1.9.2-preview1

PassengerRuby /Users/darnocwt/.rvm/bin/ruby-1.9.2-preview1

Dale Ackerman wrote:

Passenger: Maybe. You'd have to make sure it pointed to the right Ruby.

MySQL: No. The location of the Ruby binary is absolutely irrelevant to
your DB server. (Again, though, I'd really recommend PostgreSQL instead
of MySQL.)

Thanks .. I will look at PostgreSQL. I have been using SQLite3 and
MYSQL I am also using PHP Word press etc. But would love to move all
over to ruby and rails. What can you tell me about performance?

What about performance?

Should
I test with REE locally.

Probably no need. In my experience, it works exactly like MRI, just
faster.

Oh BTW I found docs on the RVM site regarding
passenger and it is like you said just point the config files to the
right ruby rails env.

Not the right "ruby rails env". The right Ruby interpreter only.

It looks like this is going to be like the old days of command line
compiles environments vars and make... :slight_smile:

But isn't. Ruby is interpreted, not compiled. Make doesn't normally
come into it.

Environment variables are just a fact of life with any language.

I will probably set up my MacBook Pro with just the rvm(rubies) and
develop under WEBrick. However my Linux box I will set it up with
RVM(rubies) and Passenger/mod_rails/Apache2 for deployment testing.

I doubt that you need RVM. Just pick one Ruby, unless there's a
specific reason you can't.

One other thing why PostgreSQL?

Lots of reasons. Performance, extensibility, adherence to the SQL
standard...MySQL is inferior in nearly every respect.

Thanks

-dale

Best,

Ok, but what if you wanted to take advantage of some existing managed
infrastructure, like say, Amazon RDS (http://aws.amazon.com/rds/)? Is
MySql that inferior that you would simply rule that out or are there
pros and cons?

Ritchie Young wrote:

> One other thing why PostgreSQL?

Lots of reasons. �Performance, extensibility, adherence to the SQL
standard...MySQL is inferior in nearly every respect.

Ok, but what if you wanted to take advantage of some existing managed
infrastructure, like say, Amazon RDS (http://aws.amazon.com/rds/)? Is
MySql that inferior that you would simply rule that out

No. MySQL is a reasonable second choice to PostgreSQL, but in my view,
it's notbreappy a OSS second.

or are there
pros and cons

Well, MySQL doesn't have many pros compared to Postgres.

BTW, while we're on the subject of cloud services, Heroku uses
PostgreSQL.

--

You received this message because you are subscribed to the Google
Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.

Best,

Marnen Laibow-Koser wrote:

Ritchie Young wrote:

> One other thing why PostgreSQL?

Lots of reasons. �Performance, extensibility, adherence to the SQL
standard...MySQL is inferior in nearly every respect.

Ok, but what if you wanted to take advantage of some existing managed
infrastructure, like say, Amazon RDS (http://aws.amazon.com/rds/)? Is
MySql that inferior that you would simply rule that out

No. MySQL is a reasonable second choice to PostgreSQL, but in my view,
it's notbreappy a OSS second.

Sorry, sloppy typing. It's not really a close second.

Best,