Ruby 1.9.1 rvm 安装失败

Han*_*ank 5 ruby 11.04

我正在尝试运行此命令以使 ruby​​ 1.9.1 在我的系统上运行:

rvm install 1.9.1
Run Code Online (Sandbox Code Playgroud)

它说“运行 make 时出错”,当我查看日志文件时,这是我收到的编译错误:

gcc -I. -I../../.ext/include/x86_64-linux -I../.././include -I../.././ext/openssl -DRUBY_EXTCONF_H=\"extconf.h\"    -fPIC  -O2 -g -Wall -Wno-parentheses  -fPIC  -o ossl.o -c ossl.c
ossl.c:118:1: error: unknown type name ‘STACK’
ossl.c:119:1: error: unknown type name ‘STACK’
make[1]: *** [ossl.o] Error 1
make[1]: Leaving directory `/var/cache/ruby-rvm/src/ruby-1.9.1-p431/ext/openssl'
make: *** [mkmain.sh] Error 1
Run Code Online (Sandbox Code Playgroud)

那么这是怎么回事?如何让 ruby​​ 1.9.1 在 ubuntu 11.04 下工作?

Cae*_*ium 2

STACK 似乎是在/usr/include/openssl/stack.h我的系统上定义的 typedef。

该文件是libssl-dev根据 dpkg 提供的 - 您安装了该软件包吗?


jrg*_*jrg 2

根据我自己系统上最新版本的 RVM,您需要以下内容才能在 Ubuntu 11.10 上编译 Ruby:

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

我建议您安装它们,然后运行rvm reinstall 1.9.1清理 1.9.1 代码并安装它。

  • 当前所需库的列表可以通过“rvm 要求”列出。1.9.1 是非常旧的版本,它没有受到社区的太多关注,您可以通过为 ruby​​-1.8.6 应用补丁来构建它 - openssl 集成 `rvm reinstall 1.9.1 --patch $rvm_path/patches/ruby/1.8 .6/openssl-1.0.patch,patches/ruby/1.8.6/no_sslv2.diff` 还有更多补丁可以帮助`find $rvm_ruby/patches/ruby/ -type f` (2认同)