ソフトウェア/cygwin

(4213d) 更新


Cygwin

Cygwin は Unix 上のソフトを Windows 上にポートするための基本ライブラリで、 付属のパッケージマネージャで好きなソフトを選んでインストール・使用できる物です。
http://www.cygwin.com/

  • gcc, ruby, perl, python, git などの開発ツール
  • bash 他のコマンドラインツール
  • X, tcl/tk, KDE, gnome 他の GUI ツール
  • apache2 他の Web 関連ソフト

など、標準でもかなりのものがそろっています。

標準にないものについては、

Cygwin ports プロジェクトというのがあって、
http://sourceware.org/cygwinports/
ここにはさらに多くのソフトウェアが cygwin パッケージとして提供されています。

たとえば php などもあるので、apache2 と組み合わせて Windows 上に 開発・テスト用の Web サーバーを構築するなどができます。

スタックサイズの割り当て変更

cygwin 上の ruby スクリプトから system 関数を使って外部プログラムを呼び出そうとしたところ、

LANG:console
     0 [main] ruby 46632 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
   111 [main] ruby 46648 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
     0 [main] ruby 46680 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
     0 [main] ruby 46708 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
   125 [main] ruby 46724 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
     0 [main] ruby 46752 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
    72 [main] ruby 46768 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
     0 [main] ruby 46796 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
   152 [main] ruby 46812 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
    78 [main] ruby 46828 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
     0 [main] ruby 46844 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487
     0 [main] ruby 46860 child_info_fork::abort: can't commit memory for stack 0x286000(106496), Win32 error 487

のようなエラーが出て困りました。

http://iwadon.hateblo.jp/entry/2012/03/31/035715

を参考に、

LANG:console
$ peflags -x0x400000 /usr/bin/ruby

としたら動くようになりました。


Counter: 5961 (from 2010/06/03), today: 1, yesterday: 0