从昨天起,试着安装SUSE(SLES),并配置ROR环境,问题不断,今天更是遇到超郁闷的问题。
安装完了Ruby、GEM、Rails后,运行ruby script/server后,出现了个错。
引用
/usr/local/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:...:in `require_frameworks': no such file to load -- openssl (RuntimeError)
查了半天也没找出原因,发现SUSE中openssl已经安装了。找来找去,找到Ruby的源码文件夹中,有ext/openssl文件夹,然后再找到安装后的ruby文件夹下,发现根本就找不到openssl文件夹。
于是cd到ruby源码文件夹的ext/openssl文件下,执行“ruby exconf.rb”,出现了错误。
引用
=== OpenSSL for Ruby configurator ===
=== Checking for system dependent stuff... ===
checking for t_open() in -lnsl... no
checking for socket() in -lsocket... no
checking for assert.h... yes
=== Checking for required stuff... ===
checking for openssl/ssl.h... no
=== Checking for required stuff failed. ===
Makefile wasn't created. Fix the errors above.
搜索了整个系统也没找到ssl.h,几次要放弃源码安装ruby了。
最后抱着试试看的心态,通过google在suse网站找到了下面的网址:
http://www.novell.com/products/linuxpackages/enterpriseserver/i386/openssl-devel.html
从这个网址上,找到了下面的网址:
http://www.openssl.org/
犹豫着去下载了:openssl-0.9.8k.tar.gz。
解压后,执行make && make install,漫长的等待。。。。
终于安好了。在安装后的文件下搜ssl.h,发现这个文件存在了,看到点希望了。
回到ruby源文件文件夹的/ext/openssl文件夹下,执行“ruby exconf.rb”,错误依然。
获取ssl.h所在的文件夹之后,执行以下命令:
引用
ruby extconf.rb --with-openssl-include=/usr/local/ssl/include/
出现了新的错误:
引用
=== OpenSSL for Ruby configurator ===
=== Checking for system dependent stuff... ===
checking for t_open() in -lnsl... no
checking for socket() in -lsocket... no
checking for assert.h... yes
=== Checking for required stuff... ===
checking for openssl/ssl.h... yes
checking for OpenSSL_add_all_digests() in -lcrypto... no
checking for OpenSSL_add_all_digests() in -llibeay32... no
=== Checking for required stuff failed. ===
Makefile wasn't created. Fix the errors above.
非常有戏啊,再试一个命令:
引用
ruby extconf.rb --with-openssl-include=/usr/local/ssl/include/ --with-openssl-lib=/usr/local/ssl/lib
太神奇了,居然成功生成了Makefile,毫不犹豫,继续:
引用
make && make install
成功的安装了openssl到ruby的安装文件夹中。
最后,回到测试工程中,ruby script/server一下,哈哈,WEBrick成功启动,到FF下访问一下,完全OK了。
再试试lighttpd+fcgi,也是完全OK的,心情大好。
完。