2010-11-20 46 views
5

我是Ruby和RoR的新手。我有一个干净的Linode实例和一个Ubuntu镜像,我想从源代码编译Ruby而不是使用apt-get。我已经搜索了这样做的说明,但经过一些尝试后,当我尝试运行一些教程示例时,我一直在获取关于缺少zlib和一些其他软件包的错误。在Linux上编译Ruby 1.9.2所需的先决条件?

任何人都可以给我详细的说明(或链接),教我如何获得必要的先决条件包安装之前,我从源代码编译Ruby?

我的意图是编译最新的Ruby稳定版本,然后安装Rubygems和Rails。感谢您提前提供任何帮助!

+0

仅当您需要的软件包在存储库中不可用时才应使用源代码编译。 – EmFi 2010-11-20 20:53:04

回答

3

高度建议使用'RVM'安装所有的红宝石,特别是如果你只是为了你自己的使用。 RVM将为您完成所有的编译工作,将所有内容放入~/.rvm,包括宝石,并且可以轻松安装多个版本的Ruby和gems进行测试。

Installationusing gems会让你运行。 RVM的Gemsets功能强大,而RVM的ruby命令可以很好地执行所有安装的Rubies RVM管理的操作。

RVM还支持system-wide installations,如果您需要它可以提供RVM的灵活性,但是如果您位于单用户计算机上,它会更复杂一些,而且没有必要。

+0

安装相当复杂,但非常有用,我喜欢它!谢谢 ! – 2011-01-25 00:03:23

0

为什么不安装zlib? sudo aptitude install libz-dev

我从源代码编译,它很擅长于在缺少依赖时发出警告。

18

This blog post涵盖必要的软件包和安装过程,以从源代码编译ruby;它引用了Ruby 1.9.1,但它也适用于Ruby 1.9.2。从这篇文章的真正有用的一点是:

sudo apt-get -y install libc6-dev libssl-dev libmysql++-dev libsqlite3-dev make build-essential libssl-dev libreadline6-dev zlib1g-dev libyaml-dev 

看起来,我认为其中的一些不是必须的,除非你想继续使用MySQL或SQLite的,但在其他包的这个名单会得到什么你需要编译Ruby。

之后,我不会推荐实际从源手动安装Ruby;我会使用RVM (Ruby Version Manager),所以你可以安装任何你想要的Ruby版本,现在和以后。 RVM通过下载和编译源代码编译不同版本的Ruby,并且还会为您安装Rubygems。

安装rvm后,您可以使用rvm requirements获取所需软件包的当前列表。

+1

+1:对于RVM和关于从源编译的警告。 – EmFi 2010-11-20 20:53:19

+0

您可能还需要'libyaml-dev',否则Ruby将在没有YAML支持的情况下编译。 – 2012-12-20 05:49:54

+0

不幸的是,博客文章已经不存在了...... – 2017-12-07 17:01:43

8

您可以使用apt-get安装任何软件包的所有构建依赖项。启用您的源代码库然后运行。

sudo apt-get build-dep ruby1.9 rails 

这将安装所有需要编译这两个软件包的源代码的软件包。然后你可以去获取最新的资源,并按照说明进行操作。

N.B .:软件包名称可能有误,取决于您使用的是哪个版本的Ubuntu。

+2

从包安装Ruby是可以的,但我不建议从包安装Rails。对于系统ruby,我建议手动安装Rubygems(在rubygems.org上的说明 - http://rubygems.org/pages/download),然后是'gem install rails'。 – wuputah 2010-11-20 21:04:44

+0

不幸的是,我见过不包含irb和rdebug的包,我认为这对于使用Ruby来说是必不可少的。因此,我现在只安装使用源代码,并且由于RVM出现,我将它作为我的第一选择。软件包已成为我的最后手段。 – 2010-11-21 00:07:31

+4

我只建议将软件包作为安装所有构建依赖项的快捷方式。 – EmFi 2010-11-22 08:56:03