From: Takahiro Kambe Date: 2008-06-14T18:53:27+09:00 Subject: [ruby-dev:35099] Re: Ruby 1.8.7-p17 has been released こんばんは。 新たに導入されたvendor_ruby 関係が、configure後に適切に展開されていない ようです。 config.hの終わりの方: #define RUBY_LIB "/usr/pkg/lib/ruby/1.8" #define RUBY_SITE_LIB "/usr/pkg/lib/ruby/site_ruby" #define RUBY_SITE_LIB2 "/usr/pkg/lib/ruby/site_ruby/1.8" #define RUBY_LIB "/usr/pkg/lib/ruby/1.8" #define RUBY_VENDOR_LIB "${exec_prefix}/lib/ruby/vendor_ruby" #define RUBY_VENDOR_LIB2 "${exec_prefix}/lib/ruby/vendor_ruby/1.8" #define RUBY_PLATFORM "i386-netbsdelf" #define RUBY_ARCHLIB "/usr/pkg/lib/ruby/1.8/i386-netbsdelf" #define RUBY_SITE_ARCHLIB "/usr/pkg/lib/ruby/site_ruby/1.8/i386-netbsdelf" #define RUBY_VENDOR_ARCHLIB "${exec_prefix}/lib/ruby/vendor_ruby/1.8/i386-netbsdelf" RUBY_LIBが2つあるのは愛敬としても、${exec_prefix}を含んだディレクトリ のままで、$:が定義されてしまっていました。:-( configureの方を確認したところ、SITE_DIRと同様な対処がされていなかった ので、最後に付けた変更を行ったところ、以下のような内容になりました。 (但し、cygwin等の部分は定かではありません。) #define RUBY_LIB "/usr/pkg/lib/ruby/1.8" #define RUBY_SITE_LIB "/usr/pkg/lib/ruby/site_ruby" #define RUBY_SITE_LIB2 "/usr/pkg/lib/ruby/site_ruby/1.8" #define RUBY_VENDOR_LIB "/usr/pkg/lib/ruby/vendor_ruby" #define RUBY_VENDOR_LIB2 "/usr/pkg/lib/ruby/vendor_ruby/1.8" #define RUBY_PLATFORM "i386-netbsdelf" #define RUBY_ARCHLIB "/usr/pkg/lib/ruby/1.8/i386-netbsdelf" #define RUBY_SITE_ARCHLIB "/usr/pkg/lib/ruby/site_ruby/1.8/i386-netbsdelf" #define RUBY_VENDOR_ARCHLIB "/usr/pkg/lib/ruby/vendor_ruby/1.8/i386-netbsdelf" (せっかくvendor_rubyを使うように直そうとしたら、見事に嵌まりました。) -- 神戸 隆博 / Takahiro Kambe --- configure.in.orig 2008-06-09 03:23:46.000000000 +0900 +++ configure.in @@ -1717,14 +1736,14 @@ AC_ARG_WITH(vendordir, VENDOR_DIR=`eval echo \\"${vendordir}\\"` case "$target_os" in cygwin*|mingw*|*djgpp*|os2-emx*) - RUBY_VENDOR_LIB_PATH="`expr "$VENDOR_DIR" : "$prefix\(/.*\)"`" || - RUBY_VENDOR_LIB_PATH="$VENDOR_DIR";; + RUBY_VENDOR_LIB_PATH="`eval echo "$VENDOR_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`" + ;; *) - RUBY_VENDOR_LIB_PATH="$VENDOR_DIR";; + RUBY_VENDOR_LIB_PATH="`eval echo \\"$VENDOR_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`" + ;; esac RUBY_VENDOR_LIB_PATH2="${RUBY_VENDOR_LIB_PATH}/${MAJOR}.${MINOR}" -AC_DEFINE_UNQUOTED(RUBY_LIB, "${RUBY_LIB_PATH}") AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB, "${RUBY_VENDOR_LIB_PATH}") AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB2, "${RUBY_VENDOR_LIB_PATH2}")