我正在尝试运行此命令以使 ruby 1.9.1 在我的系统上运行:
rvm install 1.9.1
它显示“运行 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
那么这是怎么回事?如何让 ruby 1.9.1 在 ubuntu 11.04 下运行?
答案1
STACK 似乎是在/usr/include/openssl/stack.h
我的系统上定义的 typedef。
根据 dpkg提供此文件libssl-dev
- 您是否安装了该包?
答案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 代码并安装它。