我之前发布过这个问题,但我的版本是 11.04,不支持。所以现在我更新到了 11.10,但问题仍然没有解决。
我想使用 ruby 1.9.1。我面临的问题如下所示。我希望有人能帮助我。
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=11.10
DISTRIB_CODENAME=oneiric
DISTRIB_DESCRIPTION="Ubuntu 11.10"$ sudo apt-get install ruby1.9.1-full
正在读取软件包列表...完成 正在
构建依赖关系树
正在读取状态信息...完成
ruby1.9.1-full 已经是最新版本。
已升级 0 个版本,新安装 0 个版本,要删除 0 个版本,未升级 19 个版本。$ update-alternatives --config ruby
update-alternatives:错误:没有 ruby 的替代品。$ ruby -v
ruby 1.8.7 (2010-08-16 补丁级别 302) [i686-linux]$ ruby1.9.1
/usr/bin/ruby1.9.1
答案1
你可能会发现 rvm 很有用。Rvm 是一个命令行程序,允许你管理多个版本的 ruby。如果你感兴趣,你可以阅读更多关于它的内容这里。
如果您只是想摆脱 Ruby 1.8.1,请运行以下命令:
sudo apt-get remove ruby1.8
答案2
亚伦是正确的,我添加这个答案是为了进一步详细说明并提供更多细节。
这是 Rails 领域中一件大事,也是 Ruby 领域中一件大事(尽管没有那么糟糕)。
ruby 的系统版本必须必须是 1.8,否则某些已安装的应用程序将失败。有相当多的 UI 应用程序使用 ruby。但是 1.9 是新的选择,因此您更有可能希望在新项目中使用它(无论是 rails 还是纯 ruby)。
如果你正在开发一个应用程序,Ruby 版本管理器应该可以满足你的需求。你可以下载并安装它来自这个网站。但如果你尝试使用为 Ubuntu 打包的 1.9 版本,RVM 无法工作
RVM 仅在您的环境中加载。通常仅在您的命令行环境中加载(尽管这不一定是真的)。它从源代码编译 ruby,而不使用打包版本。这也是使用 ruby 进行开发的公认方式,不是作为用户或消费者,或在生产中。
如果您要运行的应用程序需要 ruby,则应该为其指定 ruby 路径。如果该应用程序是为 Ubuntu 构建的,则安装该应用程序就足够了。
如果你使用 Rails
不要使用系统 ruby 或打包的 rails gems。它们完全不适合开发。相反,使用 RVM + bundler + gemsets 来管理您的设置。在生产环境中,您通常只使用 bundler。
如果你使用 ruby
不要使用系统 ruby 或打包的 gems。rvm + gemsets 是构建新项目的可接受方式。在生产中,这会变得更加复杂,具体取决于目标。
如果你部署的是 Ruby 应用
然后,您需要确保在您了解的各个系统版本上运行测试套件。在 Ruby 中,补丁级别很重要,您需要确保您的代码可以正常工作,或者可以与正常工作的 Ruby 一起部署。
无耻的推销
可以找到从源代码编译工作的 ruby 的说明在我的网站上。请注意,它适用于生产服务器,旨在用于 rails 环境。但如果您决定进行编译,它应该可以帮助您入门。
TL;DR;
- RVM + gemsets = 开发 ruby 应用程序
- RVM + bundler + gemsets = 开发 rails 应用程序
- bundler(以及特定版本的 ruby)= 生产 rails 应用程序
- 系统 ruby + 大量测试 = 生产 ruby 应用程序