Getting my feet wet on Linux - some questions

So, I'm going to fully go to Linux for both development and production because one) I think it will be simpler down the road and two) I've wanted to learn linux for a long time now.

Before I make the leap and turn on my virtualbox and load up the next linux OS, I have a few questions for rails development.

1. What gems "must" I have in order to move from development to production (keeping in mind that I will more than likely 100% duplicate both my development and production environment platforms via my (development = linux/virtualbox and production = linux/VPS(hosted))?

.. The list of gems I've been keeping on my "windows" box have been ..

Rails + dependencies Capistrano + dependencies Hpricot (for web parsing) Mongrel + dependencies(not sure if I need this) rake-compiler + rake rspec-rails + rspec sqlite3-ruby (1.2.4) mysql (2.7.8 I believe) test-unit version 1.2.3 warbler (for netbeans IDE)

2. I'm going to be using netbeans IDE on linux (because I'm familiar with it and like it). Have there been any issues with netbeans on linux? Anyone encountered any major issues I should be aware of?

3. I want to use the latest ruby version of 1.9.1-p129 on linux. Given the gem listings (and other gems that may not be listed yet for question 1) is this a bad thing to do? I just want to be on the bleeding edge of development and since I'm still learning ruby and rails (I figured the best is always better to start with). Since I now have a VPS for production, I control all areas of installation.

4. Are there any "default applications" like sudo apt-get etc. appliances that I need to have for rails development on a linux box. Can someone list what each app is that I should install and a very tiny summary as to what the app does? Example sudo apt-get coffee (it makes you coffee).. :slight_smile:

5. What security measures should I work on in linux to protect my environment, especially on my VPS? I'm very fluent with windows security measures but with linux I have absolutely no clue...

6. Lastly, anything else I'm forgetting here?

I know it's a long laundry list but I would appreciate it if anyone assisted me with some of the answers.

Many thanks in advance! This is a great community (very helpful) and I'm proud to now be a part of it!

Netbeans works fine on Linux. No additional gems are required to move to production from development. Which Linux distro are you going to use? If you are going to install ruby 1.9, then Ubuntu has some additional steps (I hate those) required for SSL support, etc. Search for those on the net. Once you are able to do create and run a test application without any issues, you should also be able to deploy your application (assuming you have the database setup).

1. What gems "must" I have in order to move from development to production (keeping in mind that I will more than likely 100% duplicate both my development and production environment platforms via my (development = linux/virtualbox and production = linux/VPS(hosted))?

.. The list of gems I've been keeping on my "windows" box have been ..

Rails + dependencies Capistrano + dependencies Hpricot (for web parsing) Mongrel + dependencies(not sure if I need this) rake-compiler + rake rspec-rails + rspec sqlite3-ruby (1.2.4) mysql (2.7.8 I believe) test-unit version 1.2.3 warbler (for netbeans IDE)

Whatever gems you installed on Windows install on your Linux distro.

2. I'm going to be using netbeans IDE on linux (because I'm familiar with it and like it). Have there been any issues with netbeans on linux? Anyone encountered any major issues I should be aware of?

Never used it, I'm an Emacs guy. :wink:

3. I want to use the latest ruby version of 1.9.1-p129 on linux. Given the gem listings (and other gems that may not be listed yet for question 1) is this a bad thing to do? I just want to be on the bleeding edge of development and since I'm still learning ruby and rails (I figured the best is always better to start with). Since I now have a VPS for production, I control all areas of installation.

I had tons of trouble with the mysql gem and Ruby 1.9.1 on Ubuntu 9.04. I'd check this site and make sure the gems you want to use will work on 1.9.1 before I committed to using it.

4. Are there any "default applications" like sudo apt-get etc. appliances that I need to have for rails development on a linux box. Can someone list what each app is that I should install and a very tiny summary as to what the app does? Example sudo apt-get coffee (it makes you coffee).. :slight_smile:

Not exactly sure what you mean. All you really need is Ruby, Gem, a database (mysql, postgres, sqlite, etc..), a text editor. The Ruby on Rails Wiki has a good install guide for Rails. http://wiki.rubyonrails.org/getting-started/installation

5. What security measures should I work on in linux to protect my environment, especially on my VPS? I'm very fluent with windows security measures but with linux I have absolutely no clue...

Check Google for securing your server. Otherwise, there is a good security section on http://guides.rubyonrails.org/

1. What gems "must" I have in order to move from development to production (keeping in mind that I will more than likely 100% duplicate both my development and production environment platforms via my (development = linux/virtualbox and production = linux/VPS(hosted))?

.. The list of gems I've been keeping on my "windows" box have been ..

Rails + dependencies Capistrano + dependencies Hpricot (for web parsing) Mongrel + dependencies(not sure if I need this) rake-compiler + rake rspec-rails + rspec sqlite3-ruby (1.2.4) mysql (2.7.8 I believe) test-unit version 1.2.3 warbler (for netbeans IDE)

You just won't need warbler as it's a JRuby only thing.

2. I'm going to be using netbeans IDE on linux (because I'm familiar. with it and like it). Have there been any issues with netbeans on linux? Anyone encountered any major issues I should be aware of?

I've been running NetBeans for years on Linux and I'm having no problems.

3. I want to use the latest ruby version of 1.9.1-p129 on linux. Given the gem listings (and other gems that may not be listed yet for question 1) is this a bad thing to do? I just want to be on the bleeding edge of development and since I'm still learning ruby and rails (I figured the best is always better to start with). Since I now have a VPS for production, I control all areas of installation.

Being on the bleeding edge to learn isn't a good idea as you might stuble into real bugs that are not easy to handle or fix. Also, Ruby 1.9 isn't really adding ground breaking features so working and knowing Ruby 1.8 is more than enough as a start.

4. Are there any "default applications" like sudo apt-get etc. appliances that I need to have for rails development on a linux box. Can someone list what each app is that I should install and a very tiny summary as to what the app does? Example sudo apt-get coffee (it makes you coffee).. :slight_smile:

Here's a simple tutorial to setup a RoR server using Ruby Enterprise Edition, Nginx and Passenger - Setting up your Ruby on Rails application in an Ubuntu Jaunty Jackalope (9.04) server with Nginx, MySQL, Ruby Enterprise Edition and Phusion Passenger | Codeshooter's Weblog (for Ubuntu 9.04 installs)

5. What security measures should I work on in linux to protect my environment, especially on my VPS? I'm very fluent with windows security measures but with linux I have absolutely no clue...

Most of the Linux distributions are pretty secure by default, you usually don't need to take "improved" security measures beyond not installing software that you're not going to use, updating all software as soon as possible and using long and hard to guess passwords.

Thanks guys..

I'm going to duplicate centos since that's the linux dist that my vps is using. I suppose I could change that to something else but the default vps template uses centos and if I had an issue and had to revert to the template file, it would install that anyways.

Thanks for the updates on the gems, especially warbler. I forgot that I had previously installed jruby on windows and so my configuration at the time required it (good catch).

Thanks for the clarification on the ruby versions. What would be the biggest impact of change from:

1.8.7 - 1.9.1

(is it very large?)

I just dont' want to start new at coding, get very familiar with certain program standards and then see a lot of changes later on and have to readjust (especially since I'm learning).

Here's a list of changes between versions - http://eigenclass.org/hiki/Changes+in+Ruby+1.9