※ 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 のインストールと初期設定を行ないます。