OSXWorkShop とは

OSX WorkShopは、九州大学の小林さんが作成しているTeX/Emacs/数値計算用研究ツールなどをインストールと更新を管理するシステムです。Linuxの便利さをOSXでも実現しようという目的があります。Linuxの便利さの1つが、このソフトウェアのインストールと更新の一元管理で、実際つい最近ドイツの研究室の同僚からLinuxのそれの素晴らしさを力説されたりしました。TeXが使いたければ、リストの中からTeXにチェックを入れてボタンを押すだけで、インストールが自動的に行われ直ぐに使えるようになります。
一方、MacOSXLinuxと違うアプローチです。OSに組み込まれたツールの更新は、ソフトウェアアップデートから一元管理できますが、ユーザーがソフトウェアを追加するには、それを入手して手動でインストールする必要があります。一般的な作業の流れは、

  • ソフトウェアが配布されているWebサイトを探す。(TeXのように複数ある場合は、どれがベストかを情報収集するところから始める)
  • Webサイトの中から、必要なファイルを見つけてダウンロードする
  • インストールする。(一般的なインストール方法は、アプリケーションフォルダにドラッグ&ドロップするだけとなっていて、OSXユーザはその直感的な作業を学習しています。)
  • シェルやEmacsの設定ファイルを編集する(詳しくない場合は、Webサイトを参考にしながら)
  • アップデートは各アプリが自ら行う。(よくあるのは、起動時や設定した頻度でアップデートを確認して、新しいものがあればダイアログでアップデートを促し、アップデート作業は自動的に行われる。)

となります。この段取りはすぐに学習できることですし特に問題はないのですが、研究の作業環境を統一してノウハウなどを共有したいという場合は、選択するソフトウェアのばらつきや、参考にしたWebサイトが違うことによる設定ファイルの違いなど、どうしても不揃いになってしまいます。個人ユーザでも、TeXEmacsgnuplotなどなで1つ1つこの作業を繰り返すのは大変なことですし、Macを使い始めたばかりの人にとってはさらに大変です。


OSXWorkShopは、OSXでもLinuxの便利な部分を実現しようという試みです。小林さんはそれを実現する仕組みづくりと、1つの利用例として理系研究者ユーザを想定したひとまとまりのソフトウェアをパッケージして配布されています。配布しているソフトウェアは、X11をつかったUNIX由来のソフトウェアからOSX用に作成されたアプリケーションまで、研究に必要なものという括りで選ばれています(だから、「OSXWS=UNIXソフトウェアをインストールするもの」ではありません)。また、Linuxと同じように、シェル、Emacs関係の設定ファイルがある程度カスタマイズされた状態で提供されるようになっています。

OSXWorkShopは、それを使っている全てのユーザに同一の作業環境を提供できるように設計されています。

OSXWorkShop以外にも、UNIX由来のソフトウェアを配布するMacPortsFinkがありますが、作業環境の統一に関してはOSXWSが一番力が入っています。(パッケージ数はMacPortsのほうが圧倒的に多いですが。)

以上がOSXWSの紹介ですが、OSXでこのようなパッケージマネージャを導入するときに、1つだけ些細な事ですが気になる事がありました。
それは、パッケージマネージャで管理される事を想定していない、OSXネイティブアプリケーションは、独自のアップデート機能をもっているということです。小林さんは、バージョン管理はOSXWorkShopの役割だから、それぞれが更新機能をもつ必要はなく、それはトラブルの原因になりうるという考えです。確かに一元管理をするツールを提供する立場としては、想定外にバージョンが変わるというのは気持ちが悪い事かもしれません。ただOSX用のアプリケーションは、そもそもパッケージマネージャによる管理を必要とせずに、自分で更新できるように設計されているので、アップデートが原因のトラブルがあったとしたら、それはOSXWSの問題ではなく全ユーザ共通のトラブルという気がします。(OSXWSの場合、バージョンアップによる混乱がないことを確認してから更新のタイミングをパッケージ配布者が決められるのでより安全ではありますが。)
OSXのパッケージマネージャとしては、アプリ毎の更新機能を残したまま配布してみてもいいのではという意見を出しましたが、今回は小林さんの当初の考え通りでいくことになりました。

この問題に対して、ツィッターのほうでもコメントをもらいましたので紹介させてもらいます。OSXLinuxの設計の違いなど、今後を考える上で大変参考になりました。
http://twitter.com/vitroid/status/10026569005
http://twitter.com/vitroid/status/10026692203
http://twitter.com/vitroid/status/10026838322
http://twitter.com/vitroid/status/10027204619
http://twitter.com/vitroid/status/10027363364