Differences between revisions 35 and 36
Revision 35 as of 2019-12-19 19:26:05
Size: 4693
Editor: AlexKing
Comment: 3rd time lucky - add information on ruby versions in Debian 10
Revision 36 as of 2021-10-23 17:11:53
Size: 4849
Editor: ?billchenchina
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
== Available interpreters in Debian 11 (buster) ==

|| '''Interpreter''' || '''Package''' || '''Notes''' ||
|| MRI 2.7.4 || [[DebianPkg:ruby2.7]] || ||

Translation(s): English - Italiano - Japanese

Ruby in Debian

This page documents how to install and use Ruby in Debian. 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

Available interpreters in Debian 11 (buster)




MRI 2.7.4


Available interpreters in Debian 10 (buster)




MRI 2.5.5


JRuby 9.1.17


Available interpreters in Debian 8 (jessie)




MRI 2.1.5


JRuby 1.5.6


Unfortunately Rubinius did not make it into jessie.

As there are no (MRI) alternatives to choose from, update-alternatives support has been removed. (Longer explanation about the alternatives removal can be found here: https://lists.debian.org/debian-ruby/2014/03/msg00077.html and here: https://lists.debian.org/debian-project/2014/02/msg00028.html )

Available interpreters in Debian 7 (wheezy)

The following Ruby interpreters are available in Debian Wheezy:




MRI 1.8.7


MRI 1.9.3






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 (wheezy only)

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
# 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 (wheezy)

Note: the instructions here use the command "rbenv alternatives", which is not available in Debian jessie.

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
$ 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.

  1. BalasankarC/DebianRuby
  2. BalasankarC/DebianRuby/Packaging
  3. BalasankarC/DebianRuby/Packaging/Conventions
  4. BalasankarC/DebianRuby/Packaging/TestFailures
  5. BalasankarC/DebianRuby/Packaging/Tests
  6. JongminKim/Drafts/RubyPackaging
  7. Packaging/ruby-team-meta-build
  8. ReproducibleBuilds/TimestampsInRubyDocumentation
  9. Ruby
  10. Ruby/Packaging/Tests
  11. Ruby/Packaging/newUpstreamRailsApp
  12. SummerOfCode2020/ApprovedProjects/UpstreamDownstreamCooperationInRuby
  13. SummerOfCode2020/UnApprovedProjects/UpstreamDownstreamCooperationInRuby
  14. Teams/DebianRubyExtras
  15. Teams/Ruby
  16. Teams/Ruby/CrossBuilding
  17. Teams/Ruby/Drafts/StateOfTransitionNewPolicy
  18. Teams/Ruby/Drafts/StateOfTransitionNewPolicyReleaseTeam
  19. Teams/Ruby/Drafts/SwitchToOneNine
  20. Teams/Ruby/IRCMeetings
  21. Teams/Ruby/InterpreterTransitions
  22. Teams/Ruby/Jessie
  23. Teams/Ruby/Meeting/Brazil2016
  24. Teams/Ruby/Meeting/Paris2014
  25. Teams/Ruby/Meeting/Paris2015
  26. Teams/Ruby/Meeting/Paris2015/Report
  27. Teams/Ruby/Meeting/Paris2020
  28. Teams/Ruby/Packaging
  29. Teams/Ruby/Packaging/Conventions
  30. Teams/Ruby/Packaging/ITP
  31. Teams/Ruby/Packaging/Obsolete
  32. Teams/Ruby/Packaging/RailsApps
  33. Teams/Ruby/Packaging/RailsEngines
  34. Teams/Ruby/Packaging/Tests
  35. Teams/Ruby/Packaging/TransitionsPrimer
  36. Teams/Ruby/Packaging/gem2deb
  37. Teams/Ruby/Packaging/newUpstreamRailsApp
  38. Teams/Ruby/Packaging/origsource
  39. Teams/Ruby/RSpec3
  40. Teams/Ruby/Rails3
  41. Teams/Ruby/Rails3 (foo.tar.gz)
  42. Teams/Ruby/Rails3 (testapp.tar.gz)
  43. Teams/Ruby/Rails4.2
  44. Teams/Ruby/Rails6
  45. Teams/Ruby/Rails6/DependenciesTransition
  46. Teams/Ruby/Rails6/RailsBreakingChanges
  47. Teams/Ruby/Rails6/ReverseDependenciesTransition
  48. Teams/Ruby/Ruby2.2
  49. Teams/Ruby/RubyExtras
  50. Teams/Ruby/RubyExtras/OnRubygems
  51. Teams/Ruby/RubyExtras/Ruby19Porting
  52. Teams/Ruby/RubyExtras/RubyPackageTools
  53. Teams/Ruby/RubyExtras/UpstreamDevelopers
  54. Teams/Ruby/RubyInWheezy
  55. Teams/Ruby/Salsa
  56. Teams/Ruby/UpstreamPledge
  57. Teams/Ruby/Workflow
  58. Teams/Ruby/ruby2.5
  59. it/Ruby
  60. ja/Ruby