gnupack Users Guide (2010/04/18)

はじめに

gnupackとは

 gnupackはアーカイブを展開して実行するだけで即座に Cygwinと NTEmacsが使えるパッケージを提供します.gnupackは最低限の Cygwinパッケージと NTEmacs,各種設定ファイル,それらを起動するプログラムから構成されます.
 gnupackとそれに含まれる主なソフトウェアのバージョンは以下のとおりです.

ソフトウェア バージョン
gnupack 2.00a
Cygwin 1.5.25
MinGW (TDM's GCC/mingw32 Builds) 1.908.0-4.4.1-2
nkf Network Kanji Filter 2.1.0
tree 1.5.2.2
GNU Global 5.7.7
NTEmacs 23.1.1
VL ゴシックフォントファミリー 20100126
M+ と IPAフォントの合成フォント 20070627
ckw 0.8.10-mod

先頭へ

特徴

先頭へ

ライセンス

 gnupackは GPLv2 (GNU General Public License version 2)のライセンスで配布します.GPLv2の詳細は FSF (Free Software Foundation) http://www.gnu.org/licenses/old-licenses/gpl-2.0.htmlを参照ください.

先頭へ

開発方針

 gnupackのバグ改修や機能追加等のバージョンアップについては本パッケージの開発者の対応可能な範囲内で,かつ開発者の作業ペースにて行わせていただきますのでご了承ください.
 動作環境はすべての 32-bit MS Windows (95/98/NT/2000/XP) としていますが,開発者による動作確認は Windows XPのみとさせていただきます

先頭へ

制約事項

  • 既に Cygwinをインストールしている環境では,既存のマウントポイントが上書き(削除)されます
  • 本パッケージで動作する Cygwinは1.5のみであり,1.7以降は動作しません
  • gnupackの格納パスのいずれかに日本語が含まれると,NTEmacsが正しく動作しない場合があります
  • プライベートフォントをアンロードせずに gnupackの格納フォルダを移動あるいは削除ができない場合があります
  • 設定ファイルのフォント名が誤っている場合,エラーメッセージも表示できず,NTEmacsが起動できません.
  • 非ディレクトリをシステムの環境変数 TMPと TEMPに設定していた場合,Cygwinおよび NTEmacsが起動できません.

先頭へ

Webサイトと連絡先

 gnupackの Webサイトは http://gnupack.sourceforge.jp/です.最新の配布パッケージはダウンロードで配布しています.連絡先は開発メンバー一覧を確認ください.

先頭へ

スクリーンショット

先頭へ

パッケージ詳細

再配布ソフトウェア

 gnupackは Cygwinと NTEmacsを起動するためのプログラム(gnupack startup)と以下の再配布ソフトウェアから構成されます.

*1 NTEmacsのコンパイルのため,パッケージに含めています.
*2 オリジナルをベースに作成したアイコンに置き換えコンパイルしたものをパッケージに含めています.
*3 NTEmacsのコンパイル時にパッチは適用しています.
*4 http://www.iconarchive.com/.../Terminal-icon.htmlをベースに作成したアイコンに置き換え,再コンパイルしたものをパッケージに含めています.

先頭へ

gnupack startup

 gnupack startupは以下のファイルから構成されます.

  • Bash.exe
    Cygwinの Bashコマンドを起動するプログラムです.本プログラムは Cygwinのマウントポイントの設定とプライベートフォント(一時的に利用可能なフォント)のロードも自動で行います.
  • Emacs.exe
    NTEmacsを起動するプログラムです.本プログラムはプライベートフォントのロードも自動で行います.
  • ReMount CygMnt.exe
    Cygwinのマウントポイントを自動で適切に設定するプログラムです.本プログラムは手動でマウントポイントを再設定する場合に使用します.
  • UnMount CygMnt.exe
    Cygwinのマウントポイントを削除するプログラムです.
  • UnLoad PrivFont.exe
    プライベートフォントを アンロードするプログラムです.プライベートフォントは OSを再起動することで自動で削除されますが,本プログラムを実行することで手動で削除することもできます.
  • config.ini
    上記プログラム(Bash.exe / Emacs.exe / ReMount CygMnt.exe / UnMount CygMnt.exe / UnLoad PrivFont.exe)の設定ファイルです.
  • debug_msg.log
    上記プログラムの起動メッセージです.本ファイルは初期状態では存在せず,設定ファイルでデバッグモードを有効化することで出力されます.

先頭へ

配布パッケージの種類

 gnupackは目的に応じて,以下の種類のパッケージを配布します.

  • gnupack basic
    gnupack lightの Cygwinパッケージに X.Org,nkf,tree,globalおよびNTEmacsを含めたパッケージです.
  • gnupack devel
    gnupack basicにコンパイラ(MinGW)を含めたパッケージです.

 各パッケージに含まれる再配布ソフトウェアを以下に示します.
 (凡例 ○:含む ×:含まない)
gnupack
basic
gnupack
devel
gnupack startup
Cygwin
MinGW (TDM's GCC/mingw32 Builds) ×
GnuWin32 (DLL/header/library) ×
nkf Network Kanji Filter
tree
global
NTEmacs
VL ゴシックフォントファミリー
M+ と IPAフォントの合成フォント
ckw

先頭へ

配布パッケージのバージョン

 gnupackはユーザ向けの正式版と開発版の2種類のバージョンを提供します.
 正式版のバージョン番号は以下の規約に従います.

正式版 A.BBc
       A    : メジャー番号(数字 0 - 99)
       BB   : マイナー番号(数字 00 - 99)
       c    : メンテナンス番号(文字 a - z)

開発版 A.BBc-yyyy-mmdd
       A    : メジャー番号(数字 0 - 99)
       BB   : マイナー番号(数字 00 - 99)
       c    : メンテナンス番号(文字 a - z)
       yyyy : リリース番号(年度 4桁)
       mmdd : リリース番号(月日 4桁)

 各バージョン番号のバージョンアップのポリシーは以下のとおりです.

  • メジャー番号
    • gnupackに含まれるソフトウェアに大幅な変更があった場合
    • gnupack startupの仕様変更,バグ改修があった場合
  • マイナー番号
    • 既存機能に影響を及ぼさない gnupack startupでの機能追加があった場合
    • 各種設定ファイル(config.ini,.bashrc,.emacsなど)に修正があった場合
    • 特定のCygwinパッケージを削除した場合
    • Emacsの特定のelispパッケージを削除した場合
  • メンテナンス番号
    • Cygwinパッケージを追加あるいはバージョンアップした場合
    • Emacsのelispパッケージを追加あるいはバージョンアップした場合
  • リリース番号(開発版のみ)
    • 必要に応じて任意のタイミング

先頭へ

Cygwinパッケージ

 Cygwinに含まれる主なパッケージは以下のとおりです.

base-files      diffutils       indent          ping            wget
bash            dog             inetutils       sed             which
bc              expect          less            sharutils       xhost
bzip2           file            make            tar             xinit
coreutils       findutils       ncurses         time            xlogo
curl            gawk            openssh         unzip           xterm
cvs             grep            patch           util-linux      zip
cygutils        gzip            perl            vim

 gnupackには上記に依存のあるパッケージを加えたものが含まれます. Cygwinパッケージの詳細は http://cygwin.com/packages/を参照ください.

先頭へ

ディレクトリ構成

 gnupackのディレクトリ構成は以下のとおりです.
 (凡例 :ディレクトリ :実行ファイル :通常ファイル :隠しファイル 斜体:コメント)

     gnupack_type-version/ *1
     |
     |-- 00History.txt ← 改版履歴
     |-- 00License.txt ← ライセンス
     |-- 00Readme.txt  ← README
     |
     |   ↓ gnupack startup
     |-- Bash.exe*
     |-- config.ini
     |-- Emacs.exe*            
     |-- ReMount CygMnt.exe*
     |-- UnMount CygMnt.exe*
     |-- UnLoad PrivFont.exe*
     |-- debug_msg.log
     |
     |--  ← アイコン設定ファイル
     |
     |-- app/ ← 再配布ソフトウェア
     |   |
     |   |-- ckw/
     |   |   `-- ckw-0.8.10-mod3/ ← ckw
     |   |
     |   |-- cygwin/
     |   |   |-- cygwin           ← Cygwin
     |   |   `-- local            ← /usr/local *2
     |   |
     |   |-- emacs/               ← NTEmacs
     |   |   |-- 23.1/
     |   |   `-- site-lisp/
     |   |
     |   |-- font/
     |   |   |-- mixfont-mplus-ipa/← M+とIPAフォントの合成フォント *3
     |   |   `-- vlgothic/         ← VL ゴシック *4
     |   |
     |   |-- gnuwin32/             ← GNuWin32
     |   |   |-- dll/              ← DLL for NTEmacs's Build *5
     |   |   |-- include/          ← header for NTEmacs's Build *5
     |   |   `-- lib/              ← library for NTEmacs's Build *5
     |   |
     |   |-- mingw/
     |   |   `-- tdm/              ← MinGW (TDM's GCC/mingw32 Builds)
     |   |
     |   `-- icon/                 ← フォルダアイコン他 *6
     |
     |-- docs/ ← ドキュメント
     |   |
     |   |-- UsersGuide.html      ← 本ドキュメント
     |   |-- img
     |   `-- css
     |
     |-- home/ ← ホームディレクトリ
     |    |
     |    |-- .bashrc              ← bash設定ファイル
     |    |-- .bash_history        ← bash履歴ファイル
     |    |-- .dir_colors          ← dircolors設定ファイル
     |    |-- .emacs               ← emacs設定ファイル
     |    |-- .inputrc             ← readline設定ファイル
     |    `-- .vimrc               ← vim設定ファイル
     |
     `-- src/ ← gnupack startup プログラムソース

*1 typeversionは配布パッケージの種類(light,basic,devel)とバージョンに対応します.
*2 /usr/localのマウントポイントであり,nkf,tree,globalの格納ディレクトリになります.
*3 ファイルサイズ削減のため,M+2VM+IPAG-circle.ttfのみ格納しています.
*4 ファイルサイズ削減のため,等幅フォントのVL-Gothic-Regular.ttfのみ格納しています.
*5 ファイルサイズ削減のため,NTEmacsのコンパイルに必要なファイルのみ格納しています.
*6
http://www.iconarchive.com/.../Lightbrown-Generic-icon.htmlhttp://www.home.unix-ag.org/simon/penguin/をベースに作成したアイコンをフォルダアイコンとして利用しています.

先頭へ

使い方

ダウンロード

 gnupackは SourceForgeで配布しています.

先頭へ

導入方法

  1. ダウンロードしたアーカイブファイル(7-Zipの自己解凍形式)を実行して,展開先を指定の上,解凍します(下記の例では「gnupack_basic-0.01a.exe」を「C:\」に展開します).
  2. 展開したディレクトリに移動します(下記の例では「C:\gnupack_basic-0.01a」に移動します).
  3. Cygwinを起動するには,Bash.exeを実行します.マウントポイントが適切に設定されていない場合(初回起動,格納先を変更した場合など),マウントポイント再作成のメッセージボックスが表示されるので「はい(Y)」を押下します.
  4. NTEmacsを起動するには,Emacs.exeを実行します.

先頭へ

アンインストール方法

 gnupackをシステムから完全に削除するには,以下のディレクトリとレジストリを削除してください.

  • gnupackの格納ディレクトリ
  • /tmpディレクトリ(%TEMP%/gnupack *1
  • HKCU上のCygwinのレジストリ情報(HKEY_CURRENT_USER\Software\Cygnus Solutions
  • HKLM上のCygwinのレジストリ情報(HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions

 /tmpディレクトリについて,デフォルト設定から/tmpのマウントポイントを変更した場合は変更内容に応じて読み替えてください.
 レジストリの削除について,本パッケージに削除機能がないため,必要に応じて手動で削除してください.

*1 %TEMP%はシステムの環境変数 TEMPで設定されたディレクトリを表します.

先頭へ

Tips

設定ファイルの記述内容

 設定ファイルは以下の書式に従い記述します.

[セクション名]
    ; コメント
    パラメータ名    = パラメータ値

 以降,各セクションの概要を説明します.


[SetEnv]
    _cygwin_    = %cd%\app\cygwin\cygwin_basic
    _local_     = %cd%\app\cygwin\local
    _mingw_     = %cd%\app\mingw\tdm
   ;_font_      = MS ゴシック
   ;_font_      = VL ゴシック
    _font_      = M+2VM+IPAG circle

    EMACS_DIR   = %cd%\app\emacs\23.1
    HOME        = %cd%\home
    TEMP        = %TEMP%\gnupack
    TMP         = %TMP%\gnupack
    SHELL       = bash
    CYGWIN      = nontsec
    MAKE_MODE   = unix
    TZ          = JST-9
    PATH        = %EMACS_DIR%\bin
    PATH        = %PATH%;%_mingw_%\bin;%_local_%\bin;%_cygwin_%\bin
    PATH        = %PATH%;%windir%\system32;%windir%;%windir%\system32\Wbem

 セクション SetEnvでは,本パッケージ内のローカルな環境変数を設定します.設定方法については後述の「環境変数の設定」を参照ください.
 なお,上記に含まれない環境変数として,システムで定義している環境変数と,gnupackの展開したディレクトリを表す環境変数として %cd%が,ログオンユーザのデスクトップを表す環境変数として %desk%が利用できます.


[UnSetEnv]
    _cygwin_    =
    _local_     =
    _mingw_     =
    _font_      =

 セクション UnSetEnvでは,SetEnvで設定した環境変数を Cygwinおよび NTEmacsの起動直前に削除します.本セクションを利用することで,起動処理のときにだけ有効な環境変数を作成することができます.


[App]
   ;gdi   = %cd%\app\gdi++\gdi++.exe
    ckw   = %cd%\app\ckw\ckw-0.8.10-mod3\ckw.exe
    bash  = %_cygwin_%\bin\bash.exe
    emacs = %EMACS_DIR%\bin\runemacs.exe

 セクション Appでは,ckw,bash,emacs,gdi++のバイナリパス(フルパス指定)を設定します.本セクションの設定には SetEnvで設定した環境変数を利用することができます.


[Font]
    file1 = %cd%\app\font\vlgothic\VL-Gothic-Regular.ttf
    file2 = %cd%\app\font\mixfont-mplus-ipa\ ...(省略) \M+2VM+IPAG-circle.ttf

 セクション Fontでは,ロードするプライベートフォントのTTFファイルパス(フルパス指定)を設定します.本セクションには複数のパラメータが設定できます.
 なお,ロードしたプライベートフォントを利用するには,後のセクションで設定が必要となります.設定方法については後述の「プライベートフォントの設定」を参照ください.


[Ckw]
    foreground     = white
    background     = black
    cursorColor    = red
    cursorImeColor = green
    geometry       = 91x27+70+0
    font           = %_font_%
    fontSize       = 13
    saveLines      = 1024
    internalBorder = 0
    lineSpace      = 0
    title          = Bash

 セクション Ckwでは,ckwに関連したパラメータを設定します.各パラメータの説明を以下に示します.
foreground 画面の文字色を指定します.
background 画面の背景色を指定します.
cursorColor カーソル色を指定します.
cursorImeColor IME ON時のカーソル色を指定します.
geometry 画面サイズと位置を「幅x高さ+X座標+Y座標」で指定します.
font 表示に使うフォント名を指定します.
fontSize 表示するフォントのサイズを指定します.
saveLines スクロールで辿れる履歴の行数を指定します.
internalBorder ウィンドウ周囲のスペースをピクセル数で指定します.
lineSpace 行間スペースをピクセル数で指定します.
title ウィンドウのタイトルを指定します.


[Emacs]
    foreground     = white
    background     = black
    geometry       = 91x27+70+28
    font           = %_font_%
    fontSize       = 11
    lineSpace      = 0

 セクション Emacsでは,NTEmacsに関連したパラメータを設定します.各パラメータの説明を以下に示します.
foreground 画面の文字色を指定します.
background 画面の背景色を指定します.
geometry 画面サイズと位置を「幅x高さ+X座標+Y座標」で指定します.
font 表示に使うフォント名を指定します.
fontSize 表示するフォントのサイズを指定します.
lineSpace 行間スペースをピクセル数で指定します.


[Bash]
   ;foreground       = white
   ;background       = black
   ;cursorColor      = red
   ;cursorImeColor   = green
   ;geometry         = 91x27+70+0
   ;font             = %_font_name_%
   ;fontSize         = 12
   ;saveLines        = 1024
   ;internalBorder   = 0
   ;lineSpace        = 0
    title            = Bash
    PATH             = %PATH%

 セクション Bashでは,Bashに関連したパラメータを設定します.各パラメータの説明を以下に示します.なお,省略可能なパラメータを定義しない場合,対象のパラメータはセクション Ckwで指定したパラメータを継承します.
foreground 画面の文字色を指定します(省略可)
background 画面の背景色を指定します(省略可)
cursorColor カーソル色を指定します(省略可)
cursorImeColor IME ON時のカーソル色を指定します(省略可)
geometry 画面サイズと位置を「幅x高さ+X座標+Y座標」で指定します(省略可)
font 表示に使うフォント名を指定します(省略可)
fontSize 表示するフォントのサイズを指定します(省略可)
saveLines スクロールで辿れる履歴の行数を指定します(省略可)
internalBorder ウィンドウ周囲のスペースをピクセル数で指定します(省略可)
lineSpace 行間スペースをピクセル数で指定します(省略可)
title ウィンドウのタイトルを指定します(省略可)
PATH Bashで利用する環境変数 PATHを指定します.


[Mnt]
    point1  = %_cygwin_%,      /
    point2  = %_cygwin_%\bin,  /usr/bin
    point3  = %_cygwin_%\lib,  /usr/lib
    point4  = %_local_%,       /usr/local
    point5  = %cd%\app,        /app
    point6  = %TEMP%,          /tmp
    point7  = %HOME%,          /home
    point8  = %desk%,          /top
    point9  = %cd%,            /root

 セクション Mntでは,Cygwinのマウントポイントを設定します.設定方法については後述の「マウントポイントの設定」を参照ください.


[Mode]
    temp_auto_create = yes
    mnt_auto_mount   = yes
    font_auto_load   = yes
    debug_msg_print  = no

 セクション Modeでは,gnupack startupの各種動作を制御するフラグを設定します.各パラメータの説明を以下に示します.
temp_auto_create 本パッケージ内のローカルな TEMPディレクトリが存在しない場合,自動作成するかどうかを「yes」あるいは「no」で指定します.
mnt_auto_mount Cygwinのマウントポイントが適切でない場合,マウントポイントを自動で再作成するかどうかを「yes」あるいは「no」で指定します.
font_auto_load プライベートフォントをロードするかどうかを「yes」あるいは「no」で指定します.
debug_msg_print 起動時のデバッグメッセージを出力するかどうかを「yes」あるいは「no」で指定します.

先頭へ

環境変数の設定

 gnupackではシステムの設定を変更することなく,Cygwinと Emacsで必要な環境変数が設定できます.
 環境変数は設定ファイル中のセクション SetEnvで指定し,システムで設定している環境変数や設定ファイル中で先に記載した環境変数を利用することもできます.また,gnupackの展開したディレクトリを表す環境変数として %cd%が,ログオンユーザのデスクトップを表す環境変数として %desk%が利用できます.いくつかの例を示して,設定ファイルの記述方法についてもう少し具体的に説明します.


[SetEnv]
    CYGWIN    = nontsec
    SHELL     = bash
    MAKE_MODE = unix
    TZ        = JST-9

 これは,CYGWINという環境変数に nontsec,SHELLという環境変数に bash,MAKE_MODEという環境変数に unix,TZという環境変数に JST-9を設定しています.なお,すでにシステムで CYGWINという環境変数を設定していて,上記のような設定をした場合,その値はここで指定した値に上書きされます.その際,上書きされる影響範囲は gnupackから起動するプロセスのみです.


[SetEnv]
    TEMP = %TEMP%\gnupack
    TMP  = %TMP%\gnupack

[Mode]
    temp_auto_create = yes

 これは,システムで既に設定されている環境変数を使って TEMPと TMPを設定しています.なお,gnupackではシステムで既に設定されている TEMPと TMPの環境変数で指定されるディレクトリの有無をチェックし,存在しない場合は起動しない仕様になっています.また,上記で新たに設定した TEMPと TMPの環境変数についてはディレクトリの有無をチェックし,存在しない場合は自動作成するようになっています.これは設定ファイル中のセクション Mode,パラメータ temp_auto_createを「no」にすることで自動作成を無効にもできます.


[SetEnv]
    HOME      = %cd%\home
    _cygwin_  = %cd%\app\cygwin\cygwin_basic
    PATH      = %_cyg_dir_%\bin
    PATH      = %PATH%;c:\WINDOWS\system32;c:\WINDOWS;c:\WINDOWS\system32\Wbem

[UnSetEnv]
    _cygwin_ =

 最後の例は少し複雑です.まずセクション SetEnvの 1行目は gnupackの展開したディレクトリ直下にある homeディレクトリを環境変数 HOMEに設定しています.つまり gnupackを「C:\gnupack」にインストールした場合,環境変数 HOMEは「C:\gnupack\home」となり,展開先を「C:\Program Files\gnupack」とした場合,環境変数 HOMEは「C:\Program Files\gnupack\home」になります.
 次のセクション SetEnvの 2行目は gnupackの展開したディレクトリ直下にある cygwinディレクトリを環境変数 _cygwin_に設定しています.そして,3行目で 環境変数 _cygwin_を使って,環境変数 PATHを設定しています.展開したディレクトリ(%cd%)を「C:\gnupack」と仮定すると,環境変数 _cygwin_は 「C:\gnupack\app\cygwin\cygwin_basic」と設定され,3行目の段階で環境変数 PATHは「C:\gnupack\app\cygwin\cygwin_basic\bin」となります.
 そしてセクション SetEnvの 4行目は,3行目で設定した環境変数 PATHを再帰的に設定し,最終的に環境変数 PATHは「C:\gnupack\app\cygwin\cygwin_basic\bin; c:\WINDOWS\system32; c:\WINDOWS; c:\WINDOWS\system32\Wbem」となるわけです.
 一時利用のために設定した環境変数は,セクション UnSetEnvに不要な環境変数を値なしで定義することで,自動的に環境変数から削除します.

先頭へ

マウントポイントの設定

 gnupackは展開したディレクトリに応じて Cygwinのマウントポイントを自動設定します.これは設定ファイル中のセクション Mode,パラメータ mnt_auto_mountを「no」にすることで自動設定を無効にもできます.
 なお,gnupackに含めている Cygwin(1.5.25)はマウントポイントをレジストリに記録しているため,gnupackを使うと既に Cygwinを利用している環境ではマウントポイントの情報を上書きしてしまうのでご注意ください.
 マウントポイントは設定ファイル中のセクション Mntに従い設定されます.ここで書き方の注意事項を含め,例を示して説明します.


[SetEnv]
    _cygwin_    = %cd%\app\cygwin\cygwin_basic
    _local_     = %cd%\app\cygwin\local
    HOME        = %cd%\home
    TEMP        = %TEMP%\gnupack
    TMP         = %TMP%\gnupack
    ...

[Mnt]
    point1  = %_cygwin_%,         /
    point2  = %_cygwin_%\bin,     /usr/bin
    point3  = %_cygwin_%\lib,     /usr/lib
    point4  = %_local_%,          /usr/local
    point5  = %cd%\app,           /app
    point6  = %TEMP%,             /tmp
    point7  = %HOME%,             /home
    point8  = %desk%,             /top
    point9  = %cd%,               /root

[Mode]
    mnt_auto_mount = yes

 パラメータの名前は,上記は「point#」の書式を取っていますが,ユニークな名称であれば特に制約はありません.次にパラメータの値ですが,これは Cygwinのマウントコマンドに渡す引数の <win32path>と<posixpath>を「,(カンマ)」区切りで指定します.ここでもパラメータの値に環境変数を利用することもできます.
 gnupackの展開したディレクトリ(%cd%)を「C:\gnupack」,環境変数 _cygwin_を「%cd%\app\cygwin\cygwin_basic」,環境変数 _local_を「%cd%\app\cygwin\local」と仮定すると,上記の例は以下のように読み替えられます.

[Mnt]
    point1  = C:\gnupack\app\cygwin\cygwin_basic,     /
    point2  = C:\gnupack\app\cygwin\cygwin_basic\bin, /usr/bin
    point3  = C:\gnupack\app\cygwin\cygwin_basic\lib, /usr/lib
    point4  = C:\gnupack\app\cygwin\local,            /usr/local
    point5  = C:\gnupack\app,                         /app
    point6  = システムのTEMP\gnupack,                 /tmp
    point7  = C:\gnupack\home,                        /home
    point8  = ユーザのデスクトップ,                   /top
    point9  = C:\gnupack,                             /root


 修正したマウントポイントを再度設定したい場合は,ReMount CygMnt.exeを実行してください.また,マウントポイントを削除したい場合は,UnMount CygMnt.exeを実行してください.
 なお,point1の /と point2の /usr/bin,point3の /usr/libは Cygwinの動作上必須であり,また自動でマウントするかどうかをチェックするための項目でもあるため,削除しないようにしてください

先頭へ

プライベートフォントの設定

 通常,追加フォントを利用するには Wdinwosの管理者権限が必要になりますが,gnupackでは一時的にフォントを Windowsにロードすることで一般ユーザでも任意のフォントをインストールせずに利用できます.


[Font]
    file1 = %cd%\vlgothic\VL-Gothic-Regular.ttf
    file2 = %cd%\mixfont-mplus-ipa\M+2VM+IPAG-circle.ttf

[Mode]
    font_auto_load = yes

 ロードするフォントは設定ファイル中のセクション Fontに記述します.他と同様に定義済みの環境変数が使えます.また,パラメータの名前はセクション Mntと同じくユニークであれば問題ありません.これは設定ファイル中のセクション Mode,パラメータ font_auto_loadを「no」にすれば自動ロードを無効にもできます.
 なお,フォントのロードは Win32APIの AddFontResourceという関数で実現しているのですが,今からロードしようとしているフォントが既にロードされているかどうかをチェックする処理が実装できていないため,RemoveFontResourceで一度フォントを削除してから AddFontResourceするような仕様になっています.そして,RemoveFontResourceの際,前回 AddFontResourceしたTTFファイルがないとフォント表示がおかしくなることがあったため,TTFフォントは gnupackで設定した環境変数 TEMPのディレクトリにコピーしてからロードするようになっています.


[Ckw]
    font                 = VL ゴシック
    ...
[Emacs]
    font                 = VL ゴシック
    ...

 プライベートフォントはセクション Ckwと Emacsにあるパラメータ fontに設定することで利用することができます.パラメータ fontにはフォントの書体名を指定してください.フォントの書体名が分からない場合,TTFファイルをダブルクリックして表示されるウィンドウで確認できます.

先頭へ

ディレクトリ指定で Bash起動

 クリップボードにディレクトリパスをコピーした状態で Bash.exeを実行することで,そのディレクトリをカレントディレクトリとして Bashが起動できます.
 ただし,クリップボードに4422byte以上のデータをコピーしている状態では Bash.exeの仕様上,Bashが起動できないことに注意してください.

先頭へ

Bashからクリップボードを操作

 /dev/clipboardを実体にした /bufというシンボリックリンクにアクセスすることで,Bash上からクリップボードを操作できます.以下にクリップボードの値を画面表示する例と,特定文字列をクリップボードにコピーする例を示します.

# クリップボードに「sample string」をコピーしていると仮定
[Path: /]# cat /buf
sample string

[Path: /]# echo "update string" > /buf
[Path: /]# cat /buf
update string

先頭へ

Bashからデスクトップにアクセス

 ユーザのデスクトップを /topにマウントしているので,/topにアクセスすることでデスクトップを操作できます.以下にデスクトップ上にファイルを作成する例を示します.

[Path: /]# cd /top
[Path: /top]# touch sample.txt
[Path: /top]# ls "$USERPROFILE\デスクトップ\sample.txt"
C:\Documents and Settings\user\デスクトップ\sample.txt

先頭へ

gdi++の導入・設定

  1. ブラウザから gdi++ FreeType版の配布サイトhttp://www18.atwiki.jp/gdiplus2/にアクセスします.
  2. バイナリ http://www18.atwiki.jp/gdiplus2/pages/15.htmlから gdi++のアーカイブファイルを入手します(下記の例では「gdi0789 実験版(ソース整理・機能削減。再up・転載は控えて) 」をダウンロードしています)
  3. freetype.dllのリンク http://www18.atwiki.jp/gdiplus2/pages/35.htmlより,FreeType.dllのダウンロードページに移動し,freetype.dllのアーカイブファイルを入手します(下記の例では「gdi0869.7z FreeType2.3.7 」をダウンロードしています)
  4. ダウンロードした2つのアーカイブファイルを展開します(下記の例では展開の手順を省略しています)
  5. 展開してディレクトリのすべてのファイルを gnupackの格納ディレクトリ配下にコピーします(下記の例では %cd%\app\gdi++にコピーしています)
  6. gdi++を配下したディレクトリにある gdi++.iniを設定します.
    以下に設定例を示します.
    [General]
      HookChildProcesses=1
      HintingMode=2
      AntiAliasMode=2
      TextTuning=0
      TextTuningR=1
      TextTuningG=1
      TextTuningB=1
      NormalWeight=40
      BoldWeight=32
      ItalicSlant=32
      EnableKerning=0
      MaxHeight=128
      LcdFilter=2
      LoadOnDemand=1
  7. gnupackの格納ディレクトリ直下にある config.iniのセクション Appのパラメータ gdiを gdi++.exeの格納先に合わせて設定します(下記の例では %cd%\app\gdi++に設定しています)
  8. Cygwinと NTEmacsの起動方法は gdi++の設定後も変わらず Bash.exeと Emacs.exeから行います.以下にgdi++の適用していない場合(左),適用した場合(右)の例を示します.
     上記は「画面プロパティ」→ 「効果」の「次の方法でスクリーン フォントの縁を滑らかにする」を有効にしていた場合のスクリーンショットです.
     上記は「画面プロパティ」→ 「効果」の「次の方法でスクリーン フォントの縁を滑らかにする」を無効にしていた場合のスクリーンショットです.

先頭へ

開発メモ

nkfのコンパイル手順

[Path: /tmp]# tar zxvf nkf-2.1.0.tar.gz
[Path: /tmp]# cd nkf-2.1.0
[Path: /tmp/nkf-2.1.0]# mv Makefile Makefile.org
[Path: /tmp/nkf-2.1.0]# sed -e 's/^CC = cc/CC = gcc/g' Makefile.org > Makefile
[Path: /tmp/nkf-2.1.0]# make
[Path: /tmp/nkf-2.1.0]# mkdir -p /usr/local/bin
[Path: /tmp/nkf-2.1.0]# mkdir -p /usr/local/man/man1
[Path: /tmp/nkf-2.1.0]# cp -p nkf.exe /usr/local/bin/
[Path: /tmp/nkf-2.1.0]# cp -p nkf.1* /usr/local/man/man1

先頭へ

treeのコンパイル手順

[Path: /tmp]# tar zxvf tree-1.5.2.2.tgz
[Path: /tmp]# cd tree-1.5.2.2
[Path: /tmp/tree-1.5.2.2]# mv Makefile Makefile.org
[Path: /tmp/tree-1.5.2.2]# sed -e 's:prefix = /usr:prefix = /usr/local:' -e 's/#CFLAGS=-O2 -Wall -fomit-frame-pointer -DCYGWIN/CFLAGS=-O2 -Wall -fomit-frame-pointer -DCYGWIN/' -e 's/#LDFLAGS=-s$/LDFLAGS=-s/g' -e 's/#TREE_DEST=tree.exe/TREE_DEST=tree.exe/' -e 's/#XOBJS=strverscmp.o/XOBJS=strverscmp.o/g' Makefile.org > Makefile
[Path: /tmp/tree-1.5.2.2]# make
[Path: /tmp/tree-1.5.2.2]# make install

先頭へ

globalのコンパイル手順

[Path: /tmp]# tar zxvf global-5.7.7.tar.gz
[Path: /tmp]# cd global-5.7.7
[Path: /tmp/global-5.7.7]# ./configure --prefix=/usr/local
[Path: /tmp/global-5.7.7]# make
[Path: /tmp/global-5.7.7]# make install

先頭へ

NTEmacs23.1のコンパイル手順

[Path: /c/tmp]# ls
Emacs-23.1-IME.patch.gz         emacs-23.1.tar.gz
emacs-23.1-ime-mod.patch.gz     emacs.ico
[Path: /c/tmp]# ls -R /app/gnuwin32/
/app/gnuwin32/:
dll/  include/  lib/

/app/gnuwin32/dll:
jpeg62.dll*    libtiff3.dll*   xpm4.dll*
libpng12.dll*  libungif4.dll*  zlib1.dll*

/app/gnuwin32/include:
X11/       jmorecfg.h  pngconf.h   tiffio.h
gif_lib.h  jpeglib.h   simx.h      tiffvers.h
jconfig.h  libpng12/   tiff.h      zconf.h
jerror.h   png.h       tiffconf.h  zlib.h

/app/gnuwin32/include/X11:
xpm.h

/app/gnuwin32/include/libpng12:
png.h  pngconf.h

/app/gnuwin32/lib:
jpeg-bcc.lib    libpng.la         libungif.def
jpeg.def        libpng.lib        libungif.dll.a
jpeg.lib        libpng12.def      libungif.lib
libXpm-bcc.lib  libpng12.dll.a    libz.a
libXpm.a        libpng12.la       libz.dll.a
libXpm.dll.a    libtiff-bcc.lib   pkgconfig/
libXpm.lib      libtiff.def       xpm.def
libjpeg.dll.a   libtiff.dll.a     zlib-bcc.lib
libpng-bcc.lib  libtiff.lib       zlib.def
libpng.dll.a    libungif-bcc.lib  zlib.lib

/app/gnuwin32/lib/pkgconfig:
libpng.pc  libpng12.pc  xpm.pc
[Path: /c/tmp]# tar zxf emacs-23.1.tar.gz
[Path: /c/tmp]# cp emacs.ico emacs-23.1/nt/icons
[Path: /c/tmp]# gzip -d Emacs-23.1-IME.patch.gz
[Path: /c/tmp]# gzip -d emacs-23.1-ime-mod.patch.gz
[Path: /c/tmp]# dos2unix.exe Emacs-23.1-IME.patch
[Path: /c/tmp]# cd emacs-23.1
[Path: /c/tmp/emacs-23.1]# patch -b -p3 < ../Emacs-23.1-IME.patch
patching file lib-src/makefile.w32-in
patching file lisp/loadup.el
patching file nt/configure.bat
patching file src/keyboard.c
patching file src/w32.c
patching file src/w32fns.c
patching file src/w32term.c
patching file src/w32term.h
patching file src/window.c
patching file lisp/international/w32-ime.el
[Path: /c/tmp/emacs-23.1]# patch -b -p1 < ../emacs-23.1-ime-mod.patch
patching file nt/runemacs.c
patching file lib-src/emacsclient.c
patching file lisp/files.el
patching file lisp/startup.el
patching file src/frame.c
patching file src/frame.h
patching file src/w32.c
patching file src/w32fns.c
patching file src/w32font.c
patching file src/w32term.c
patching file src/w32term.h
[Path: /c/tmp/emacs-23.1]# cd nt
[Path: /c/tmp/emacs-23.1/nt]# cp gmake.defs gmake.defs.back 
[Path: /c/tmp/emacs-23.1/nt]# sed -e 's/#ifeq /ifeq /g' -e 's/#CURDIR/CURDIR/g' -e 's/#endif/endif/g' gmake.defs.back > gmake.defs
[Path: /c/tmp/emacs-23.1/nt]# diff gmake.defs gmake.defs.back
87,89c87,89
< ifeq "$(shell cygpath $(CURDIR))" "$(CURDIR)"
< CURDIR                := $(shell cygpath -m $(CURDIR))
< endif
---
> #ifeq "$(shell cygpath $(CURDIR))" "$(CURDIR)"
> #CURDIR               := $(shell cygpath -m $(CURDIR))
> #endif
[Path: /c/tmp/emacs-23.1/nt]# unix2dos configure.bat
[Path: /c/tmp/emacs-23.1/nt]# gcc --version
gcc.exe (TDM-2 mingw32) 4.4.1
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[Path: /c/tmp/emacs-23.1/nt]# mingw32-make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-pc-mingw32

[Path: /c/tmp/emacs-23.1/nt]# cygpath -w /app/gnuwin32
C:\gnupack\app\gnuwin32
[Path: /c/tmp/emacs-23.1/nt]# ./configure.bat --prefix /app/emacs/23.1 --no-debug --with-gcc --no-cygwin --enable-w32-ime --cflags -O3 --cflags -fno-tree-vectorize --cflags -funsigned-char --cflags -mthreads --cflags -pipe --cflags -DIME_CONTROL --cflags -DRECONVERSION --cflags -DCLIENTEDGE --cflags -D_UNICODE --cflags -IC:\gnupack\app\gnuwin32\include --ldflags -LC:\gnupack\app\gnuwin32\lib
[Path: /c/tmp/emacs-23.1/nt]# mingw32-make ARCH_CFLAGS="-c -march=pentium-m -msse4.1 -mfpmath=sse -pipe" bootstrap
[Path: /c/tmp/emacs-23.1/nt]# mingw32-make install
[Path: /c/tmp/emacs-23.1/nt]# cp /app/gnuwin32/dll/* /app/emacs/23.1/bin/

先頭へ

改版履歴

gnupack

改版日 改版内容
2010/04/18
Version 2.00a
仕様変更
・MinGW (TDM's GCC/mingw32 Builds) を追加.
・gnuwin32 libraryを追加.
・Cygwin gcc関連パッケージを削除.
・make (version 3.80) を削除.

バージョンアップ
・VL ゴシックフォントファミリーを 20100416にバージョンアップ.
2010/03/21
Version 1.02a
仕様変更
・再配布ソフトウェアにM+ と IPAフォントの合成フォントを追加.

設定変更
・デフォルトのフォントを「M+ と IPAフォントの合成フォント」に変更
・ckwのフォントサイズを「12」から「13」に変更.
・NTEmacsのフォントサイズを「9」から「11」に変更.
2010/03/14
Version 1.01a
仕様変更
・NTEmacsのコンパイラを MinGW TDM Gcc 4.4.1に変更.

バージョンアップ
・NTEmacsを pretest 23.1.92から 安定版の 23.1にバージョンダウン.
2010/03/07
Version 1.00a
仕様変更
・ダウンロード数から需要小と判断し,gnupack lightを廃止.

バージョンアップ
・NTEmacsを 23.1から pretest 23.1.92にバージョンアップ.
・VL ゴシックフォントファミリーを 20100126にバージョンアップ.

バグ改修
・4422byte以上クリップボードに格納するとBash起動しないバグを修正.
・NTEmacsをバージョンアップし,IME変換中にAbortするバグを修正.

設定変更
・config.iniの環境変数を小文字から大文字に変更.
・Bashの個別設定のためのセクション Bashを追加.
2009/12/27
Version 0.01a

・一般向けの初回リリース.

先頭へ

gnupack Users Guide

改版日 改版内容
2010/04/18 全般
仕様変更に伴う内容を修正.

はじめに
・主なソフトウェアのWebサイトへのリンクを追加.

パッケージ詳細
・Cygwinの分類 (core/x.org/gcc)を廃止.

開発メモ
・「NTEmacsのコンパイル手順」を 23.1向けに変更.

改版履歴
・過去の gnupack Users Guideへのリンクを追加.
2010/04/07 目次
・NTEmacs Build Historyを追加.
2010/03/21 全般
・M+ と IPAフォントの合成フォントの追加に伴う内容を修正.
2010/03/14 使い方
・「ダウンロード」を追記.
開発メモ
・「NTEmacsのコンパイル手順」を pretest 23.1向けに変更.
・「NTEmacsのコンパイル手順」を MinGW TDM Gcc 4.4.1向けに変更.
2010/03/07 開発メモ
・「NTEmacsのコンパイル手順」を pretest 23.1.92向けに変更.
2009/12/27 Tips
「Bashからクリップボードを操作」を追記.
「Bashからデスクトップにアクセス」を追記.
「gdi++の導入・設定」を追記.

開発メモ
・「NTEmacsのコンパイル手順」を追記.
2009/12/23 ・暫定版リリース.

先頭へ