Ruby 1.9.3+;Solaris 10上的Rails-缺少libyaml
我正在尝试在Solaris10box上安装RubyonRails。我成功地从源代码构建了Ruby 1.9.3,并安装了gems,但每次运行gem命令时,我都会收到以下消息:Ruby 1.9.3+;Solaris 10上的Rails-缺少libyaml,ruby,solaris,Ruby,Solaris,我正在尝试在Solaris10box上安装RubyonRails。我成功地从源代码构建了Ruby 1.9.3,并安装了gems,但每次运行gem命令时,我都会收到以下消息: # gem list /usr/local/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>': It seems your ruby installation is missing psych (for YAML output). To eliminate this
# gem list
/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
我找到了用于检查的extconf.rb脚本,并尝试手动运行它:
# pwd
/root/pub/ruby-1.9.3-p194/ext/psych
#
# irb --simple-prompt
>> require 'mkmf'
=> true
>> find_header 'yaml.h'
checking for yaml.h... yes
=> true
>> find_library 'yaml', 'yaml_get_version'
checking for yaml_get_version() in -lyaml... yes
=> true
>> exit
显然extconf.rb可以找到libyaml,但是make找不到。所以我很困惑为什么make没有找到它。有什么想法吗?关于在Solaris上安装Rails,在线上有两个演练 这是针对Rails 3的: 这篇文章讨论了避免不兼容库的问题:
我从未在Solaris上尝试过这种方法,但希望这能有所帮助。我在Mac OS上遇到了这个问题,也许它有帮助:您需要安装libyaml 如果您是从预构建的包安装libyaml,则可能需要一个带有开发头的单独包,通常是“libyaml-dev”或类似的包 或者,您可以: 下载源程序包: . 要构建和安装LibYAML,请运行:
$ ./configure
$ make
# make install
(注意,最后一行以一个#
开头,表示作为普通用户运行时的根shell,前置sudo
。)
然后在安装libyaml之后重新配置并重新编译Ruby。有趣的是,我在发布之前就这么做了:)我当时想。。cmon,我刚刚构建了libyaml,但ruby configure仍然没有看到它。。哈哈。我终于消除了那个警告,修复程序似乎是(还没有确认):
export LD_LIBRARY\u PATH=“/usr/lib;/usr/local/lib”
@Pavel如果可以的话,把它作为答案发布,48小时后你就可以接受了。@Pavel,如果你想在/usr/local
(或其他地方)下安装很多GNUish东西,请查看crle(1)
设置全局库路径。根据Andrew给出的答案,如果您考虑从源代码安装Ruby,可能需要在Ruby的make
之前执行导出CPPFLAGS=-L/my/yaml/include
和导出LDFLAGS=-L/my/yaml/lib
。
$ ./configure
$ make
# make install