Cygwinで遊ぶ ~ 導入編

CygwinはWindows上にLinux的な環境をつくり上げるソフトウェア。

※面倒な説明は省く

構成

  • ホストOSはWindows 7(64bit)
  • Cygwinx86_64(64bit)を選択
  • Cygwinのインストール先は「E:\cygwin64」
  • Cygwinにログインする予定のユーザー名は「root」「user1」

インストール前に

アカウントを作成

Linuxでいうパーミッションとか所有者の概念がWindows(2000以降)にもあって、Cygwinはそれらの設定をしっかり行ってくれるし、chmodコマンドで操作もできる。

そこらへんをこだわりたいので、まずWindowsに「root(管理者)」「user1(ユーザー)」という2つのアカウントをパスワード付きで作っておく。※基本的にrootとuser1にはログオンしない

アカウントを隠す

アカウントを増やすとログオンするときにまどろっこしいので、作ったアカウントを非表示に設定する。

  1. ファイル名を指定して実行で「regedit」を入力しレジストリエディタを開く
  2. 左のツリーから「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList」を開く※無ければ作る
  3. 右のあいてるところで右クリックから「DWORD値」のエントリを作る
  4. エントリの名前を「root」にしてデータを「0」にする
  5. user1」についても同様

これでアカウントが非表示になった。

インストーラーを準備

次に、64bitなので公式サイトから「setup-x86_64.exe」をダウンロードしてくる。

ここでそのまま実行するとファイルの所有者がすべて今ログインしているアカウントのものになってしまうので、別アカウントrootとして実行する。

アカウントを切り替えて実行してもいいが、Cygwinのユーザーを切り替えるためにそんな面倒なことはしたくないので以下のようにする。

  1. setup-x86_64.exeのショートカットを作る
  2. 作ったショートカットのプロパティを開き、「ショートカット」タブを開く
  3. 「リンク先」の内容を「 %windir%\system32\runas.exe /noprofile /user:root "cmd /c start /d 「作業フォルダー」の内容 元の「リンク先」の内容" 」に書き換える。こちらの環境ではこんな感じ「 %windir%\system32\runas.exe /noprofile /user:root "cmd /c start /d E:\ E:\setup-x86_64.exe" 」
  4. 「OK」で閉じる
インストーラーの実行権限をいじる

ついでに、うっかりショートカットではなく本体(setup-x86_64.exe)の方を実行してしまわないように実行権限の設定をいじっておく。

  1. setup-x86_64.exeのプロパティを開き、「セキュリティ」タブを開き、「編集」をクリック
  2. 「SYSTEM」以外のユーザーの「読み取りと実行」の許可チェックをOFFにする
  3. 「追加」をクリックして「root」と入力して「OK」
  4. 「root」の「読み取りと実行」の許可チェックをONにする
  5. 「OK」「OK」で閉じる

インストール

インストール

やっと準備が終わったのでいよいよインストールにとりかかる。

  1. さっき作ったインストーラーのショートカットを実行する
  2. rootのパスワードを要求されるので入力してエンター
  3. インストーラーが起動するので、指示に従い進める
  4. ルートディレクトリとローカルパッケージディレクトリを決定
  5. ダウンロードサイトを日本の「http://ftp.iij.ad.jp」に決定
  6. インストールするパッケージを選ぶ画面が出るが、とりあえずデフォルトのまま次へ進む
  7. パッケージの依存関係でさらにパッケージが追加されるが次へ進む
  8. インストールが始まるので終わるまで待つ
  9. とりあえずデスクトップにショートカットを作って終了
端末起動ショートカットを準備

ここでまた端末を起動せずにrootとuser1用のショートカットを作る。

  1. デスクトップにできたショートカット「Cygwin64 Terminal」を「Cygwin root」と「Cygwin user1」に複製する
  2. それぞれのプロパティを開き、「ショートカット」タブを開く
  3. 「リンク先」の内容を「 %windir%\system32\runas.exe /noprofile /user:ユーザー名 "元の「リンク先」の内容" 」に書き換える。こちらの環境ではこんな感じ「 %windir%\system32\runas.exe /noprofile /user:user1 "E:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -" 」
  4. 「OK」で閉じる
  5. 元のショートカットは多分要らないので削除
Cygwinのパス設定を変更

さらに、デフォルトではWindowsのパス設定がそのままCygwinのパス設定に追加されるようになっているので、それを削除する。

  1. 作ったショートカットでrootとして端末を起動
  2. 「vi /etc/profile」とかで「PATH="/usr/local/bin:/usr/bin:${PATH}"」という行から「:${PATH}」を削除

導入完了。スッキリしてなんだかとってもいい気分。