[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:002252] Re: RubyDCL / RubyNetCDF / Multibitnums updated



堀之内です.
 
> 以下のようにパッケージをアップデートしました.
> 
>   RubyDCL       1.5.1
>   RubyNetCDF    0.6.1
>   Multibitnums  0.1.2
> 
> Mac OS 10.3 で生ずる不具合への対応ですので,

これに関連して,以前(4/18)に作成したメモを公開します.
私自身は使ってないので,Macユーザー(池田さん)とのやり
取りの結果です.

========================================================
Mac OS 10.3 での経験のまとめ(10.2でもたぶん同様)

1. ranlib 問題

   * status: 手動で解決する方法はわかった
   * Cのライブラリーに対し発生 (NetCDF, DCL)。
   * 一件正常にインストールされるが、RubyDCL など、それを利用
     するライブラリーにリンクしようとした際に、
       ld: table of contents for archive: /usr/local/lib/libcdcl53.a
       is out of  date; rerun ranlib(1) (can't load from it) 
     といったエラーが発生する。
   * 原因: 不明
   * 対策
     * 手動での解決は可:
         % ranlib /usr/local/lib/libcdcl53.a
       のようにする.
   * 考察:
     * 作られた Makefile を見ると確かに ranlib を当ているのでお
       かしい -->
       * ディレクトリーツリー上の位置が変わると ranlib をもう一
         度する必要がある? -- そんなあほな。それならつける薬なし。
       * ひょっとして ranlib は2つ以上あって、$PATH の関係で
         make 時にあたる ranlib は古い? -- ありえるかも。それな
         ら Mac ユーザー自身が $PATH の設定で対策すべし。
       * ranlib はいいんだけど、何かオプションが要る? 
         mac の ranlib のオンラインマニュアルを見よ。
         もしそうなら、恐らく ruby インストールのための configure
         時に Mac ユーザー自身が対応可能と思われる。

2. 通称 xargc/xargv 問題

   * status: 解決した --> それを取り込んだ新ライブラリーは今後公開
   * DCL-C で発生
   * DCL-C で使う f2c 互換ライブラリー f2c4dcl で定義されている
     グローバル変数 (xargc/xargv) が、libcdcl53.a に含まれている
     にもかかわらず、それをリンクした Ruby/DCL のライブラリーファ
     イル dclraw.bundle に入らない。
   * 原因: Mac のリンカーのバグと思う
   * 対策:
     * 今後リリースされる DCL-C 版の新しい版を使う。(その中では、
       問題が起きないようにファイルの再構成をしてある。具体的に
       は f2csrc/util.c 中の関数 getarg_, iargc_ を 
       f2csrc/main.c に移動)

3. グローバル変数再定義問題

   * status: 解決した --> それを取り込んだ新ライブラリーは今後公開
   * Ruby 用拡張ライブラリーなど、C で書かれたライブラリーで発生
   * 同じグローバル変数の定義が別々のライブラリーに2個所にあると、
     リンカーがエラーを出す。
   * 対策法: そうならないように改訂したライブラリーを使う。
     RubyDCL の次期バージョン 1.5.1 以上、RubyNetCDF の次期バー
     ジョン 0.6.1 以上。なお、気象庁データを扱う GPV に必要な
     Multibitnums でも同様。
   * 考察
     これまで電脳 Ruby 製品が使われてきた様々な OS / リンカーで
     はこの問題をよろしく解決してくれるので、問題なかった。しか
     し、対応した方が良い問題であるのは確か。
 
4. Ruby-GNOME2 が入らない問題

   * status: 未解決
   * コンパイルエラーが発生
   * 原因は未解明。gtk 中の pango 1.4.1 のラッパー生成時に、恐ら
     くpango のヘッダーファイルに定義されているべき構造体の定義
     がなくて発生すると思われる。
   * 対策法はまだわかってない。(ただし、そんなに難しくなさそう)

5. (これは Mac に限らない): 一括インストーラーの依存性問題

   * status: 解明済だが未対応。ただし、手動で対応は可能。
   * 一括インストーラでは,実際には依存してないのにしてることになっ
     てるのがある。このため、Macでも本来インストール可能であるのに、
     間違ってインストールできないライブラリーがある。
   * 対策
     * 作者側:依存関係の再設定
     * ユーザー側: 問題のあるものに関しては一括インストーラはダ
       ウンロードまでとし、手で入れる。(それでも使わないよりか
       なり楽になる)