Bug #5560

YAML installation not found and no /usr/local/lib/ruby/1.9.3

Added by Robert Klemme over 2 years ago. Updated over 2 years ago.

[ruby-core:<unknown>]
Status:Closed
Priority:Normal
Assignee:-
Category:build
Target version:1.9.3
ruby -v:ruby 1.9.3p0 (2011-10-30 revision 33570) [i386-cygwin] Backport:

Description

I configured the source with "$ ./configure --program-suffix=19" (see attachment) and built it with gcc 4.5.3 and did "make install". Now this happens:

$ gem19 list -l
/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

*** LOCAL GEMS ***

bigdecimal (1.1.0)
io-console (0.3)
json (1.6.1, 1.5.4)
minitest (2.7.0, 2.5.1)
rake (0.9.2.2)
rdoc (3.11, 3.9.4)

I noticed that in file include/ruby/version.h the minor ("teeny") is set to "1":

/* API version /
#define RUBYAPIVERSIONMAJOR 1
#define RUBY
APIVERSIONMINOR 9
#define RUBYAPIVERSIONTEENY 1
#define RUBY
APIVERSIONCODE (RUBYAPIVERSION_MAJOR
10000+RUBYAPIVERSIONMINOR*100+RUBYAPIVERSIONTEENY)

There are some entries in doc/ChangeLog-1.9.3 which mention API version changes involving "1.9.1" but since I am lacking context it is not clear to me what happened there.

Strangely enough there is no 1.9.3 directory in /usr/lib/ruby but there exists /usr/local/lib/ruby19 which has the same suffix as the one I used during configuring:

$ ls -la /usr/local/lib/ruby*
/usr/local/lib/ruby:
total 36
drwxr-xr-x+ 1 Robert None 0 May 14 11:08 ./
drwxr-xr-x+ 1 Robert root 0 Nov 2 23:46 ../
drwxr-xr-x+ 1 Robert None 0 Nov 2 23:47 1.9.1/
drwxr-xr-x+ 1 Robert None 0 May 14 11:08 gems/
drwxr-xr-x+ 1 Robert None 0 May 14 11:07 siteruby/
drwxr-xr-x+ 1 Robert None 0 May 14 11:07 vendor
ruby/

/usr/local/lib/ruby19:
total 8
drwxr-xr-x+ 1 Robert None 0 May 14 11:00 ./
drwxr-xr-x+ 1 Robert root 0 Nov 2 23:46 ../
drwxr-xr-x+ 1 Robert None 0 Jan 5 2010 gems/
drwxr-xr-x+ 1 Robert None 0 May 14 11:00 siteruby/
drwxr-xr-x+ 1 Robert None 0 May 14 11:00 vendor
ruby/

That's why I suspect a build issue.

I also notice that there is /usr/local/lib/ruby19/gems/1.9.1/gems/posix_mq-0.3.0 but this gem is not contained in the list of local gems (see above).

$ ls -l /usr/local/lib/ruby/gems//gems
/usr/local/lib/ruby/gems/1.9.1/gems:
total 16
drwxr-xr-x+ 1 Robert None 0 Nov 2 23:48 json-1.6.1/
drwxr-xr-x+ 1 Robert None 0 Oct 29 14:59 minitest-2.7.0/
drwxr-xr-x+ 1 Robert None 0 Oct 29 14:59 rake-0.9.2.2/
drwxr-xr-x+ 1 Robert None 0 Oct 29 14:59 rdoc-3.11/
drwxr-xr-x+ 1 Robert None 0 Nov 2 23:47 rdoc-3.9.4/

/usr/local/lib/ruby19/gems/1.9.1/gems:
total 4
drwxr-xr-x+ 1 Robert None 0 Jan 10 2010 posix_mq-0.3.0/

config.tbz2 - Archive containing config.log and config.status (32.3 KB) Robert Klemme, 11/03/2011 08:22 PM

History

#1 Updated by Robert Klemme over 2 years ago

There is also http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/388429 - not sure whether these are related.

#2 Updated by Luis Lavena over 2 years ago

API version is 1.9.1, so all the versioned directories inside Ruby 1.9.3 will be "1.9.1"

This is the same for Ruby 1.9.2, and was cleared up in Ruby 1.9.2 release FAQ:

http://www.ruby-lang.org/en/news/2010/08/18/ruby-1-9.2-released/

Now, the missing psych warning is coming form RubyGems, which is complaining you don't have Psych build.

Psych is the default YAML parser on Ruby 1.9.3 and requires libyaml 0.1.3 or 0.1.4 to build.

Please install libyaml and build Ruby again.

As for "posix_mq-0.3.0", it might come from your existing Ruby 1.9.x installation, since the output from "gem19 list" is correct (these gems are bundled with Ruby)

#3 Updated by Robert Klemme over 2 years ago

Luis, thank you for the information! Unfortunately libyaml is not a cygwin package so I'll have to compile it from source. Unfortunately I am struggling with other (apparently unrelated) issues with compilation on cygwin at the moment. I'll let you know once I remedy that. Maybe I can add a specific installation instruction for cygwin later.

#4 Updated by Robert Klemme over 2 years ago

OK, I got it working. You can close the issue (apparently I can't).

How I did it: I fetched libyaml from http://pyyaml.org/wiki/LibYAML built and installed it with default settings (i.e. to /usr/local). Then configured Ruby with

$ export CPPFLAGS=-I/usr/local/include
$ export LDFLAGS=-L/usr/local/lib
$ ./configure --program-suffix=19

(Suffix to avoid collisions with the ruby 1.8.7 which is a cygwin package.)

Finally "make" and "make install" as usually.

I checked README and NEWS file in the root directory of the distribution but could not find a list of prerequisites which must be present on the system. Maybe we can improve on that by delivering that list in a file INSTALLATION. What do you think?

#5 Updated by Ayumu AIZAWA over 2 years ago

  • Status changed from Open to Closed

Also available in: Atom PDF