1. 環境設定
setup.exeでインストールしたあと、Windowsに各種の環境変数を設定する。
システム環境変数の Path に cygwin1.dll の場所(例: [略];c:\cygwin\bin )を足す。
ユーザ環境変数に以下の値(例)をセットする。
CYGWIN = ntsec
HOME = /home/(UserName)
MAKE_MODE = UNIX
SHELL = /bin/bash
TMPDIR = /tmp
あと、TMP = /tmpを設定したほうがいいかもしれない。ちなみに、TMP ,TMPDIR あたりが設定されていないと、ウチの環境ではgccがコア吐いてお亡くなりになったような覚えがある。
ユーザ変数は、シェルの設定ファイルで定義しても問題はなさそう。cygtermを利用している場合、cygterm.cfg に設定して渡してもいいかと。
2. sshd
ssh-host-config で簡単に設定できる。
> ssh-host-config
[略]
> cygrunsrv -S sshd #サービス開始
> cygrunsrv -E sshd #サービス停止
> cygrunsrv -R sshd #サービスの登録を削除
3. Apache 1.X
※Apache 2系列に移行したため、現在の状況は知りません。。。
/etc/apache/httpd.conf には、以下のユーザとグループを設定する。
User SYSTEM
Group SYSTEM
サービスへの登録(cygrunsrv)
- 1.3.29-1 以降
-
cygrunsrv -I httpd -d "CYGWIN httpd" -p /usr/sbin/httpd.exe -a -F
- 1.3.29 以前
-
cygrunsrv -I httpd -d "CYGWIN httpd" -p /usr/sbin/httpd.exe -a -k
> net start httpd #サービスの開始
> net stop httpd #サービスの停止
> cygrunsrv -R httpd #サービスの登録を削除
4. Apache 2.X
※lighttpdに移行したので、現在の状況は知りません。。。
apache 2.Xについては、cygserverの元で動くので、事前にcygserverの設定をしておく。
> cygserver-config
NTサービスへの登録の有無などの質問に答えてコンフィグ完了。
Windowsの環境変数CYGWINに"server"の文字列を追加する。(例:CYGWIN=ntsec server)
あとは、apache2を適宜設定して、起動するだけ。
> /usr/sbin/httpd2.exe -k start
タスクスケジューラあたりでマシン起動時にサービス開始をすることが可能。
5. lighttpd
lighttpd(1.4.15)をcygrunsrv経由でサービスとして実行する。
> cygrunsrv --install lighttpd --path /usr/sbin/lighttpd --args \
"-D -f /etc/lighttpd/lighttpd.conf" --stderr /var/log/lighttpd/syserr.log
6. bash 環境設定
とりあえず、めったにbash使わないので、.bashrcの書き方もメモしておく。
- 環境変数
-
export SHELL=/bin/bash
- パスの追加
-
export PATH=$PATH:'/bin'
- aliasの設定
-
alias rm='rm -i'
.bashrcに日本語環境に関する設定をしておく。
alias ls='ls --show-control-chars -F'
export LANG=ja_JP.SJIS
export JLESSCHARSET=japanese-sjis
つぎに、~/.inputrc を作成する。
# ~/.inputrc
set kanji-code sjis
set convert-meta off
set meta-flag on
set input-meta on
set output-meta on
7. tcsh 環境設定
基本的な書式
- 環境変数
-
setenv EDITOR vi
- パスの設定
-
set path=(/bin /sbin /usr/bin)
- パスの追加
-
set path=($path ~/bin)
- alias の設定
-
alias ls 'ls -F'
プロンプトのスタイルを変更
# [%P,%T] date & time
# [%Y %y,%W %w,%D,%d] year,month,day,week
# [%m] host_name
# [%n] user_name
# [%/,%c] current_directory
# 0:default 1:bright 4:underline 5:blink
# FG / 37:white 30:black 31:red 32:green 33:yellow 34:blue 35:purple 36:cyan
# BG / 40:black 41:red 42:green 43:yellow 44:blue 45:purple 46:cyan 47:white
set prompt='%{\e[31m%n@%m%} %{\e[33m%/\e[00m%} \
% '
8. Windowsとのpasswd同期
たとえば、cygserverが
cygserver: WARNING: User not found in /etc/passwd! Using uid -1!
のようなエラーをイベントログに出しているときなど、/etc/passwd, /etc/groupを更新すると良いらしい。以下のコマンドを使う。
mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group
9. SJIS日本語ディレクトリの扱い
Cygwin側もShift_JISで使っていれば問題ないのだけど、EUC-JP環境export LANG=ja_JP.eucJPなどしてる場合、cdするのさえ困る。
そういうときは、とりあえず非常に面倒なのだけど、
cd `echo "日本語DIR名" | nkf -s`
のようにして、無理やり日本語ファイル名などを指定してみる。