# Chocolateyのススメと自動アップグレードバッチ

パッケージ管理ソフトって昔からUnix系OSではあった(らしい)けど、Windowsでは最近やっと流行り始めた?かと思います。 で、おそらく普及していそうなのがChocolatey(コマンド:choco)というパッケージ管理ソフト。名前が可愛いですね。

色々といいことがあるけど、特にいいと思っているんことはアップグレードがコマンドでできることです。つまり、バッチを作っておけば一括アップグレードができるわけですね。怠惰なオイラに最適。

# アップグレードをバッチ化する

ということでアップグレード用のバッチupgrade.batを作成。

where /Q choco
if errorlevel 1 goto END_CHOCO
:: chocolatey本体のアップデート
choco upgrade chocolatey -y
:: chocolateyのすべてのパッケージのアップデート
choco upgrade all -y
:END_CHOCO
1
2
3
4
5
6
7

ただし、chocoコマンドは管理者権限でないと途中でエラーが出ます。 そこで同じフォルダにupgrade_as_admin.batを作りました。

set PROGRAM_PATH=%~dp0
powershell start-process "%PROGRAM_PATH%upgrade.bat" -verb runas
1
2

管理者で実行するか聞かれるので、はいと答えればOKです。

# おまけ

プログラミング言語には大抵ライブラリ等の管理用にパッケージ管理コマンドがついています。一緒にアップグレードできれば楽です。 upgrade.batにHaxe^HaxeとPythonのパッケージ管理コマンドも追加しておきました。

where /Q choco
if errorlevel 1 goto END_CHOCO
:: chocolatey本体のアップデート
choco upgrade chocolatey -y
:: chocolateyのすべてのパッケージのアップデート
choco upgrade all -y
:END_CHOCO

where /Q haxelib
if errorlevel 1 goto END_HAXELIB
:: haxelib本体のアップデート
haxelib --global --always -notimeout update haxelib
:: haxelibのすべてのパッケージのアップデート
haxelib --always -notimeout upgrade
:: Anaconda本体のアップデート
:END_HAXELIB

where /Q python
if errorlevel 1 goto END_PYTHON
python -m pip install --upgrade pip
:: pipのすべてのパッケージのアップデート
python -m pip freeze > requirements.txt
python -m pip install -r requirements.txt --upgrade
del requirements.txt
:END_PYTHON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# まとめ

パッケージ管理ソフトを導入するとアップグレードが自動でできます。時短におすすめ。

あとオイラは甘すぎるものは苦手なんでチョコはちょっと…