MSYS、MSYS2、Cygwin、msysgit の違い

日本語でほとんど知られてなさそうに思ったので日本語訳してみた。

(ソース http://stackoverflow.com/questions/25019057/how-are-msys-msys2-and-msysgit-related-to-each-other  Jul 29 '14)

  • 他の3つは全てCygwinプロジェクトからフォークしたもの
  • 私の理解では、少なくとも過去はMSYSとMinGWはCygwinの競合として作られた。CygwinはWindows APIを直接呼ばず、パフォーマンスの良くない互換性レイヤーを通らなくてはいけない。MSYSとその親類縁者はCygwinよりも軽量である。MSYSコードを調べたら、あきれるほど時代遅れで、共用メモリに対する基本的な同期すらしてなかった。メンテ者が上流に遅れずについていっておらず、Cygwinがやった共有メモリの修正をしてなかった。
  • (上のコメントに対して)あなたは誤解している。要点は、Cygwinは互換性レイヤーなしで新しいバイナリを作ることをサポートしていないということだ。
  • (上のコメントに対して)それは間違いだ。MSYSのリポジトリを調べたら、Cygwinとまったく同じリポジトリ(同じ組織、同じコードなど)と分かるだろう。MSYSのすべてのファイルが10年以上前のものであることを除けば。私が理解しないのは、MSYS2とCygwinの開発者が折り合えばばかげたフォークをなくせるのに小競り合いをやめないことだ。Cygwinには有給のRed Hatの従業員がいる。MSYS2はいま活力があるが、MSYS2のボランティアが更新をやめたら、MSYSのように停滞してしまう未来が見える。
  • 私はMSYS2の開発者だ(免責事項)。MSYSは死んでいないが、あまり健康的にみえないと言っておく。MSYSは何年も前にCygwinのフォークとしてプロジェクトが始まり、決してCygwinに遅れずについていかなかった。msysgit はMSYSの少し古いバージョンのフォークで、あつらえのパッチや古いバージョンのbashやperlがある。MSYS2はmingwビルドチームの Alexey Pavlovによって始められたプロジェクトで、最新のCygwinをきっちりと追跡している。Alexeyは古いMSYSのパッチを移植し、彼自身のパッチも付け足した。Arch Linuxからパッケージ管理のPacmanを移植した。Pacmanはバイナリパッケージを管理する以上のもので、makepkgと呼ばれるインフラをビルドするソフトでもあり、PKGBUILDとパッチを作ることができる。卑見ながら、Pacmanの採用はWindowsのオープンソース開発の状況を大きく変えた。 MSYS2は、Windows XP SP3を最低限のターゲットとし、32ビットと64ビットの両方のWindowsをサポートしている。MSYS2をmsysやmsysgitと混在させないように求める。

 

MSYS2がAlexeyさんのGitHub(ttps://github.com/Alexpux/)を本拠地にしている事情がよくわかった。FFmpegのGitHub(ttps://github.com/FFmpeg)はURLにMichaelさんの名前が出てこない。URLに名前が出てきたら個人的な印象が強まる点が気になった。gimp、ffmpeg、vlcをビルドした前の紹介記事にあるようにMSYS2のmakepkg-mingwからPacmanまでの仕組みに感動したものだが、それがMSYS2の特徴であることが裏付けられた。CygwinはRed Hatがサポートしてて安心だが、MSYS2 は互換性レイヤーがなく軽量で、makepkg-mingwからPacmanというすばらしい仕組みがあってお勧めである。makepkg-mingwを使うことにより、PKGBUILDという簡単な設定ファイルを作るだけで、必要なパッチだけを取り込んで最新のコードをビルドすることができる。これは最小限の手間で、最新のコードに遅れずについていくためのすばらしい仕組み。さらにPacmanでバイナリのリポジトリを共有することができ、リポジトリに登録されたパッケージ一覧を出すことも、パッケージをインストールすることもできる。2chにCygwinのスレがあるのに、MSYS2のスレがなく、ニコ生のもっと評価されるべきタグが付いていい。

posted at 2015年06月14日 13:33 | Comment(0) | パソコン
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。