主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

Cygwin で開発環境

最終更新日 2013-05-15 14:28:53 (1年以上前の記事です)

新しい windows ラップトップを購入したので、せっかくだから Mac で開発していたものを cygwin に少し移行しようと色々設定した時のまとめメモ。

主に対応した(する予定)なのは以下のもの。

  • Apache(planning)
  • nginx(planning)
  • php
  • mysql
  • postgres
  • rails
  • mongodb
  • node.js

環境は以下の通り。

  • Windows 8 Pro x64
  • Cygwin-1.7.18

Apache

nginx

PHP

PHP は cygwin のパッケージは含まれていないため、コンパイルするか他のコンパイル済みバイナリを探すしかない。コンパイルを試してみたが、色々コケるので apt-cyg を使った。

apt-cyg をインストール

$ svn checkout http://apt-cyg.googlecode.com/svn/trunk/ /usr/local/bin

php をインストール

$ apt-cyg -m ftp://ftp.cygwinports.org/pub/cygwinports/ install php

これで完了。

MySQL

mysql は cygwin のパッケージが存在するので、それをインストールする。インストールしたら install_db をする。

$ mysql_install_db

そしてスタート、ストップは

$ /usr/share/mysql/mysql.server start
$ /usr/share/mysql/mysql.server stop

で行える。

Postgres

postgres も cygwin パッケージがあるので、それで簡単にインストールできる。ただし postgres を動かすには cygserver を動作させないといけないので、少しだけ作業が必要。

cygserver の設定

まずは cygserver の設定を行う。管理者権限で cygwin を起動し、以下のコマンドを実行する。

$ cygserver-config
Overwrite existing /etc/cygserver.conf file? (yes/no) yes
Generating /etc/cygserver.conf file


Warning: The following function requires administrator privileges!

Do you want to install cygserver as service?
(Say "no" if it's already installed as service) (yes/no) yes

The service has been installed under LocalSystem account.
To start it, call `net start cygserver' or `cygrunsrv -S cygserver'.

Further configuration options are available by editing the configuration
file /etc/cygserver.conf.  Please read the inline information in that
file carefully. The best option for the start is to just leave it alone.

Basic Cygserver configuration finished. Have fun!

これを行うと、 Windows サービスの一覧に CYGWIN cygserver という名前のサービスが登録される。そうしたら cygserver を起動する。

$ cygrunsrv -S cygserver

サービスとして postgres を実行

$ /etc/rc.d/init.d/postgresql initdb
$ /etc/rc.d/init.d/postgresql install
$ /etc/rc.d/init.d/postgresql start
$ /etc/rc.d/init.d/postgresql stop

ユーザーとして postgres を実行

$ /usr/sbin/initdb -D /usr/share/postgresql/data
$ /usr/sbin/pg_ctl start -D /usr/share/postgresql/data -l /var/log/postgresql.log
$ /usr/sbin/pg_ctl stop -D /usr/share/postgresql/data

Rails

Ruby 自体は cygwin パッケージに存在するが、特定のバージョンを自由に使いたかったので RVM を試みるが、どうしても rebase のエラーが解決できず断念。自前でコンパイルし /usr/local/rubies/ にインストールすることに。

コンパイルはすんなり行った。とりあえずインストールしたバージョンは ruby-1.9.3-p392。コンパイルに必要なパッケージは、 migw64-i686-gcc-g++, make, automake, readline, libreadline7, zlib-devel あたり。

$ ./configure --prefix=/usr/local/rubies/1.9.3-p392
$ make
$ make install

node.js

node.js はコンパイルを試みるも、現時点で最新の v0.10.5 は cygwin ではコンパイルは難しそう。 v0.4.12 ではコンパイルできたが、最新版を使いたいので公式サイトから windows 用インストーラーをダウンロードし、インストールする。

インストール後は cygwin から node や npm コマンドが普通に使える。試しに express 環境を作ってみると、

$ npm install express -g
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
...
express@3.2.4 C:\Users\Masaki\AppData\Roaming\npm\node_modules\express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie-signature@1.0.1
├── buffer-crc32@0.2.1
├── cookie@0.0.5
├── commander@0.6.1
├── debug@0.7.2
├── mkdirp@0.3.4
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.9 (qs@0.6.4, pause@0.0.1, bytes@0.2.0, formidable@1.0.13)

$ express --sessions --css less testapp

   create : testapp
   create : testapp/package.json
   create : testapp/app.js
   create : testapp/public
   create : testapp/public/images
   create : testapp/views
   create : testapp/views/layout.jade
   create : testapp/views/index.jade
   create : testapp/routes
   create : testapp/routes/index.js
   create : testapp/routes/user.js
   create : testapp/public/javascripts
   create : testapp/public/stylesheets
   create : testapp/public/stylesheets/style.less

$ cd testapp && npm install
npm WARN package.json application-name@0.0.1 No README.md file found!
npm http GET https://registry.npmjs.org/express/3.2.4
...
express@3.2.4 node_modules\express
├── methods@0.0.1
├── fresh@0.1.0
├── cookie-signature@1.0.1
├── range-parser@0.0.4
├── buffer-crc32@0.2.1
├── cookie@0.0.5
├── debug@0.7.2
├── commander@0.6.1
├── mkdirp@0.3.4
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.9 (qs@0.6.4, pause@0.0.1, bytes@0.2.0, formidable@1.0.13)

less-middleware@0.1.11 node_modules\less-middleware
├── mkdirp@0.3.5
└── less@1.3.3 (ycssmin@1.0.1)

jade@0.30.0 node_modules\jade
├── character-parser@1.0.2
├── mkdirp@0.3.5
├── commander@1.1.1 (keypress@0.1.0)
├── monocle@0.1.47 (readdirp@0.2.4)
└── transformers@2.0.1 (promise@2.0.0, css@1.0.8, uglify-js@2.2.5)

$ node app
Express server listening on port 3000

動作した。

mongodb

mongodb は、公式サイトより windows x86 用の zip をダウンロードし、解凍する。中に bin フォルダがあるので、それを C:\Apps\mongodb-win32-i386-2.4.3 にコピーする。

あとは、 cygwin から以下のようなコマンドをたたいて開始できる。

$ /cygdrive/c/Apps/mongodb-win32-i386-2.4.3/bin/mongod --journal --dbpath=/Apps/mongodb-win32-i386-2.4.3/data/db/

インストール先やデータディレクトリのパスは適当に。

最終更新日 2013-05-15 14:28:53

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google