Chocolatey を利用し、各種コマンドおよびアプリケーションソフトをインストール（PowerShell）

こんにちは。 
[Chocolatey](https://chocolatey.org/packages) のインストールを経て、wget などの各種コマンド（およびアプリケーションソフト）をインストールしました[^4]。また応用例として Tex Live のインストールにも使いました。

[^4]: 認証proxyを用いる環境下では、さらに一手間必要です： 「[認証proxyを用いる環境設定（PowerShell）](https://qiita.com/kkdd/items/ac6e65f6e2e8fc32e7ca)」

#### Chocolatey インストール
最初に、PowerShell を管理者権限で実行し[^1]、Chocolatey をインストール。

[^1]: Windows PowerShell の管理者権限での起動方法は、Windows ボタン（タスクバーの左端）をマウスで右クリックし、起動用メニューから選択し起動する方法がなどがあるようですが、実際に動く方法を見つける必要があるようです（「[PowerShell を管理者権限で起動する方法](https://qiita.com/kkdd/items/f58481debef56d44048d)」）。

```powershell
PS> Set-ExecutionPolicy RemoteSigned
PS> .\Install-Chocolatey
PS> choco list -lo
Chocolatey v0.10.3
```

```Install-Chocolatey.ps1
# Encoding::Shift-JIS
set ChocolateyInstall=C:\ProgramData\chocolatey
Invoke-Expression ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
```

##### 各種プログラム（コマンド）のインストール例

そしてインストールされた Chocolatey を使って、 jq, gzip, less, vim, unzip, wget, checksum, aria2, ffmpeg, 7zip, mpv, wsltty, Windows Terminal, fastcopy, defraggler, quicklook, typora, haroopad, boostnote, atom, visual studio code, googlechrome, crystaldiskinfo, ricty-diminished, mactype, itunes, ultravnc, avast-antivirus, classic shell, 8gadgets, Sakura editor, Windows Server 2003 Resource Kit Tools, pycharm (community edition), Visual Studio 2019 Build Tools, miniconda3, python3, golang, rust, jdk8, sbt, scala をインストールしました。

```powershell
PS> choco install -y jq less vim gzip unzip wget aria2 checksum ffmpeg
PS> choco install -y wsltty microsoft-windows-terminal
PS> choco install -y atom vscode sakuraeditor haroopad typora boostnote
PS> choco install -y 7zip mpv fastcopy defraggler quicklook googlechrome crystaldiskinfo fonts-ricty-diminished mactype itunes ultravnc classic-shell avastfreeantivirus 8gadgets rktools.2003
PS> choco install -y pycharm-community visualstudio2019buildtools
PS> choco install -y miniconda3 python golang rust --execution-timeout=1000000
PS> choco install -y jdk8 sbt scala --execution-timeout=1000000
PS> choco upgrade -y all
```

また、[nkf](https://github.com/nurse/nkf) コマンド[^2] もインストールしました。

[^2]: この nkf は、[kai2nenobu/chocolatey_packages](https://github.com/kai2nenobu/chocolatey_packages) の中で提供されています

#### Tex Live インストール

```powershell
PS> choco install -y texlive
```

##### Tex Live インストール(wget を利用）
別方法として、下記例では wget と unzip を使って [Tex Live](https://www.tug.org/texlive/acquire-netinstall.html) (installing over the Internet) のインストーラを動かしています。

```powershell
PS> choco install -y wget unzip
PS> wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl.zip
PS> unzip install-tl.zip
PS> .\install-tl-20170618\install-tl-windows.bat -no-gui --no-persistent-downloads
PS> tlmgr update --self --all --no-persistent-downloads
```

#### 各種コマンドのダウンロード例（wget を利用）
他の各種コマンドなどを入手したい場合にも、同様に wget を用いてそのファイルをダウンロードできます。下記は [netupvim](https://github.com/koron/netupvim)[^3], [Kokomite](http://www.orangemaker.sakura.ne.jp/product/Kokomite) をダウンロードする例です。

```powershell
PS> wget https://github.com/koron/netupvim/releases/download/v1.4.1/netupvim-v1.4.1.zip
PS> wget http://www.orangemaker.sakura.ne.jp/download/Kokomite/Kokomite1-0-2-125.zip
```

[^3]: この netupvim は [vim.exe (kaoriya version)](https://github.com/koron/vim-kaoriya) をインストールするものです。「[Vim のインストール（PowerShell スクリプト）](https://qiita.com/kkdd/items/f6c04f2f5a0ee64e9cf2)」にも説明があります。

#### wget コマンド等の確認
インストールした wget コマンド等を確認してみると、

```powershell
PS> get-command wget, unzip
CommandType     Name          Definition
-----------     ----          ----------
Application     wget.exe      C:\ProgramData\chocolatey\bin\wget.exe
Application     unzip.exe     C:\ProgramData\chocolatey\bin\unzip.exe
```

##### Windows 8 以降の wget コマンド

ただし Windows 8 以降では OS 内に最初から wget が存在（Invoke-WebRequest の Alias として）しているのですが、これは必ずしも上記の ```wget.exe``` とは同じ動作ではないようです。インストールした ```wget.exe``` の方が動いてくれるようにするためには下記のように Alias を再定義すれば良いです。

```powershell
PS> get-Command wget, curl
CommandType     Name
-----------     ----
Alias           wget -> Invoke-WebRequest
Alias           curl -> Invoke-WebRequest
PS>
PS> Set-Alias wget C:\ProgramData\chocolatey\bin\wget -Option AllScope
PS> Get-Command wget
-----------     ----
Alias           wget -> wget.exe
```