パスワードを忘れた? アカウント作成
63223 story

Mac OS X Security Update 2009-001でPerlモジュールに不整合が発生する恐れ 16

ストーリー by hylom
たぶん自分も引っかかる、 部門より

あるAnonymous Coward 曰く、

MacでCPANを使ってモジュールのインストールを行っている場合、OS Xの最新のセキュリティアップデートで一部のモジュールに不整合が発生して利用できなくなるという問題が発生するようだ(本家記事より)。

宮川達彦氏のブログによると、問題は下記条件が揃った場合に起きるとのこと。

  • Mac OS X 10.5 (Leopard)を使っている
  • Mac OS XのPerlを使っている
  • CPANを使い、複数のコアモジュールのアップグレードを行ったことがある

また、この問題が発生した場合、次のようなエラーメッセージが表示されるとのこと。

% perl -MIO IO object version 1.22 does not match bootstrap parameter 1.23
at /System/Library/Perl/5.8.8/darwin-thread-multi-2level/XSLoader.pm
line 94.

Compilation failed in require.
BEGIN failed--compilation aborted.

この問題は、CPANシェルによってIO.pmが最新の1.23にアップグレードされているのに、セキュリティアップデートで古いIO.bundle 1.22が入ってくるのが原因とのこと。1.23は2006年にリリースされており、何故こんなに古いバージョンが入ってくるのかは不明だ。

IO.pmを1.23にアップデートすれば問題を解決できるが、IO.pmが壊れてしまっているためCPANシェルでこれを実行することはできない。そこで、CPANでIO-1.2301.tar.gzをダウンロードして手動でインストール(「perl Makefile.PL; make; sudo make install」)を実行することで問題は解決するとのこと。また、恐らくScalar::UtilとStorableに関しても同様の修正を行う必要があるとのことだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by taro-nishino (32033) on 2009年02月20日 18時05分 (#1517883)

    むしろ、宮川氏のブログにある通り、

    But hey, 1.23 was released in 2006 ... Why do you bring that ancient version back, Apple!?

    の方を、私は言いたいですね。
    OS XでPerlを使っている人なら、たぶん同じ感慨を持ったのではないでしょうか?

    • 単なる逆切れ? (スコア:2, 参考になる)

      by Anonymous Coward on 2009年02月20日 19時59分 (#1517951)

      >But hey, 1.23 was released in 2006 ... Why do you bring that ancient version back, Apple!?

      自分が勝手にOSのモジュールを書き換えておきながら、
      それが原因で動かなくなった責任をなんとかAppleに押し付けようとしているだけに見えます。

      デフォルトをいじらず、共存できる環境を自ら準備すればいいのに。

      >OS XでPerlを使っている人なら、たぶん同じ感慨を持ったのではないでしょうか?
      OS XでPerlを使っている人ですが、同じ感慨は残念ながら持ちませんでした。

      親コメント
    • by Anonymous Coward on 2009年02月20日 19時33分 (#1517936)
      Perl 5.8.8 リリース時のIO.pmのバージョンが1.22であり、その状態が継続しているだけだと考えれば、
      OSベンダーの対応としては(少なくとも私には)不思議ではありません。

      Perl 5.8.8 本体のバージョンはそのままでモジュールだけ新しいものに更新して配布する事の是非と、
      Perl自体のバージョンを上げるべきか否かの議論は別だと思います。
      親コメント
  • by Deasuke (34806) on 2009年02月20日 20時31分 (#1517966) 日記
    最後の段落の最初の行。

    > IO.pmが壊れてしまっているだめ

    これ、「た」に濁点が付いていますよね。画面が汚れていると思って掃除してしまった老眼かかっている私。

    ちなみに、私はLeopardを使っていてCPANでモジュールをDLしたりしてますが、全然問題になってないです。
    (問題になったのかもしれないけど、即座にバージョンアップしたんだと思う。記憶なし。)
    --
    Best regards, でぃーすけ
    • by Anonymous Coward

      otkです。ご指摘多謝。修正しました。
      #オフトピなのでACで。

    • by Anonymous Coward

      > IO.pmが壊れてしまっているらめ

      にしておけば全て解決

  • by Anonymous Coward on 2009年02月20日 14時12分 (#1517741)

    (Macのパッケージでなく)CPANでコアモジュールのアップデートをするような人が対象なら
    CPANで上手く入らないのは良くある事なので、perl Makefile.PL くらいは出来るんじゃないかな

    そんなに影響ないと思うPerl使い

    • by Anonymous Coward

      それでもこうやって話題にしてくれるのであれば、事前に判るのでありがたいが。

  • by Anonymous Coward on 2009年02月20日 15時16分 (#1517775)

    と思ってたけど違うの?
    自分で好きに変えといて、その後何も考えずふつ〜にOSアップデートしちゃって問題が出て騒いでる、としか見えんのだけど。

    # /Applications以下のアプリを好きに場所変えといて、そのせいでOSアップデートでちゃんと更新されず動かない、でもそんなこと忘れたふりして/おかまいなしに動かん動かん大騒ぎ、ってのも過去には散見してたし。

    • by Anonymous Coward on 2009年02月20日 15時58分 (#1517806)

      Macに限らずLinuxでもリポジトリ外からいろいろいじったものがアップデート時に壊れるというのはよくありますね。
      やっちまったーと苦笑するしかないですな。

      でもソフト本体ならともかく、設定ファイルとかデータとかがおかまいなしに上書きされるのはうれしくないし、慎重に扱ってほしいとも思います。
      デフォルトの設定ファイルがパッケージに含まれているため、上書きしてしまう
       → 設定ファイルは初回起動時に作成される仕様とする
      設定ファイル内の項目がアップデート対象なのでまるまる置き換え。
       → スクリプトなり何なりでスキャンして部分書き換えさせる
      こんな感じで。

      とりあえず、Perl使いじゃないので助かった。
      # いろいろいじってPHPのmysql接続がおかしくなってなおせてないAC

      親コメント
      • by Anonymous Coward
        ユーザーがどういう触り方をするのか色々なパターンを想定した上で確実に動作するように工夫するのは手間のかかることです。
        サポートだって半端にしか知らないクセに手を出す奴が一番ウザい。

        自分でいじりたがるクセにケツも拭けないようなヌルいユーザーには余計な苦労をしてもらうのがよろしい。
        そのほうが当人のスキルアップも図れるし、ベンダーもより生産的な作業に労力を回せるしで皆ハッピーになれるでしょう。
        • by Anonymous Coward

          Windowsユーザのことですね、分かります!

          #ま、あっちだと違う叩かれ方するんだろうけど。

  • by Anonymous Coward on 2009年02月20日 15時49分 (#1517801)

    これとは話的に逆なんだろうけど。

    • by Anonymous Coward

      化粧箱屋のAppleに技術を期待するなんて

  • by Anonymous Coward on 2009年02月22日 23時06分 (#1518767)
    MacPortを使えば、そんな心配から解放されますよ。
typodupeerror

にわかな奴ほど語りたがる -- あるハッカー

読み込み中...