新しい windows ラップトップを購入したので、せっかくだから Mac で開発していたものを cygwin に少し移行しようと色々設定した時のまとめメモ。
主に対応した(する予定)なのは以下のもの。
環境は以下の通り。
PHP は cygwin のパッケージは含まれていないため、コンパイルするか他のコンパイル済みバイナリを探すしかない。コンパイルを試してみたが、色々コケるので apt-cyg を使った。
$ svn checkout http://apt-cyg.googlecode.com/svn/trunk/ /usr/local/bin
$ apt-cyg -m ftp://ftp.cygwinports.org/pub/cygwinports/ install php
これで完了。
mysql は cygwin のパッケージが存在するので、それをインストールする。インストールしたら install_db をする。
$ mysql_install_db
そしてスタート、ストップは
$ /usr/share/mysql/mysql.server start $ /usr/share/mysql/mysql.server stop
で行える。
postgres も cygwin パッケージがあるので、それで簡単にインストールできる。ただし postgres を動かすには 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
$ /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
$ /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
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 はコンパイルを試みるも、現時点で最新の 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 は、公式サイトより 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/
インストール先やデータディレクトリのパスは適当に。