对“rvm要求”有什么依赖关系?

时间:2012-11-30 08:02:12

标签: ruby-on-rails ruby ubuntu installation rvm

为什么RVM,Ruby或Rails需要libc6-dev, ncurses-dev and libtool

在运行rvm requirements的Ubuntu上的

给了我们:

  

Linux的要求(DISTRIB_ID = Ubuntu
  DISTRIB_RELEASE = 10.10
  DISTRIB_CODENAME =特立独行
  DISTRIB_DESCRIPTION =“Ubuntu 10.10”)

     

注意:'ruby'代表Matz的Ruby解释器(MRI)(1.8.X,1.9.X)
               这是原始 /标准Ruby语言解释器
        'ree'代表Ruby Enterprise Edition
        'rbx'代表Rubinius

     

bash> = 4.1需要
  卷曲是必需的   git是必需的(对于红宝石头,> = 1.7)   补丁是必需的(1.8红宝石和一些红宝石头)。

     

要安装rbx和/或Ruby 1.9头(MRI)(例如1.9.2头),那么你   必须首先安装并使用rvm 1.8.7。

     

附加依赖性:
  #对于Ruby / Ruby HEAD(MRI,Rubinius,& REE),请安装以下内容:
  ruby:/ usr / bin / apt-get install build-essential openssl libreadline6
  libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev   libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf   libc6-dev ncurses-dev automake libtool bison subversion pkg-config

     

#对于JRuby,请安装以下内容:
  jruby:/ usr / bin / apt-get install curl g ++ openjdk-6-jre-headless
  jruby-head:/ usr / bin / apt-get install ant openjdk-6-jdk

     

#对于IronRuby,请安装以下内容:
  ironruby:/ usr / bin / apt-get install curl mono-2.0-devel

为什么RVM,Ruby或Rails需要libc6-dev, ncurses-dev and libtool

对于其他包裹,据我所知:

build-essential automake bison autoconf pkg-config对于从源头编译很有用 irb的readline支持需要libreadline6 libreadline6-dev ruby的SSL支持需要openssl libssl-dev 获取软件需要curl git-core subversion 打开rubygems包需要zlib1g zlib1g-dev ruby的YAML支持需要libyaml-dev 对于rails的sqlite支持,需要libsqlite3-dev sqlite3 通过nokogiri

解析XML需要libxml2-dev libxslt-dev

想知道为什么RVM首先添加它们?
如果没有安装任何这些软件包,哪些知名库会破坏? 哪些软件包是安装ruby本身所必需的,以及stdlib需要哪些软件包。 yaml还是rexml?

编辑:忘了pkg-config
编辑:最后添加了一些问题

3 个答案:

答案 0 :(得分:2)

libc6-dev是C标准库开发文件。如果没有它们,任何有用的C代码都不可能编译。由于Ruby是用C语言编写的,因此需要编译和构建ruby本身。

我猜想编译irb需要ncurses。

我同意你提到的其他套餐的目的。

答案 1 :(得分:2)

这些都是基本库,它们是您将来使用的各种宝石的依赖项。

 build-essential openssl libreadline6
 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev 
 libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev 
 autoconf libc6-dev ncurses-dev automake libtool bison subversion

可能会出现这样的情况:您不需要m / c中的所有库,但是当您安装一些宝石时,会出现错误,例如

  

无法构建原生扩展

在这些情况下,将查找所需的库以查找失败的gem并进行安装。库只安装一次,与宝石相比完全不同。这里的库是

  

Git,mysql服务器,sqlite,curl等。

我建议使用Sudo apt-get install在sudo权限的开头安装它。希望这可以帮助。此外,当您尝试新的宝石和插件时,您将来会安装新的库。

答案 2 :(得分:2)

ruby​​带有一组扩展,其中一些需要额外的包,例如需要ncurses以获得更好的控制台支持(irb) - 但不是必需的,搜索包需要pkg-config - 大多数包都公开配置文件有助于找到正确的编译路径...等等,这里是所有扩展的列表:https://github.com/ruby/ruby/tree/trunk/ext ...虽然它不是要求列表 - 我找不到官方的ruby要求列表。