Chocolateyを使って、楽に開発環境を構築しよう

# 初めに
この記事はWindows10が入っているpcにパッケージマネージャの「Chocolatey」を利用して環境構築を行うことで、手早く環境構築をする手順をまとめたものです。
MacOSやUbuntuにおける`homebrew` や` apt-get` のようなパッケージマネージャはWindows単体でも利用できる！ということが伝われば幸いです。

# Chocolateyのインストール
brew同様、コマンドで一発です。[Chocolateyのサイト](https://chocolatey.org/)記載の
以下のコマンドを**管理者権限で開いた**powerShellで入力します。

```
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
```
コマンドが完了したらテストしてみましょう。

```
choco --version
0.10.15
```

バージョン情報が表示されていればOKです。

# Chocoコマンドで開発ツールをインストール
それでは早速、Chocoコマンドで開発ツールをインストールしてみましょう。
今回は説明不要のバージョン管理システム「**Git**」をインストールしてみます。
chocolateyでのインストールコマンドは以下です。

```
choco install 〇〇〇〇
```
〇〇〇〇にはインストールしたいソフトウェアが入ります。今回は

```
choco install git
```
で実行します。
途中で表示される`Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): `はy(yes)を選択します。
インストールが完了したら環境変数を設定しましょう。
以下のコマンドで設定できます。

```
$env:ChocolateyInstall = Convert-Path "$((Get-Command choco).path)\..\.."
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"

refreshenv
```

ここまでを実施したら、gitがインストールされ、PATHが通っているかを確認します。

```
git --version
git version 2.30.1.windows.1
```

この3ステップでGitのインストールが完了しました!

## 複数のプログラムのインストール
Chocolateyでは、複数のプログラムをまとめてインストールできます。
構文は変わらず
 
```
choco install 〇〇〇〇 〇〇〇〇
```

今回はpythonとVSCodeをまとめてインストールしてみましょう。

```
choco install python vscode
```

双方がインストールされたと思います。再度環境変数を更新しましょう。

```
$env:ChocolateyInstall = Convert-Path "$((Get-Command choco).path)\..\.."
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"

refreshenv
```

## 更に楽をしよう
Chocolateyにはインストールしたいソフトウェアを.config形式で記述し、まとめてインストールする事が可能です。.configは自身で記述することもできるのですが今回は「**ChocolateyGUI**」を利用してみましょう。
ChocolateyGUIは読んで字の如く、GUIでChocolateyを操作できるソフトウェアです。
それでは、インストールしましょう。

```
choco install ChocolateyGUI
```

chocolateyでは、依存するパッケージがあった場合それもまとめてインストールしてくれます。
今回のChocolateyGUIをインストールする際に、もしpcになければDotNet4.5.2を同時にインストールしてくれているはずです。

それでは、ChocolateyGUIを開いてみましょう。
![ChocoGUI_1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1023156/a01080bb-b40c-f529-958a-b07572c62282.png)

画像ではマスクしていますが、実際にはインストール済みのソフトウェアが一覧表示されていると思います。
画面右上の💾マーククリック ->エクスポートで、.configファイルを作成することができます。
作成した.configファイルを見てみましょう。

```xml 
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="chocolatey-core.extension" version="1.3.5.1" />
  <package id="chocolatey-windowsupdate.extension" version="1.0.4" />
  <package id="chocolateygui" version="0.17.3" />
  <package id="DotNet4.5.2" version="4.5.2.20140902" />
  <package id="git" version="2.30.1" />
  <package id="git.install" version="2.30.1" />
  <package id="python" version="3.9.1" />
  <package id="python3" version="3.9.1" />
  <package id="vscode" version="1.53.2" />
</packages>
```

御覧の通り、記述形式はxml形式となります。
試しにこのconfigファイルを読み込んでみましょう。configファイルを配置したディレクトリに移動し、

```
choco install -y 〇〇〇〇.config
```

-yは途中で聞かれる質問すべてにyesで返答するオプションです。
しばらく待つと、以下のようにインストールしたソフトウェアが一覧表示されます。
(既にインストール済みのものははじかれます。)

```
Installed:
 - python v3.9.1
 - python3 v3.9.1
 - vscode.install v1.53.2
 - vscode v1.53.2
 - git.install v2.30.1
 - git v2.30.1
 ```

この.configファイルをGitなどに登録しておけば

- チーム開発における新規開発者の手間の軽減
- PC引っ越し時に前のPCの環境を引き継ぐ

といった点で手間が軽減できるのでオススメです。

# 終わりに
本記事はいかがでしたか？
Chocolateyはとても便利で、コマンドラインで実行できることを活かして.batファイルを作成してみたりするとよりよいかと思います。
~~バレンタインデーは過ぎてしまいましたが~~
ぜひ利用してみて下さい！