Chocolateyを使ってパッケージを管理する

# Chocolateyとは
Windows上で動作するソフトウェアをコマンドラインからインストールできる、パッケージ管理システムです。

# なにができるの？
普通、ソフトウェアをインストールする場合は、
* 対象のサイトにアクセスする
* インストーラーを探してダウンロードする
* インストーラを実行する

といった手順を行う必要があります。

しかし、Chocolateyを使用すれば、コマンドラインに1行のコードを書くだけでインストールが出来ます。

```:「graphviz」のインストールをする
cinst graphviz
```

# Chocolateyのインストール方法
Windows10での手順です。

## インストールのコマンドをコピーする
[Chocolateyのインストールページ](https://chocolatey.org/install)からインストールのコマンドをコピーします。
![0001.jpg](https://qiita-image-store.s3.amazonaws.com/0/230850/936a1d49-0414-2f93-aff0-fc474387fd9e.jpeg)

一応コマンドをここにも記載しておきますが、公式からコピーした方が確実と思います。

```
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
```

## コマンドプロンプトを管理者として実行する
1. タスクバーの「スタートメニュー」をクリック
1. 「cmd」と入力
1. 「コマンドプロンプト」を右クリックし、「管理者として実行」を選択する

<img src="https://qiita-image-store.s3.amazonaws.com/0/230850/af18212f-e378-3392-c39d-1858bba73e20.jpeg" width="50%" alt="0002.jpg">

マウスを使わずコマンドプロンプトを起動する場合

1. Windows キー
1. 「cmd」と入力
1. Ctrl + Shift + Enter
1. Alt + Y

## コマンドプロンプトにコピーしたコマンドを貼り付ける
管理者として実行したコマンドプロンプトに、先ほどコピーしたChocolateyのインストールコマンドを貼り付けてEnterを押す。
![0003.jpg](https://qiita-image-store.s3.amazonaws.com/0/230850/1b168c54-ef3e-e66a-2e20-bcf03128c96c.jpeg)

### 【参考】PewerShellでインストールする場合
PowerShellには実行ポリシーというのがあり、スクリプトの実行が制限されているので、事前に設定を変える必要があるらしいです。

こちらを参考にしてみてください。
https://qiita.com/salty_7/items/c5551b21ff6896c244b9

# Chocolateyの使い方
コマンドラインから chocolatey というコマンドが使えるようになっているはずです。

## Chocolateyのバーションを確認する

```:コマンドプロンプト（管理者）
chocolatey -v
```

## インストール
インストールするには、「chocolatey install パッケージ名」でインストールが出来ます。

```:コマンドプロンプト（管理者）
chocolatey install {packageName}
```

コマンドを省略して、「choco install」や、さらに省略して「cinst」も使用できます。複数のパッケージを一度にインストールすることも出来ます。

```:コマンドプロンプト（管理者）
choco install {packageName}
cinst {packageName} {packageName} {packageName}
```

![0004.jpg](https://qiita-image-store.s3.amazonaws.com/0/230850/78478f0e-4f44-e710-a8b2-0f5b96507dad.jpeg)

特定のバージョンを指定してインストールすることも出来ます。

```:コマンドプロンプト（管理者）
choco install {packageName} -Version {Verison}
```

## パッケージの検索
Chocolateyにどんなパッケージが登録されているのか検索するには、choco listコマンドを利用するか、[公式サイトのpackages](https://chocolatey.org/packages)から検索します。

```:コマンドプロンプト（管理者）
choco list
```

オプションでキーワードを指定し、検索結果を絞り込むことも出来ます。

```:コマンドプロンプト（管理者）
choco list {keyword}
```

-localonlyオプションをつけると、インストール済みのパッケージを表示できます。

```:コマンドプロンプト（管理者）
choco list -localonly
choco list {keyword} -localonly
```

## アップデート

Chocolateyを使用してインストールしたパッケージは、以下のコマンドでアップデート出来ます。

```:コマンドプロンプト（管理者）
choco update {packageName}
choco update all
```

パッケージを指定しないと、Chocolatey自体のアップデートを行います。

```:コマンドプロンプト（管理者）
choco update
```

## パッケージのアンインストール
アンインストールのコマンドは以下ですが、アンインストールについてはパッケージ側で対応していない場合が多いようです。

```:コマンドプロンプト（管理者）
choco uninstall {packageName}
```

# Chocolatey自体のアンインストール
こちらを参考。
http://hayashikejinan.com/windows/1145/#toc8

プログラムとしてインストールされているわけではないらしいので、「C:\ProgramData」のChocolatey本体を消せばいいらしい。
PATHが通ったままなので気になる方は環境変数PATHから「C:\ProgramData\chocolatey\bin;」も取り除く。

# 終わりに
Windows10には、OneGetというパッケージマネージャーが導入されているらしいので、OneGetを使った方がいいかもしれない。


# 参考サイト
* [Chocolatey 公式サイト](https://chocolatey.org)
* [Chocolatey GitHub](https://github.com/chocolatey)
* [Windowsでもパッケージ管理！ Chocolateyの紹介](http://iti.hatenablog.jp/entry/2014/11/06/122553)
* [Chocolatey は Windows ユーザー希望の星となり得るか、インストール～使い方など【パッケージ管…](http://hayashikejinan.com/windows/1145)
* [Windows10にChocolateyをインストールする](https://qiita.com/salty_7/items/c5551b21ff6896c244b9)