ITエンジニア/デザイナ向けにオープンソースを毎日紹介

CDEは環境をパッケージングし、共通バイナリを異なるディストリビューションで動作させる。

[/s2If]

CDEはLinux向けのオープンソース・ソフトウェア。Linuxではソースをダウンロードし、コンパイルして実行するのが当たり前になっている。ディストリビューション、サーバごとに環境が異なるのでそれをconfigureやmakeを通じて吸収する訳だ。


Screen-shot 313.png

Mac OSXでは無理でした…

 

同様にRubyやPython、PHP、Perlといったスクリプト言語ではコードを実行エンジンによって個々のOS間の誤差を吸収して実行する。この誤差を吸収し、異なるLinuxディストリビューション間でも同じバイナリを動作させるのがCDEだ。

CDEの仕組みはシンプルではある。バイナリを動作させるのに必要なライブラリを取り揃えてしまうのだ。バイナリそのものを実行するとエラーになるが、CDEを通して実行することで必要なライブラリを読み込んで実行する。デモ動画ではUbuntu上でコンパイルしたバイナリがKnoppix上で動作する。


Screen-shot 314.png

ファイル構造

 

もちろん全てのバイナリが動作する訳ではない。だがコードをコンパイルする手間なく異なる環境でも同じバイナリが動作するというのは試みとしてユニークだ。Linuxのバイナリが動作する仕組みを知る上でも興味深い。


CDE: automatic packaging of Code, Data, and Environment from PGPGPG on Vimeo.

 

MOONGIFTはこう見る

オープンソースではないバイナリ配布のシステムにおいて、ディストリビューションごとの誤差を吸収するというのは工数がかかる作業かも知れない。そのような場合に必要なライブラリを全てつけて配布するというやり方は興味深いかも知れない(ライセンスが気になるが)。

たったHello Worldを出力するプログラムを書いてもCDEを使うと多数のライブラリを読み込むのに驚くかも知れない。Linuxの勉強用としても使えそうだ。

 

CDE: automatic packaging of Code, Data, and Environment

 http://www.stanford.edu/~pgbovine/cde.html

[/s2If]

pgbovine's CDE at master - GitHub

 https://github.com/pgbovine/CDE/

 

MOONGIFTの関連記事

コメント

  • DevRel
  • Com2