Umi Uyuraのブログ

Titaniumを使ったスマートフォンアプリ開発を中心に、プログラミング関連の作業ログ。

Windows 10デビューしたのでgnupackとChocoletyで環境構築してみた

去年の夏に転職したのですが、気付いたらあっという間に一年経っていました。

今の会社では、仕事で使うPCをひさびさにWindowsにしたので、そのときにやった環境構築について、当時のメモを振り返りつつまとめておくことにしました。

Windowsを使うことにした理由

スマートフォンアプリ系の開発に携わるようになってからは公私共にMacに切り替えていたので、まともにWindowsを使うのは7~8年ぶりくらいです。(最後に使っていたのはWindows XP

特に開発目的ということで考えると、Unix系ツールとの親和性などもあり、使い慣れているMacの方がすぐにパフォーマンスを発揮できると思う一方で、最近のMicrosoftが提供する開発向けのサービスやツール類の充実具合も気になっていたり、さらにBash(Ubuntu) on Windowsも来るということで、ここいらで触っておくのも良いかなと思い、スイッチすることにしました。

最初に欲しいもの

新しい会社に行って、いざPCをセットアップすることになったのですが、久しぶりのWindowsということもあり、さて何を入れたら良いものかと途方にくれることに。

そこで、個人的に環境を作る際に最初に欲しいものを考えてみたところ、以下の3つでした。

  1. なにはともあれEmacs
  2. Unixコマンドラインツール
  3. ソフトウェア管理ツール

Macであれば、標準で2.はある程度サポートされていますし、3.はHomebrew & Homebrew Caskがあります。1.もHomebrewから導入できるので、かんたんに揃います。

そこで、Windowsで似たような環境を作るにはどうしたら良いのかを調べてみました。

なにはともあれEmacs、ついでにUnixコマンドラインツール=gnupack

言うほど使いこなしているわけではないのですが、かれこれ10年以上はテキスト編集をEmacs中心でやっていることもあり、個人的にこのキーバインドが使えないと作業効率が落ちるのです。

過去にWindowsを使っていた際は、Windows向けEmacsクローンであるMeadowを使っていたのですが、残念ながらMeadowは数年前に開発が止まってしまっていたので、今回改めてWindows用のEmacsを探すことに。

すると、これも昔使っていたCygwinと、Emacsの環境を一括で作ってくれる gnupack というものを発見したので、これを使ってみることにしました。

ソフトウェア管理ツール=Chocolatey

Windows系のソフトウェア類の導入ですが、Macで言うところのHomebrew Caskのようなものとして、 Chocolatey というものがあるというのを耳にしていたので、これを使ってみることにしました。

gnupackでCygwin + Emacs環境を作る

まずは、gnupackの環境を作ります。

基本的にアーカイブをダウンロードして任意の場所に展開し、いくつか必要なPATHなどを通せばそれで導入完了なので、非常に簡単でした。

以下、いくつか個人的にポイントだったところをメモ。

gnupackでCaskは扱えるのか

導入にあたり気になったのは、最近Emacsのパッケージ管理に使っている Cask が、gnupack環境でも使えるかどうか。

Caskのサイトを見たところ、WindowsでCaskを使う場合、Pythonを別途インストールする必要があるとのこと。

Windows Installation and Setup

幸い、gnupackは用途に応じて選べるように「basic」と「devel」の2種類のパッケージで提供されており、その「devel」にはPythonが含まれているので、こちらを選択すれば問題ありませんでした。

gnupack環境構築後、Cygwin上で Manual installation の手順を実施すればOK。

1点だけ、gnupackには curl が含まれていなかったので、それは apt-cyg install curl で追加しておきました。

PythonへのPATH関係も通っているので、あとはCaskでダウンロードされるファイル類を保存する場所を追加しておけば、大丈夫でした。

HOMEをどこにするか

gnupackパッケージのダウンロードとインストールは gnupack Users Guide の「使い方」に記載されているとおり。私が導入したのは 13.06-2015.11.08 というバージョンでした。

とりあえずgnupackは C:\gnupack_devel に展開。

その場合、gnupackのデフォルトでは C:\gnupack_devel\homeHOME になります。(これは設定ファイルで変更できます)

一般的に考えると、Windowsのユーザーフォルダ C:\User\<USER NAME> をHOMEにした方が違和感が少ないのかな、と思いつつ、何か副作用があるかもしれないので、まずはデフォルトの設定で運用してみることにしました。

.emacsか、customizeか

gnupack Emacsの初期設定は <gnupack root>\home\.emacs.d にあります。

個人Macで使っている、 これまで丹念に育ててきた.emacsもGitHubにある のですが、gnupackはある程度設定をしてくれているようだったので、それとは別に管理することにしました。

umi-uyura/dot.emacs.d_gnupack

別にしたのは、MacWindowsで細部の設定が変わりそうという点と、今まであまり使っていなかったcustomizeを積極的に使ってみようと思ったからです。(正直に言えば、gnupackのinit.elに欲しい設定をひとつひとつ移植していくのが面倒だったからですが…)

また、gnupackはpackage.elも導入済なので、 list-packages で必要なライブラリもすぐに追加することができました。

小指対策

Emacs使いと言えば左手小指を駆使することになるので、これも昔お世話になったCtrl2capを導入して、Caps LockキーをControlに置き換えておきます。

Ctrl2cap

Sysinternalsとか使うの、超ひさびさ。昔はMicrosoft管轄ではなかったんですよねー。

Process ExplorerとかProcess Monitorとか、お世話になっていました。

Chocolatey

次は、Macで言うところのHomebrew Cask的なものであるChocolatey。

Windowsにもこんなのができていたのかーと思いつつ使ってみています。

若干不安定(インストールに失敗するものがある)だったり、なかなか更新されないパッケージがあったりする点がありますが、ある程度は欲しいソフトウェアが自動で入れられるので、これも便利ですね。

Chocotetyにあっても、バージョンが最新かどうか確認してみて、新しいものに追従できていなそうなものは手動で導入するようにしました。

キーバインド

Macに移行したときは半角/全角切り替えキーがなくて戸惑いましたが、Macから返ってくると、もはやそんなキーがあったことを忘れているくらい、変換/無変換キーに指が慣れてしまっていました。

そこで以下の記事を参考に、Macキーバインドに変更。

Windowsの変換・無変換キーでIMEの有効無効をMac風に操作する | karakaram-blog

おわり

と、(もう一年くらい前ですけど)最初の環境構築はこんな感じでした。

今のところベースはほとんど変わっていないので、再セットアップをすることになっても、とりあえずこのやり方でいけそう。

まあ、次はできればBash on Windows中心に切り替えたいところですが。