Cygwinにapt-cygをインストールする

2013年11月17日 21時27分

201311172127TCYW00.png

はじめに

本ブログでは、Windows 7をホストOSとした仮想マシンの構築などについて書いていますが、コマンドを使った作業では殆どの場合、Cygwinを使用しています。
そこで今回は、Windows環境で開発を行うために必須となったCygwinのセットアップ方法について解説します。

Cygwinとは

古くから、 UNIX-like toolsなどのように、Windows上で動作するUNIXコマンドツールはありましたが、1995年に初版がリリースされたCygwinは、Windows上におけるUNIX環境のデファクトスタンダードと言える程普及しています。

前提条件

作業の前提条件は、下記のとおりです。

ソフトウエアバージョン
OSWindows 7 Ultimate 32bit

Cygwinのインストール

  1. Cygwinのインストール

    公式サイトから、setup-x86.exe (32-bit installation)をダウンロードし、デフォルトでインストールします。

    なお、Local Package Directoryは、任意のフォルダを指定して下さい。
    ここでは、G:\Cacheフォルダをローカルパッケージディレクリとして指定しています。なお、ここで入力したフォルダは、Cygwin上でマウントして使用しますので、ドライブ直下のフォルダにした方が良いでしょう。

    201311172127TCYW01.png
    201311172127TCYW02.png
    201311172127TCYW03.png
    201311172127TCYW04.png
    201311172127TCYW05.png
    201311172127TCYW06.png
    201311172127TCYW07.png
    201311172127TCYW08.png
    201311172127TCYW09.png
    201311172127TCYW10.png
    201311172127TCYW11.png

  2. 環境変数の設定

    システムの環境変数を、下記のとおり設定します。

    変数名設定値
    CYGWINtty glob nodosfilewarning
    HOMED:\HOME\xx
    LD_LIBRARY_PATHC:\cygwin\lib;C:\cygwin\lib\w32api;C:\cygwin\usr\local\lib
    MAKE_MODEunix
    201311172127TCYW13.png
    201311172127TCYW14.png
  3. fstabの設定

    環境変数で指定したHOMEディレクトリと、Local Package Directoryで指定したフォルダをfstabに追加します。

    $ vi /etc/fstab
    
    # For a description of the file format, see the Users Guide
    # http://cygwin.com/cygwin-ug-net/using.html#mount-table
    
    # This is default anyway:
    none /cygdrive cygdrive binary,posix=0,user 0 0
    D:/HOME /home ntfs binary 0 0
    G:/Cache /cache ntfs binary 0 0
    G:/Archive /archive ntfs binary 0 0
    D:/TEMP /tmp ntfs binary 0 0
    D:/export /export ntfs binary 0 0
    I:/ISO /mnt/iso ntfs binary 0 0
    E:/vagrant /vagrant ntfs binary 0 0
    F:/VirtualBox /virtualbox ntfs binary 0 0
    
    201311172127TCYW15.png

    編集が終了したら、追加したフォルダをマウントします。

    $ mount -a
    
  4. パッケージの追加

    再度、Cygwin Setupを起動し、wgetおよび、curlパッケージを追加でインストールします。

    201311172127TCYW16.png
    201311172127TCYW17.png
    201311172127TCYW18.png
    201311172127TCYW19.png
  5. apt-cygのインストール

    apt-cygをインストールします。apy-cygは、ネット上にいくつかのバージョンがありますが、必ず下記のサイトのバージョンをダウンロードして下さい。

    $ mkdir ~/work/apt-cyg && cd ~/work/apt-cyg
    $ curl -o apt-cyg https://raw.github.com/rcmdnk/apt-cyg/master/apt-cyg
    $ patch -u apt-cyg < patch.apt-cyg
    $ install -c -m 755 apt-cyg /usr/bin
    
    --- apt-cyg.orig	2013-11-17 17:38:04.542081900 +0900
    +++ apt-cyg	2013-11-17 17:55:06.330524900 +0900
    @@ -1,5 +1,5 @@
     #!/bin/bash
    -
    +export LANG=C
     # apt-cyg: install tool for cygwin similar to debian apt-get
     #
     # Copyright (C) 2005-9, Stephen Jungels
    @@ -373,8 +373,16 @@
           exit 1
         fi
     
    +    opts=
         echo "Unpacking..."
    -    cat $file | bunzip2 | tar > "/etc/setup/$pkg.lst" xvf - -C /
    +    if [ `echo $file | grep '\.bz2$'` ]; then
    +      opts="--bzip2"
    +    else
    +      if [ `echo $file | grep '\.xz$'` ]; then
    +        opts="--xz"
    +      fi
    +    fi
    +    cat $file | tar $opts > "/etc/setup/$pkg.lst" -xvf - -C /
         gzip -f "/etc/setup/$pkg.lst"
         cd ../..
     
    
    201311172127TCYW20.png
    201311172127TCYW21.png

    インストールが終了したら、バージョンを確認します。

    $ apt-cyg --version
    
    201311172127TCYW22.png
  6. ミラーサイトのキャッシュ設定

    apt-cygを使用する前に、apt-cygが使用するミラーサイトのローカルキャッシュフォルダを設定します。
    なお、この設定は最初の1回のみであり、毎回行う必要はありません。

    $ apt-cyg update -m http://ftp.iij.ad.jp/pub/cygwin/ -c /cache
    
    201311172127TCYW23.png

    以上で、apy-cygの設定は終了です。

apt-cygのコマンド

apt-cygは、ubuntuのapt-getによく似たコマンドを使うことができます。
ここでは、代表的なコマンドを紹介します。

  1. show

    インストール済みパッケージを表示します。

    $ apt-cyg show
    
    201311172127TCYW24.png
    201311172127TCYW25.png
  2. find

    パッケージを検索します。

    $ apt-cyg find ncurses
    
    201311172127TCYW26.png
  3. install

    パッケージをインストールします。

    $ apt-cyg install ncurses
    
    201311172127TCYW27.png
  4. remove

    パッケージを削除します。

    $ apt-cyg remove ncurses
    
    201311172127TCYW28.png