Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 1.9.3+;Solaris 10上的Rails-缺少libyaml_Ruby_Solaris - Fatal编程技术网

Ruby 1.9.3+;Solaris 10上的Rails-缺少libyaml

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

我正在尝试在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 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