chocolatey 基本情報まとめ


# ◆chocolateyとは

chocolateyとはWindows 用のパッケージ管理ソフトウェアです
Linuxでいう ```apt-get``` のwindows版で、ソフトウェアの依存関係を含め簡単に ソフトウェアの更新&インストールを管理することができます。
名前の由来は、「chocolatey nuget（チョコバー）はみんな大好きだから」ということだとか。

* [公式HP](https://chocolatey.org/)
* [GitHub](https://github.com/chocolatey/chocolatey)
* [Chocolatey にパッケージを公開する #1 全体手順](http://qiita.com/pine613/items/d8181422d4b00a32823b)
* [Windows10のパッケージ管理を試した（仮）](http://qiita.com/Zero_Kohaku/items/302055fdd40595ea7199)

# ◆セットアップ

## ◇環境


* Windows XP/Vista/7/8/2003/2008
* .NET Framework 4.0
* PowerShell 2.0

※ [wiki参考](https://github.com/chocolatey/chocolatey/wiki#requirements)

## ◇chocolatey インストール方法


下記をコマンドプロンプトで実行（インストール方法）  


```ps1:cmd.exe（管理者として実行）
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
```

（※古いサイトだと、chocolateyのpathが ```%systemdrive%\chocolatey\bin``` と誤っていることがあるので注意）

# ◆コマンド

* コマンドプロンプトは管理者として実行を推奨
    * 通常のコマンドプロンプトでも必ずしもエラーになるわけではありませんが、管理者としてコマンドプロンプトを実行しないとインストールを失敗することがあるそうです。
![admin-cmd.png](https://qiita-image-store.s3.amazonaws.com/0/82321/052c6207-e97c-8400-f8a7-d41186a6c7fe.png)


## ◇基本コマンド


|                 正式記法                 |           省略記法          |                       意味                       |
| ---------------------------------------- | --------------------------- | ------------------------------------------------ |
| ```choco install [packageName]```        | ```cinst [packageName]```   | パッケージインストール(※１)                      |
| ```choco list```                         | ```clist```                 | パッケージの一覧表示                             |
| ```choco list [packageName]```           | ```clist [packageName]```   | パッケージの検索                                 |
| ```choco list -localonly```              | ```clist -lo```             | インストール済みのパッケージ一覧を取得           |
| ```choco update [packageName]```         | ```cup [packageName]```     | インストール済みのpackegeをアップデート          |
| ```choco update all```                   | ```cup all```               | インストール済みのpackegeを全てアップデート(※２) |
| ```chocolatey uninstall [packageName]``` | ```cuninst [packageName]``` | アンインストール                                 |

* ※１ ```cinst [packageName1] [packageName2]```とスペースを入れると、複数packageのインストールを行うことができます
* ※２ ```--yes```をつけると、更新確認が表示されない

* example)vim のインストール

![choco-vim-install.gif](https://qiita-image-store.s3.amazonaws.com/0/82321/0b2a8d6c-c873-ec4b-2de1-09fdb4c2fbe2.gif)

※実際は、この後数分の待機状態の後にインストール完了する。
  手順は以上である

## ◇設定コマンド


|  省略記法  |      正式記法      |      意味      |
| ---------- | ------------------ | -------------- |
| ```cver``` | ```chocolatey version``` | version表示    |
| -          | ```chocolatey config```  | 設定情報の表示 |
| -          | ```chocolatey help```    | ヘルプ         |


## ◇パッケージをサイトで探す


[公式HP](https://chocolatey.org/packages?q=)にて、インストールできる対象のパッケージ情報が取得できます。

![choco-hp.png](https://qiita-image-store.s3.amazonaws.com/0/82321/c6c83944-cfb8-c0f0-daf8-e602cb012b45.png)

## ◇定義ファイルからパッケージをインストール


xml形式のファイルを作成することで、一括でinstallすることもできます

0. 下記package.configファイルを作成

```xml:package.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
	<package id="GoogleChrome" />
    <package id="Everything" />
    <package id="winmerge" />
    <package id="SublimeText3" />
    <package id="SublimeText3.PackageControl" />
</packages>
```

0. 下記コマンドを実行

```ps1:cmd.exe（管理者として実行）
choco install package.config
```


# ◆画面操作


下記コマンドで、chocoのGUIがインストールできます

```ps1:cmd.exe（管理者として実行）
choco install chocolateygui
```

基本的に、コマンドで出来ることと大差ありません  
ただし、GUIのもつ「エクスポート機能」は、コマンドでは出来ません

![chocoGUI.png](https://qiita-image-store.s3.amazonaws.com/0/82321/8dcfcb5a-116f-774b-9ad9-3cb4dccb2a96.png)


## ◇エクスポート機能


GUIの場合は、現在インストールしているパッケージのconfigファイルをエクスポートすることができます

▼example

```xml:test.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="chocolatey" version="0.9.9.11" />
  <package id="ChocolateyGUI" version="0.13.1" />
  <package id="PowerShell" version="4.0.20141001" />
</packages>
```

configファイルをinstallするコマンド

```ps1:cmd.exe（管理者として実行）
choco install test.config
```