What happens when Rails 1.3.5 is installed on top of 2.3.5?

On a Mac running Snow Leopard, the Rails version was 2.3.5 (by using rails -v)

and then I used gem install to install about 20 things, and maybe there was a line on the instructions that was there in the past that says

  gem install rails -v=1.3.5

and I ran it anyways, thinking that maybe 1.3.5 is a different version number...

and it installed 5 gems (as i remember).

Will that actually affect the current rails?

Even after the installation, when I use

  rails -v

it still says 2.3.5

and also if it is

  gem list rails

it would list something like

  rails (2.3.5, 2.3.2, 1.3.5)

so looks like they exist nicely with each other without affecting one another? thanks.

On a Mac running Snow Leopard, the Rails version was 2.3.5 (by using rails -v)

and then I used gem install to install about 20 things, and maybe there was a line on the instructions that was there in the past that says

gem install rails -v=1.3.5

and I ran it anyways, thinking that maybe 1.3.5 is a different version number...

and it installed 5 gems (as i remember).

Will that actually affect the current rails?

Even after the installation, when I use

rails -v

it still says 2.3.5

and also if it is

gem list rails

it would list something like

rails (2.3.5, 2.3.2, 1.3.5)

so looks like they exist nicely with each other without affecting one another? thanks.

Yup, rubygems is designed to handle that sort of thing. Installed executables (eg the rails executable that sets up a new app) will run the latest version), you can run older versions by doing (for example) rails _1.3.5_ anoldapp The fiddly stuff is when the old version of rails doesn't cope with the version of ruby you have, eg rails didn't handle ruby 1.8.7 before 2.1 (I think, could be a different version but you get the idea) or uses functionality that was deprecated and later removed in newer versions of rubygems.

Fred

Just in case it applies here is an extract from the Pickaxe book (Second edition, page 217):

"Threre's a subtlety when it comes to installing different versions of the same application with RubyGems. Even though RubyGems keeps separate versions of the application's library files, it does not version the actual command you use to run the application. As a result, each install of an application effectively overwrites the previous one."

pepe wrote:

Just in case it applies here is an extract from the Pickaxe book (Second edition, page 217):

"Threre's a subtlety when it comes to installing different versions of the same application with RubyGems. Even though RubyGems keeps separate versions of the application's library files, it does not version the actual command you use to run the application. As a result, each install of an application effectively overwrites the previous one."

so that means it will be safest if i re-run

  gem install rails

or

  gem install rails -v2.3.5

again?

I would, just in case, not being sure of the repercussions that installing a prior version of the gem would have.

That's actually not the whole story, and excerpt from the output of gem help install:

Description:     The install command installs local or remote gem into a gem repository.

    For gems with executables ruby installs a wrapper file into the executable     directory by default. This can be overridden with the --no-wrappers option.     The wrapper allows you to choose among alternate gem versions using     _version_.

    For example `rake _0.7.3_ --version` will run rake version 0.7.3 if a newer     version is also installed.

The "actual command you use to run the application" is actually a bit of boilerplate generated by gems which requires the gem and then calls the executable in the bin directory of the gem. If you use that _{version}_ option it requires a specific version of the gem.

So if you have both rails 2.3.5 and 1.2.6 installed then either

rails or rails _2.3.5_

will run version 2.3.5 which is the latest version installed. but

rails _1.2.6_

will run version 1.2.6

HTH

BTW, the OP gave rails version 1.3.5 as a example, as far as I know this a fictitious version since rails went from version 1.2.6 to version 2.0.0

Rick Denatale wrote:

That's actually not the whole story, and excerpt from the output of gem help install:

Description:     The install command installs local or remote gem into a gem repository.

    For gems with executables ruby installs a wrapper file into the executable     directory by default. This can be overridden with the --no-wrappers option.     The wrapper allows you to choose among alternate gem versions using     _version_.

    For example `rake _0.7.3_ --version` will run rake version 0.7.3 if a newer     version is also installed.

What about if Rails 2.3.5 is installed and then 1.2.5 is installed? It seems like after that

  rails -v

will still give 2.3.5. So the default executable is not overwritten or linked to 1.2.5 but to the newest version.

Also, if we run

  rails _1.2.5_

the won't all the supporting files, script, etc, etc also need to be versioned? So probably that is automatically taken care of as well?

So, supposedly, we can install rails in ANY ORDER -- 2.3.5 first, and then 2.2.2 and then 1.2.5 and they still all work well, and the default one is still the 2.3.5 version?

wow, if only Windows application can do that too...