初めまして、津田です。
Windows上で開発を行っていると環境構築にもあれこれ手間がかかりますよね。
Macだとbrew install hoge、Linuxならyum install hoge等で済んでしまうところが、Windowsでは
と多少手順が増えてしまいます。
チーム内でツールを統一しようと思ったらあれとこれとそれをどこそこからインストールしてと、手順書作成しろと言われることもあるでしょう。
Windowsだからしょうがないかと思っていた時期もありましたが、それChocolateyでできるよ!ということで、Windows用のパッケージマネージャChocolateyを触ってみたので、使い方を紹介したいと思います。
Chocolatey #とは
ChocolateyはWindows上で動作するソフトウェアをコマンドラインからインストール/アンインストール/アップデート/検索することができるパッケージマネージャーです。
Chocolateyのリポジトリに登録されているパッケージのインストールと依存するパッケージのインストールを行ってくれます。(例えばScalaをインストールしたらjreも一緒にインストールしてくれます。)
リポジトリに登録されているパッケージで個人的に目が行ったパッケージを抜粋すると
- ブラウザ (Google Chrome, Firefox)
- バージョン管理ツール (Git, Subersion, Mercurial)およびバージョン管理のGUIクライアント
- IDE (Intellij IDEA, Eclipse)
- エディタ (Atom, Sublime)
- 各プログラミング言語の実行環境(JavaScript(Node.js), Ruby, Python, Java, Scala, Groovy ...etc)
- 仮想(VirtualBox, Vagrant)
などがありました。
開発に使用しているアプリケーションが一通りそろっている印象です。
コマンドラインから一発でパッケージをインストールできるので、自分の開発環境をぱぱっと構築するのに便利そうです。
また、インストールするパッケージを書いたxml(packages.config)からインストールすることもできるので、プロジェクト内の開発環境を統一することにも使えそうです。(例えば、実行環境を仮想化して統一していても、Vagrantのバージョンが問題になって仮想環境構築に手間取るのはもったいないですよね。)
環境
動作確認はWindows8.1で動作確認を行っています。
Chocolateyの公式Wikiによれば、以下の環境で動作するそうです。
- Windows XP/Vista/7/8/2003/2008
- .NET Framework 4.0
- PowerShell 2.0
準備
コマンドプロンプト・もしくはPowerShellを管理者として実行を選択して起動します。
起動後、以下のコマンド(公式サイトのトップページに記載されているコマンドをコピペしたものです)を実行するだけでChocolateyがインストールされます。
- コマンドプロンプトから実行する場合
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
- PowerShellから実行する場合
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
実行が完了したらC:\ProgramData\chocolateyにChocolatey本体が展開されているはずです。
また、コマンドラインからchocolateyコマンドが使用できるようになるので、以下のコマンドで正常にインストールできているか確認できます。
chocolatey version
また、chocoという短縮版のコマンドも存在します。
choco version
Chocolateyのバージョン情報が表示されたらインストール完了です。
Chocolateyの基本操作
引き続き先ほど起動したコマンドプロンプトかPowerShellから実行していきます。
検索
パッケージをインストールするまえに、どんなパッケージが登録されているのか検索しましょう。
インストールできるパッケージは公式サイトのpackagesか、choco listコマンドを利用して検索します。
choco listコマンドを利用する場合は、コマンドラインから以下のコマンドを実行してください。
choco list
listの後にオプションでキーワードを指定することで、検索結果を絞り込むことができます
choco list {keyword}
また、-localonlyオプションをつけるとマシンにインストール済みのパッケージを表示できます
choco list -localonly choco list {keyword} -localonly
インストール
インストールしたいパッケージが見つかったら、choco instll(もしくはcinst)コマンドで依存するパッケージを含めてインストールすることができます。
choco install {packageName}
特定のバージョンをインストールする場合は以下のようにVersionオプションを指定します
choco install {packageName} -Version {Verison}
また、下記のようなxmlをpackages.configという名前で用意しておき、パッケージ名を指定する代わりにpackages.configを指定すると、xmlに記述したパッケージをまとめてインストールすることができます。
<?xml version="1.0" encoding="utf-8"?> <packages> <package id="virtualbox" /> <package id="vagrant" version="1.6.5" /> </packages>
- コマンド
choco install packages.config
アップデート
Chocolateyを通じでインストールしたパッケージは以下のコマンドでアップデートできます。
choco update {packageName}
パッケージ名の代わりにallと指定することで、すべてのパッケージをアップデートします。
choco update all
また、以下のようにupdateの後にパッケージを指定しないとChocolatey自体のアップデートを行います。(choco update chocolateyと同義です)
choco update
終わりに
手軽で便利なChocolateyですが、結構自由にアップできるせいか、パッケージごとに品質や更新の頻度がまちまちです。
また、ものによっては類似のパッケージが存在することもあり、どれをインストールしたらいいかぱっと見て判断できない場合があります(特にjdkのパッケージ)。
とはいえ、いちいちブラウザから公式サイトにアクセス⇒ダウンロード⇒インストールという手順を踏まずに、コマンドラインから1発でインストールできる手軽は非常に魅力的です。
また、余談になりますがWindows 10(というかWindows Management Framework5.0)にはOneGetというMicrosoft謹製のパッケージマネージャーが導入されるようです。
OneGetではChocolateyのリポジトリに登録されているパッケージもインストール可能とのことです。
将来的にOneGetに取り込まれていく可能性が十分ありますが、Chocolateyは現時点でのWindows用パッケージマネージャのデファクトスタンダートとして扱われているといってよいでしょう。
ぜひ一度試してみてはいかがでしょうか。
※ OneGetについてはMSDNのブログのこのエントリが参考になります。