Ganymede + Babel で発生するエラーの回避方法

Eclipse は Europa(3.3) から日本語化を Babelプロジェクトで行わなくてはならなくなったのですが、Ganymede(3.4)で Babel をインストールしたらおかしな事になりました。

私が Eclipse で行う作業は Movable Type のシステムファイルの編集とか、ブログのテンプレートの編集位です。
この作業に必要なのは、PHPPerl のエディタくらいなので、EPICPDT をインストールして使っていますが、PDT は依存するパッケージ多くてセットアップが面倒なので、最近は PDT の All-In-One パッケージを使って Eclipse と PDT本体と依存パッケージを一気にインストールしてから EPIC をインストールしています。

そんな感じで、久しぶりに Eclipse を使おうと思い、最新版にアップデートしようとしたら思いっきりハマりました・・・

私がやろうとしたインストールの手順は以下の様な感じ。

  1. PDT All-In-One で Eclipse 3.4.1 と PDT 2.0.0(とその依存パッケージをインストール)
  2. Babel をインストールして Eclipse を日本語化
  3. 構成を最新状態にアップデート
  4. EPIC をインストール

最初の PDT All-In-One のみ PDT のサイトからファイルをダウンロードして展開しましたが、その後のセットアップは Eclipse の Software Updates を使って行います。

Babel のインストールまでは問題無かったのですが、Babel インストール後に再起動したら自動更新が依存関係のエラーでこけたので、無視して手動でアップデートを実行しましたが、ダメ。

アップデートを後回しにして EPIC のインストールに進みましたが、以下の様なエラーが発生しインストールできません。

Cannot complete the request. See the details.
Unsatisfied dependency: [org.eclipse.jpa.nl_ja 3.4.0.v20081118084956] requiredCapability: osgi.bundle/org.eclipse.jpa/0.0.0
Unsatisfied dependency: [org.eclipse.birt.report.designer.ui.rcp.nl_ja 3.4.0.v20081118084956] requiredCapability: osgi.bundle/org.eclipse.birt.report.designer.ui.rcp/0.0.0
Unsatisfied dependency: [org.eclipse.jdt.apt.tests.nl_ja 3.4.0.v20081118084956] requiredCapability: osgi.bundle/org.eclipse.jdt.apt.tests/0.0.0
Unsatisfied dependency: [org.eclipse.datatools.build.nl_ja 3.4.0.v20081118084956] requiredCapability: osgi.bundle/org.eclipse.datatools.build/0.0.0
Unsatisfied dependency: [org.eclipse.jdt.ui.tests.refactoring.nl_ja 3.4.0.v20081118084956] requiredCapability: osgi.bundle/org.eclipse.jdt.ui.tests.refactoring/0.0.0



(以下1000行以上続きます・・・)
Eclipse 3.4.1のBabel関係のエラー

エラーの詳細を見る限りパッケージの依存関連で問題がある様なのですが、1000以上も指摘されているので、なんとなくバグっぽい予感。

ネットでざっくり調べた感じ、Babelをインストールすると Software Updates などでエラーが出る事が多いみたいですが、解決法が良く分かりません。
Babel のサイトにも既知の問題として似たようなエラーが書いてありましたが解決法は特に書いてありません。

仕方がないので Babel をアンインストールしようとしたのですが、これも同じようなエラーが出てダメ。

一応、PDT が統合されたパッケージに問題がある可能性もあったので、普通に Eclipse 本体のみをダウンロードして試してみましたが、Babel をインストールすると Software Updates でエラーが発生しました。

選択肢としては、

  • Babel をインストールせずに英語版のまま使う。
  • セットアップの最後の段階でBabelをインストールし、アップデートやプラグインの追加を行わない。
    もしくは、アップデートやプラグインの追加を行う場合は再セットアップ。

となりそうですが、どちらも不便なので何か良い方法は無いかと色々試していたら、かなり強引ですが現象は回避できたので紹介します。


先ほどの手順を例として、エラーが出ないように実行すると、以下の様な感じになります。

  1. PDT All-In-One で Eclipse 3.4.1 と PDT 2.0.0(とその依存パッケージをインストール)
  2. Babel をインストールして Eclipse を日本語化
  3. Revert Configuration で Babel インストール前の構成に戻す
  4. 構成を最新状態にアップデート
  5. EPIC をインストール
Eclipse Software Update and Add-ons
Revert Software Configuration - Eclipse

Babel をインストールした後に、Software Update の Revert Configuration を使って、Babelインストール前の構成に戻してしまうと言うところが肝です。

Revert Configuration が実際に何を行っているのかは良く分かりませんが、この作業を行っても Eclipse は日本語化された状態で起動します。
日本語化された状態で起動するのですが、システム的には Babel がインストールされていない状態になるらしく Installed Software などにも表示されなくなります。
なので、Babel に起因していると思われる依存関係のエラーも発生しません。

問題無く自動更新も完了し、EPIC のインストールできました。

かなり強引な回避方法なので微妙ですが、とりあえず使える状態にはなりました。
Babel 自体のアップデートは手動でやるしか無さそうですし、アップデートしたら忘れずに構成を元に戻す必要があるので、メンドクサイですが・・・


Eclipse を使い始めてから数年経ちますが、年々プロダクトとしての完成度は上がってきていると思いますし、PHP や Perl の開発環境としては使いやすくてお勧めなんですが、Eclipse 自体のアップデートとかプラグインのアップデートで問題が起こるのは相変わらずと言うか、なかなか解決しませんね・・・
まぁ、しょうがないかな?無償で使えるし・・・