Transferred from: http://henter.me/post/ruby-rvm-gem-rake-bundle-rails.html
Ruby
That's not going to be a lot.
RVM
To help you install the Ruby environment, help you manage multiple ruby environments, and help you manage which Ruby environment is used on the machine for each Ruby app you develop. The ruby environment is not just Ruby itself, but also a dependent third-party ruby plugin. are managed by RVM.
Rails
This also needless to say, well-known development framework. Detailed View Http://zh.wikipedia.org/wiki/Ruby_on_Rails
RubyGems
RubyGems is a handy and powerful Ruby package manager, similar to redhat rpm. It packs a ruby application into a gem as an installation unit. Without installation, the latest version of Ruby already contains rubygems.
Gem
Gems are packaged ruby applications or code libraries.
Note: The gem command used in the terminal refers to the management of the gem package through RubyGems.
Gemfile
Define which third-party packages your app depends on, and bundles are looking for those packages based on that configuration.
Rake
Rake is a build language, similar to make. Rake is written in Ruby, which supports its own DSL for processing and maintaining ruby programs. Rails uses rake extensions to perform a variety of tasks, such as database initialization, updates, and so on.
Rake is a build language, similar in purpose to make and ant. Like make and ant it's a Domain specific Language, unlike those a internal DSL programmed in the Ruby Language.
PS: Personal feeling is somewhat similar to the app/console in Symfony2
Detail http://rake.rubyforge.org/
Rakefile
Rakefile is written by Ruby, and the command execution of rake is defined by the Rakefile file.
In a gem's context, the rakefile is extremely useful. It can hold various tasks to help building, testing and debugging your gems, among all other things so you might find use Ful.
Details: http://rake.rubyforge.org/files/doc/rakefile_rdoc.html
Bundle
Equivalent to multiple RubyGems batch runs. In profile Gemfilel, describe which third-party packages your app relies on, and he automatically downloads and installs multiple packages for you, and downloads the packages that they depend on. Similar to the Gradle in Maven,android in Java
Bundler maintains a consistent environment for Ruby applications. It tracks an application's code and the RubyGems it needs to run, so this an application would always has the exact gems ( and versions) that it needs to run.
Organize various ruby-related concepts (RVM, gems, bundles, rake, rails, etc.)