Ruby in Debian
This page documents how to install and use Ruby in Debian Wheezy. For information about the development of Debian Ruby packages, please see Teams/Ruby.
This page is also available through this shortened URL: http://deb.li/ruby
The following Ruby interpreters are available in Debian Wheezy:
Work in progress, not actually available yet
It's possible to switch between different Ruby interpreters as the default "ruby" program by using update-alternatives. But when you change "ruby", you probably also want to change the default "gem", "irb", etc, so there are shortcuts to changing all of those at once.
Selecting the default Ruby interpreter system-wide
To select the default Ruby interpreter on a system-wide basis, you can use the ruby-switch package. This needs to be done as root (or with sudo).
# ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] # ruby-switch --list ruby1.8 ruby1.9.1 # ruby-switch --set ruby1.9.1 update-alternatives: using /usr/bin/gem1.9.1 to provide /usr/bin/gem (gem) in manual mode. update-alternatives: using /usr/bin/ruby1.9.1 to provide /usr/bin/ruby (ruby) in manual mode. # ruby -v ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux] # ruby-switch --auto update-alternatives: using /usr/bin/ruby1.8 to provide /usr/bin/ruby (ruby) in auto mode. update-alternatives: using /usr/bin/gem1.8 to provide /usr/bin/gem (gem) in auto mode. # ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
Selecting the default Ruby interpreter on a per-user basis
To select the default Ruby for a given user account, you should use the rbenv package:
$ ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] $ rbenv init # Load rbenv automatically by adding # the following to ~/.bash_profile: eval "$(rbenv init -)" $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile # or ~/.bashrc, depends on your setup $ rbenv versions $ rbenv alternatives $ rbenv versions 1.8.7-debian 1.9.3-debian $ rbenv global 1.9.3-debian $ ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
It looks like it didn't work, but that's because the current shell already cached /usr/bin/ruby as the location of "ruby". After you start a new shell, you will be able to switch the default ruby back and forth:
$ ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] $ rbenv global 1.9.3-debian $ ruby -v ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux] $ rbenv global 1.8.7-debian $ ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
Installing Ruby versions not packaged in Debian
You can use the ruby-build package to install Ruby interpreters that are not available in Debian. Note, however, what's written in the package README.Debian file:
- While ruby-build is a great tool to build Ruby versions that are not available via APT, you should still use the Debian-packaged versions of Ruby whenever possible since they are tested and supported by the Debian community.
Please do not report bugs you encounter while using your homebuilt Rubies to the Debian team; Rubies built by yourself are not supported.
Other Ruby-related wiki pages
- Teams/Ruby/Rails3 (foo.tar.gz)
- Teams/Ruby/Rails3 (testapp.tar.gz)