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 (Fully Managed Relational Database - Amazon RDS - Amazon Web Services)? 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 (Managed Sql Database - Amazon RDS - AWS)? 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,