※ 2010年 4月現在、Cygwin の最新リリースは 1.7.2 です。1.7 系は 1.5 系と動作が一部異なるため、この記事は既に時代遅れです。ご注意ください。
Cygwin 1.5 のインストールと初期設定に必要な作業についてまとめています。その際に参考となる WWW 上の情報も紹介しています。
はじめに
本稿は、以下の前提で書かれています。
| 項目 | 本稿での値 | デフォルト値 |
|---|---|---|
| Cygwin のルート・ディレクトリ | D:\ | C:\cygwin\ |
個人的な趣味の問題で、ディレクトリをインストーラのデフォルト値から変更していますので、デフォルトの場所にインストールする場合は適時読み替えてください。
インストール前の予備知識
インストール作業を始める前に、下記 URL 先を熟読します。
- Cygwin に関する予備知識 (Rue. SATOH さん@Studio Sixnine.)
- Cygwin Setup によるインストール の 『インストール前の注意』 (早田恭彦さん)
いずれも Cygwin を使う上で必読とも言えるサイトです。
インストール前の準備
インストールの前準備として、ACL の設定、ディレクトリの作成、および環境変数の設定を行ないます。
ACL の設定
Cygwin をより Unix ライクに使用するためのノウハウが、以下の URL 先にあります。
ここまで徹底はできないながらも、インストール先の ACL を適切に設定し、セットアップおよびパッケージの追加/削除は Administrator で行なうようにします。Administrator で Windows にログオンし、以下のコマンドを実行します。
C:\>cacls D:\ /p なし:R Everyone:R SYSTEM:F Administrators:F Users:R "CREATOR OWNER:F"
以降、インストール完了まで Administrator でログオンして作業します。
パッケージ保存用ディレクトリの作成
ダウンロードしたパッケージを保存するためのディレクトリ D:\packages\ を作成します。後でダウンロードするインストーラも、このディレクトリに保存します。
環境変数の設定
以下の環境変数を設定します。それぞれの環境変数の作用に関しては、『Cygwin ユーザーズガイド(翻訳)』 の 『CYGWIN 環境変数』 の項を参照。
| 変数 | 値 |
|---|---|
| CYGWIN | binmode ntsec ntea tty |
| HOME | D:\home\username (( username は Windows のアカウント名です。 )) |
| MAKE_MODE | UNIX |
| TMP | D:\tmp |
| TZ | JST-9 |
これらは Cygwin のための環境変数ですが、HOME, TMP および TZ は Meadow も参照します。後で Meadow もインストールしますので、HOME および TMP については Windows のパス形式で設定します。 環境変数の設定は、 【システムのプロパティ】 ⇒ 【詳細】 ⇒ 【環境変数】 ⇒ 【username のユーザー環境変数】 で行ないます。
Cygwin Setup のダウンロード
Cygwin では、ネットワーク経由でパッケージをダウンロードしてインストールするインストーラ “Cygwin Setup” が用意されています。インストールだけでなく、パッケージのバージョン管理にも利用します。 以下の URL から Cygwin Setup の実行ファイル setup.exe をダウンロードし、 D:\packages\ に保存します。
Cygwin Setup でのインストール
ダウンロードした setup.exe を実行し、インストールを開始します。以下に、Cygwin Setup (setup.exe) でのインストール手順を説明します。
以上でインストール作業は完了です。
(補足) パッケージの追加インストール
インストール直後の状態では、vi も入っていない状態ですので、パッケージの追加インストールについて説明しておきます。
パッケージの削除もほぼ同じ手順で可能です。
(補足) パッケージのバージョン・アップ
既にインストール済みのパッケージがバージョン・アップしている場合、 setup.exe を実行し、【次へ】 または 【はい】 押し続けるだけで、自動的にバージョン・アップしたパッケージをダウンロード&インストールしてくれます。たまには setup.exe を実行し、バージョン・アップに追随させると良いと思います。
初期設定
私が行なったとりあえずの初期設定です。この際だから…と思って、15年弱使い続けた tcsh から bash に乗り換えてみました(sh 系初体験)。その設定も含めて、私の個人的な趣味を反映したしょーもない設定が多いですが、参考になれば幸甚です。 ここからは Administrator ではなく、普段使っている Windows ユーザーでログオンしてください。
各種シェル変数、エイリアス、シェル関数の定義 (.bashrc)
bash のカスタマイズについて調べてみたところ、
~/.bash_profileで環境変数、~/.bashrcでシェル変数やエイリアスを定義するようにしておき~/.bash_profileから~/.bashrcを読み込むようにするのが定石です。
(bash 入門)1. エイリアスは.bashrcに書く 2. 環境変数は.bash_profileに書いて、exportする。
(コマンドを使うために、まずはシェルのbashを使いこなせるようになろうではないか。)~/.bash_profile の中で ~/.bashrc を読み込むようにし, カスタマイズは ~/.bashrc のみで 行うようにするとよい.
(3. 環境のカスタマイズ)
とか書かれているのを見つけました。環境変数をゴニョゴニョすることはあまりなさそうなので、つまり、「~/.bashrc のみを編集し、シェル変数、エイリアス、シェル関数を定義」 でOK? ということにしました。もし環境変数を定義する必要がある場合は、~/.bash_profile に export を付けて追加するということで…。 .bashrc に以下の記述を追加しました。
~(略)~
# 日本語ファイル名が文字化けしないように
alias ls='ls -CF --show-control-chars'
## Windows プログラムの起動用エイリアス(引数無し)
alias ffftp='/dfs/c/Program\ Files/FFFTP/ffftp.exe &'
alias navicat='/dfs/c/Program\ Files/PremiumSoft\ Navicat/navicat.exe &'
alias jane='/dfs/c/Program\ Files/Jane\ Style/Jane2ch.exe &'
alias skype='/dfs/c/Program\ Files/Skype/Phone/Skype.exe &'
alias b2='/dfs/c/Program\ Files/RimArts/B2/B2.exe &'
alias dt='cd /dfs/c/Documents\ and\ Settings/username/デスクトップ/'
alias traceroute=tracert
~(略)~
# csh 風 which
function which { command -v $1; }
## Windows プログラムの起動用ファンクション(引数あり)
# Explorer
function start {
if [ $# -eq 0 ]; then
target=.
else
target=$1
fi
cmd /c start $(cygpath -i -w $target)
};
# Firefox
function firefox {
'/dfs/c/Program Files/Mozilla Firefox/firefox.exe' $1 &
};
# VNCViewer
function vnc {
$HOME/bin/vncviewer.exe -8bit $* &
};
## Windows サービスの起動用ファンクション
function wsv {
USAGE="Usage: wsv [service] [ start | stop ]"
if [ $# -lt 1 -o $# -gt 2 ]; then
echo $USAGE
elif [ $2 != "start" -a $2 != "stop" ]; then
echo $USAGE
else
case $1 in
"iis")
SRVNAME='World Wide Web Publishing'
;;
"ftp")
SRVNAME='FTP Publishing'
;;
"sql")
SRVNAME='MSSQLSERVER'
;;
"vnc")
SRVNAME='VNC Server'
esac
net $2 "$SRVNAME"
fi
};
# Shell Variables
# ##################
# コマンド・プロンプト
PS1="$ "
# cd 検索パス
CDPATH=.:~:~/htdocs:~/document
# コマンド入力履歴のサイズ(ちょっと大きめに)
HISTSIZE=5000
HISTFILESIZE=5000
~(略)~
# Others
# ##################
# 新規作成ファイルのパーミッション 644
umask 022
~(略)~
今後も追加・変更していくと思いますが、とりあえずはこんな感じで。
Windows ドライブへのアクセス用プレフィックス
Cygwin は /cygdrive/?/ (? は、Windows におけるドライブレター) というパスを使って、Windows の各ドライブにアクセス可能です。 個人的に、昔使っていた BOW の影響で /dfs/?/ というプレフィックスを使いたいので、以下のコマンドで設定を変更しました。
% mount -b --change-cygdrive-prefix /dfs
一度だけ実行しておけばOKです。
/etc/passwd, /etc/group の編集
/etc/group の 『なし』 というグループ名を 『none』 に変更します。『Administrators』 など長いグループ名を、『admins』 など短いグループ名に変更します。/etc/passwd も同様に変更します。小文字に統一したり、半角空白を _(アンダーバー)に変更したり。ついでにイニシャル・グループの設定もしておきます。 このへんは、してもしなくても特に支障はありません。気分の問題です。
ターミナル・エミュレータのインストール
Cygwin をインストールした直後の状態では、bash は Windows のコマンド・プロンプト内で実行されます。そのままでも使えないこともないのですが、ターミナル・エミュレータから bash を利用できればより便利です。
私は Cygwin 向きのターミナル・エミュレータの中でも高機能な Poderosa をインストールしています。 他にも、ck や CygTerm + Tera Term、 rxvt など、選択肢はいろいろあります。
以上で初期設定は完了です。次は、Meadow 3.0 のインストールと初期設定を行ないます。



















