为什么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'代表Rubiniusbash> = 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
libxml2-dev libxslt-dev
想知道为什么RVM首先添加它们?
如果没有安装任何这些软件包,哪些知名库会破坏?
哪些软件包是安装ruby本身所必需的,以及stdlib需要哪些软件包。 yaml还是rexml?
答案 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要求列表。