Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Windowsでapt-getのようなパッケージ導入を実現する

Windowsをぶん投げた理由は幾つかありますが……特にアレなのは環境設定が大抵愉快な事になる点です。
今は大分マシになったそうですが、Railsの環境設定などは地獄のようでした。

ところが、このchocolateyとかいう子を使うと、あの忌々しい導入作業から解放されてしまうのです!
MacのHomebrewやDebianのapt-getみたいな感じで、各種ツールが手に入ります。

chocolaty本体を入れる

公式様によると

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

これをコマンドプロンプトにコピペすれば準備完了。
@powershellというのはWindows powershellという高機能shellです。*1
イマドキなWindowsなら搭載されています。
何らかの理由で入っていない方は公式様を参考に導入してみてください。

最初のパッケージインストール

導入完了したら、後はパッケージをインストールです。
Jenkins, Apache Ant, Apache Maven, Gradle, Gitをまとめて欲しい場合、
Windows powershell上でのパイプライン芸を実行してあげるだけ

'jenkins', 'apache.ant', 'mvn', 'gradle', 'msysgit', 'poshgit' | % { cinst $_ }

何となく意味はつかめるとは思いますが……このコマンドの意味合いとしては

  • 前半部は配列
  • 後半部はパイプ記号 | の後ろの % は ForEach-Object コマンドレットの別名。配列を前から順番に$_に突っ込まれ、評価される。

……とまあ、インストールの有無やOSのバージョン調査をアレコレやるとしても、わずかに数行の"install.bat"ファイルを用意するだけで済みます……chocolatey、恐ろしい子!

用意されているパッケージ群

rubyは2.0系で配布してますし、Win環境では何故か毎度毎度私に出血を強いる*2ruby-devkitも配布されています。Emacsだって24.3系で配布されてます。
あとはcurlとかwgetなんてLinux系使いには御馴染みのコマンド群も楽々。
フロントエンジニア愛用のyaomenも、compassまでも。

なにが嬉しい? => パッケージを自前で作成可能

とまあ、ここまでならbatファイルをガリガリ書くだけで何とかなりそうな気はします。実際何度かそうした事があります。
真の威力を発揮するのは、自製ソフトを客先に導入するときでしょう。
パッケージ配布形式という事は、当然自前で用意したパッケージを対象にする事ができるわけです。
chocolateyを導入すれば、客先で毎度毎度インストール作業を手取り足取り教える必要はなくなります。
上に示すようなスクリプトに従って必要環境を揃え、最後に自作ソフトを導入させるだけです。
お客様には「インストールツール」と称してGUIで包んだbatを実行して頂くだけでよいと。
……素晴らしい!
パッケージの自作法はこちらを参考に。

*1:恥ずかしながら、この子の存在は今知りました

*2:完全に私怨ですねすみません