Gnupack を 64bit版Windows 7、32bit版Vista/7にインストール

GnupackはWindows Vista/7での動作は保証していないが、今のところ、Windows Vista/7の32bit版で問題なく動作している。

しかし、インストールにはちょっとした注意が必要になる。

32bit版 Windows Vista/7へのインストール

インストール先はC:\Program Filesではなく、C:\Win32Appのように自分でフォルダを作成する必要がある。うっかり、C:\Program Filesにインストールするとemacsの起動時にいちいち確認されたり、シェルの起動に失敗したりする。ただし、C:\Win32Appへインストールすることによりセキュリティ上の問題が発生する場合がある。詳しくはここでは説明しない。

次の手順で行う。

  1. C:\Win32Appフォルダを作成する
  2. gnupackの自己解凍ファイルをダブルクリックし、インストール先をC:\Win32Appにする。
    devel-V7.00ならC:\Win32App\gnupack_devel-7.00フォルダが作成される。
  3. デスクトップやタスクバーに下記のショートカットを作成する。

c:\Win32App\gnupack_devel-7.00\emacs.exe ←  emacs起動プログラム
c:\Win32App\gnupack_devel-7.00\mintty.exe ← シェル(bash)起動プログラム
c:\Win32App\gnupack_devel-7.00\gvim.exe ← vi の起動プログラム

Windows 7の場合、タスクバーで起動中のemacsやbashを右クリップで「タスクバーに表示する」にしても正しく動作しない。これは、起動プログラムと実行プログラムが別なためである。

64-bit版 Windows 7へのインストール

64bit版ではc:\Program Filesは64bitプログラム専用のフォルダになる。gnupackは32bit用のプログラムなので”C:\Program Files(x86)"にインストールする。うっかり、”C:\Program Files”にインストールしてしまうとemacsは起動するが、mintty(bashのコマンドプロンプト)が起動しない(その後、“C:\Program Files”にインストールしても動作することを確認した。どうやら勘違いしていたらしい)。32-bit版のようにWin32Appフォルダ等を作成してインストールすると bash.exe がコアダンプするなどの現象が発生する。原因は究明していない。

次の手順で行う。

  1. gnupackの自己解凍ファイルを右クリックして「管理者として実行」を選択する
  2. ダイアログボックスで、インストール先を”C:\Program Files(x86)"にする。
    devel-V7.00なら”C:\Program Files(x86)\gnupack_devel-7.00"フォルダが作成される。
  3. デスクトップやタスクバーに下記のショートカットを作成する。

    C:\Program Files (x86)\gnupack_devel-7.00\emacs.exe ← emacs起動プログラム
    C:\Program Files (x86)\gnupack_devel-7.00\mintty.exe ← シェル(bash)起動プログラム
    C:\Program Files (x86)\gnupack_devel-7.00\gvim.exe ← vi の起動プログラム

Program Files (x86)へインストールした場合の注意

mintty.exe の最初の1回は必ず「管理者として実行」する

/etc/passwd は C:\Program Files (x86)\gnupack_devel-X.XX\app\cygwin\cygwin\etc\passwd に配置される。

/etc/passwd は、最初の起動時に作成されるため、通常ユーザーで実行すると作成に失敗する。

ホームディレクトリで、ls -al を実行してファイル所有者のグループ名がmkpasswdになっている場合、/etc/passwdの作成に失敗している。

この場合、mintty.exe を「管理者として実行」してから、下記のコマンドを実行する。

mkpasswd -l > /etc/passwd

mkgroup -l > /etc/group

ホームディレクトリはユーザー書き込み権限のある場所に変更する

  1. mintty.exe を管理者権限で実行し、vi などで /root/config.ini の [SetEnv]セクションにあるHOMEを変更する

    変更前: HOME = %INST_DIR%\home
    変更後: HOME = c:\users\<ユーザー名>\home

  2. c:\Program Files (x86)\gnupack_devel-X.XX\home を c:\users\<ユーザー名>\home にコピーする

なぜ、こんな設定が必要か?

GnupackはホームディレクトリをGnupack内のフォルダに作成しているため、C:\Program Files(x86)では様々な問題が発生する。

通常ユーザーでmintty.exeをダブルクリックして開き、下記のコマンドを実行する。

cp .bashrc bash.txt

Windows上ではgnupackのホームディレクトリは下記の場所になるが、ファイルは作成されない。

C:\Program Files (x86)\gnupack_devel-7.00\home

ファイルはすべて下記のフォルダへ書き込まれる。

C:\Users\<ユーザー名>\AppData\Local\VirtualStore\Program Files (x86)\gnupack_devel-7.00\home

試したバージョン

  • Gnupack 7.00 (2011-07-25)
  • Gnupack 7.03 (2012-01-20)
  • Windows Vista SP2 32-bit Basic Edition
  • Winodws 7 SP1 32-bit Home Premium Edition
  • Windows 7 SP1 64-bit Home Premium Edition
  • Windows 7 SP1 64-bit Professonal Edition

注意

試したといっても、bashの起動やemacsの起動ぐらいしか試していない。この方法はセキュリティ上のリスクがある。個人の実験的な環境で使用するのは構わないが、何が起きても責任はとれない。

修正履歴

2012年5月3日、64-bit版のインストール方法について誤解の修正とVirtualStoreに関する記述を加筆した。

2012年5月7日、「Program Files(x86)へインストールした場合の注意」を追加した。





Program Files
Betascript Publishing

ユーザレビュー:

amazon.co.jpで買う
Amazonアソシエイト by Program Files の詳しい情報を見る / ウェブリブログ商品ポータル

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

fen
2012年05月01日 02:33
gnupack Windows7と検索してここに来ました。Program Files以外のフォルダにインストールしたときの、セキュリティ上の問題ってどんなものなんでしょうか。これからgnupackをつかってWindows上でプログラミングを勉強しようとしている初心者としては気になります・・・。
2012年05月01日 21:20
Fenさん、Program Files以外にインストールすると、gnupack内のプログラムに無許可で書き込みが可能になります。つまり、勝手にプログラムを入れ替えられても、わかりません。Vista/7の場合、Program Filesへ書き込みをしようとするプログラムがあるとUAC機能により、確認メッセージが表示されます。
WindowsのCACLSコマンドでProgram Filesフォルダと他のフォルダの違いを確認するとよくわかりますよ。
fen
2012年05月12日 14:08
丁寧な回答有難うございます。

やっぱりProgram Filesにインストールしたほうが安全なのですね。
名前にスペースが含まれているから、大丈夫なのだろうかと思っていましたが、
Program Filesにインストールすることにしました。
2012年05月13日 11:10
Fenさん、
ただし、Program Filesにインストールすると、管理者権限について意識する必要があります。「Program Files (x86)へインストールした場合の注意」を追記しました。32ビット版でも同じなので読んでみてください。
ここでは書ききれませんでしたが、apt-cygなどでプログラムを書き換える必要がある場面では管理者権限で実行する必要があります。
fen
2012年05月18日 17:56
とても勉強になりました。ありがとうございます。

この記事へのトラックバック