西澤様: 京大の山本です。 ruby-lapack-1.5で Mac OSX では rake でのインストールにいくつか問題がありましたのでご報告します。 #gem からのインストールは未確認です。 Mac OSX (ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin10]) では rake 時に 1. lapack.so が lapack.bundle という名前で作られるので lapack.so がないといってこける rake install 時に 2. dst = File.join(destdir, archdir, target_prefix) で destdir が nil だと joinできないと言われてこける 3. install lib, dst, :mode => 644 だと実行されるのが install -c -m 01204 になってる これらは以下のように Rakefile を書き換えると回避できました。 diff -u Rakefile.orig Rakefile --- Rakefile.orig 2011-05-02 11:14:40.000000000 +0900 +++ Rakefile 2011-05-03 23:23:11.000000000 +0900 @@ -14,9 +14,15 @@ NAME = "lapack" LIBS = FileList["lib/#{target_prefix}/*rb"] + +case Config::CONFIG["host_os"] +when /darwin/ +DLLIB = "ext/#{NAME}.bundle" +so_file = File.join("lib", target_prefix, "#{NAME}.bundle") +else DLLIB = "ext/#{NAME}.so" so_file = File.join("lib", target_prefix, "#{NAME}.so") - +end task :default => so_file @@ -47,17 +53,26 @@ task :install => [:install_so, :install_rb] task :install_so => DLLIB do +if destdir then dst = File.join(destdir, archdir, target_prefix) +else + dst = File.join(archdir, target_prefix) +end +p dst mkdir_p dst install DLLIB, dst, :mode => 0755 end task :install_rb => LIBS do - dst = File.join(destdir, libdir, target_prefix) +if destdir then + dst = File.join(destdir, archdir, target_prefix) +else + dst = File.join(archdir, target_prefix) +end mkdir_p dst - LIBS.each do |lib| - install lib, dst, :mode => 644 - end + LIBS.each do |lib| + install lib, dst, :mode => 0644 + end end CLEAN.include("ext/*.o")
Attachment:
patch-Rakefile.diff
Description: Binary data
On 2011/05/02, at 11:53, Seiya Nishizawa wrote: > 佐々木様 > > 2011/5/2 Youhei SASAKI <uwabami@xxxxxxxxxxxxxx>: >> もし問題無ければ, 現状の git 版を ruby-1.5.0 としてリリースして頂けませんか? >> # 1.5.0 を使って debian へ upload しようと思います.... > > 1.5 をリリースしました。 > よろしくお願いいたします。 > > > 西澤誠也 > > -- > Seiya Nishizawa > Center for Planetary Science, Kobe University > TEL : 078-803-6472 > FAX : 078-803-5731 > 山本 博基 hiroki@xxxxxxxxxxxxxxxxxx 京都大学大学院理学研究科 地球惑星科学専攻 気象学研究室 博士 3年