# 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
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
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# まとめ
パッケージ管理ソフトを導入するとアップグレードが自動でできます。時短におすすめ。
あとオイラは甘すぎるものは苦手なんでチョコはちょっと…