Chocolateyとは

ChocolateyとはWindowsのパッケージ管理システムです。Linuxのyum、apt、pacmanとかMacOSのHomebrewみたいなものです。

Windowsしか使ってこなかったという人は、例えば窓の杜やその他のソフトウェアのダウンロードサイトなどから本体をexeやzipでダウンロードして、ダウンロードしたものを展開・インストールと言う方法はわかっていても、こういったパッケージマネージャには馴染みがないかもしれませんが、PowerShellから簡単なコマンドを入れるだけでアプリの導入・削除・アップデートなどができるようになるものと理解してもらえれば良いかと思います

すでにChocolateyが便利だよと言うような記事は2013年ぐらいからボチボチとあるのでここに書いてあるようなことは世に出回っています。が、その数は思ったよりは多くはなくわかってる人だけが便利に使っているような印象もあります。例えば書いてあることはエンジニア向けの小難しいことであったり。
フリーウェアやオープンソースソフトウェアのインストール/アンインストール等はとても便利で、便利なことはむしろ初心者やChocolateyなどを知らなかった人が覚えた方が良い気もしますので、少しだけでも広められたらと言う思いも含んでここに書く次第です。

Chocolateyを使って一気に定番ソフトをインストール

どうしてそんなコマンド入力など面倒なことをするの?ソフトをDLしてインストールすればいいじゃない?と思われる方もいるでしょう。

Chocolateyは例えばGIMPとINKSCAPE、firefox等を一度にインストールすることができます。ダウンロードしてインストールはChocolateyがやってくれるので、あとはコマンドを書くだけです。
choco install gimp inkscape firefox -y
これだけです。最後についている-yは途中でなんちゃらしますか?などの問い合わせに対してYesと答えるためのスイッチです。だいたいはインストールしますか?とか上書きしますか?みたいな、プロンプトでYes/Noを聞いてくるようなやつです。

ダブルクリックして展開してインストール、1つが終わったら次の…というような事はしなくても良くなります。

慣れてくるとchoco~と入力するのもアレなのでショートカットが用意されています。
cinst gimp inkscape firefox -y
このような感じです。

ちなみにPowerShellをいちいち起動するのが面倒くさいという場合も考えられますが、キーボードからWindowsキーを押して、メニューが表示されたらそのままpowぐらいまで入力すればリストが出るかと思います。そこからキーボードの矢印キーで右側のペインに移り、次いで矢印キー管理者権限のものを選んでEnterキーですぐに起動できます。

マウスでクリクリとスクロールしてPowerShellを探してよりはだいぶ速いかと思います。

コマンド

現在のChocolateyの最新バージョンは1.1.0で、2022年の3月20日にリリースされました。

まだバージョンが1.1.0なのでショートカットでcinstなどを紹介していますが、v2.0.0で削除される予定です。他のものもそういったバージョンによって削除される可能性もあります。そういったことから、基本的には、choco install {xxxx}のような形で覚えておく方が良いかと思います。

choco install sysinternals

choco install notepadplusplus googlechrome atom 7zip

choco install notepadplusplus --force --force-dependencies

choco install notepadplusplus googlechrome atom 7zip -dvfy

choco install git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'"

choco install git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'" --install-arguments="'/DIR=C:\git'"

# Params are package parameters, passed to the package

# Install args are installer arguments, appended to the silentArgs

#  in the package for the installer itself

choco install nodejs.install --version 0.10.35

choco install git -s "'https://somewhere/out/there'"

choco install git -s "'https://somewhere/protected'" -u user -p pass

installに関しては上記のようなサンプルが記載されています。なにか難しげな事が書いてあるように見えますがそう言うわけではありません。例えば2つ目のものは、

choco install PK1 PK2 PK3 PK4

とnotepad++、 Google Chrome、 atom、 7zipと4つのソフトを書き連ねられているだけです。gitに関しては、gitの事も色々知ってないとアレなのでひとまず置いておき、後はスイッチがどういう役目をしているかということがわかればひとまずは理解いただけると思います。
スイッチは色々とあって、もしわからなくなったらchoco -?とコマンドを入れればスイッチの詳細が出てきます(英語)。

普段使うようなコマンドは、installとuninstall、list、upgradeあたりかと思います。installは上記の通りcinstがv2.0.0で削除されると書きましたが、cuninst、clist、cupもv2.0.0で削除される予定です。
こちらのページでは現在のバージョンが1.1.0というのもあるのでショートカットのものも書いてあります。それらを留意して、これから始められる方は、choco コマンド {xxxx}のような形で覚えられる方が良いかと思います。

コマンドはこちらに詳細が書いてあります(英語)。

実際の動作をGIFで見てみよう

コマンド入力、動作の様子

ここの画像ではインストール後、refreshenv と入力されています。これにはこういう注釈がついています。

Chocolatey FOSS install showing tab completion and refreshenv (a way to update environment variables without restarting the shell).
Chocolatey FOSSのインストールでは、タブ補完とrefreshhenv(シェルを再起動せずに環境変数を更新する方法)が表示されます。

FOSSとは、フリーソフトやオープンソースソフトウェアの事です。

ソフトの中には環境変数が変更されてしまうものもあるので、そう言う場合は、シェルを開き直すか refreshenv と入力してねとメッセージが出るのでそれに従うような感じです。

Environment Vars (like PATH) have changed. Close/reopen your shell to see the changes (or in powershell/cmd.exe just type refreshenv).

こういうのがメッセージで表示されます。

導入したアプリを全て、あるいは任意のものをアップデート

chocolatey upgrade all -y
とするだけです。先頭のchocolateyは、chocoとする事もできます。

任意のものをアップデートしたい場合は、
choco upgrade {xxxx} -y
と{xxxx}部分にそのアプリ名を入れます。例えばFirefoxなら、
choco upgrade firefox -y
のような感じです。

Firefoxやブラウザの場合は、こうやってしなくても更新の通知が来るのでそれでも構わないわけではあるのですが、どこかのサイトで何かしらのソフトの新しいバージョンが出たというのを聞いたような場合には、わざわざ公式サイトに行かずともコマンド入力だけで済むので便利です。 任意の期間、例えばXヶ月に1度全体のアップグレードをするとかでも良いかと。

ショートカットは、cup firefox -y です。

その他のよく使うコマンド

こうやってアプリをインストールしていくと何を入れたのかわからなくなってしまう場合もありますので、そういった時には、
choco list -lo
とすると一覧のリストが表示されます。

-lo などのように、-xx、--xxなどはスイッチとかオプションと言われます。-lo の場合は、local onlyということです。つまり今使ってるローカルマシンの項目に対してのみ検索を行うと言うスイッチです。

スイッチについては Chocolatey Software Docs | Commands から(英語)。

また、もう必要がなくなってアンインストールしたい場合は、
choco uninstall {xxxx} or cuninst {xxxx}
のように{xxxx}部分にそのアプリ名を入れればアンインストールできます。もちろん
choco uninstall gimp inkscape or cuninst gimp inkscape
等のように複数のソフトを連続でアンインストールすることもできます。

どのような人が便利に使えるか

例えば、いくつかのPCに同じソフトを入れたい場合が考えられます。あれとそれとこれもインストールしておいてねなどと指示があった時に、そのソフトをコマンド化してChocolateyの環境さえ構築できていれば後はメール等でコマンドを通知するだけで皆が同じものを入れることができます。

個人での利用の場合でもデスクトップとノートに同じものを入れたいという場合にも便利でしょう。新たにPCを買ったとか作ったとかという場合にも便利かもしれません。
もちろん普通に1つずつインストール等して使う場合でも便利には使えます。ただし、世にある全てのソフトがライブラリされているわけではないので、あくまでもChocolateyから利用できるソフトについてはと言う前置きもしておきます。

エンジニアの方などはGitからダウンロードしてインストールなどと言うこともされているようですが、一般人はChocolateyにライブラリされているものから便利に使うのが良いかと思います。

Chocolatey Software | Packages このリンクから公式のコミュニティパッケージの検索ができます。

導入方法

ChocolateyをインストールするにはPowerShellが必要になります。

必要要件

  • Windows 7+ / Windows Server 2003+

  • PowerShell v2+

    • TLS1.2要件のため、公式サイト(インストールのページ)Chocolatey Software | Installing Chocolatey からインストールする場合は最低でもv3が必要です

    • 要件にWindows7と見えますが、Windows7のPowerShellはv2なので、おそらくWindows7以降のOSでと言うのがWindows7+に込められていると思います。

  • .NET Framework 4+

    • インストールされていない場合、.NET 4.0をインストールしようとします

    • TLS 1.2要件のため、公式サイトからのインストールには最小4.5が必要です

インストール

  1. 公式サイトのインストールのページに行きます

  2. 1. Choose How to Install Chocolatey:
    インストールする方法を選びます。ここではIndividual(個人)を選んで説明します。
  3. PowerShellを管理者権限付きで起動してください。

  4. 2. Install Chocolatey for Individual Use: の2番にある、
    Now run the following command:(ここで、以下のコマンドを実行します)
    とある部分の下にあるボックスの中身をコピーします。ボックス右側のコピーボタンで中身のコピーができます。

  5. コピーしたものをPowerShellに貼り付けてEnterキーで実行します。

あとは数秒待てばインストールが終わります。

Chocolatey自体のアンインストール

通常は、C:\ProgramData\chocolatey に本体があります。これをまるごと削除してしまって、以下の環境変数を削除したらアンインストールはおしまいです。

  • ChocolateyInstall
  • ChocolateyToolsLocation
  • ChocolateyLastPathUpdate
  • PATH

環境変数は、スタートボタンを右クリックして

  • 「システム」を選択します

  • バージョン情報等表示された所の右側に「システム情報」がありますのでそれをクリックします

  • コンピューターの基本的な情報の表示と言うのが出てきますので、左側ペインの盾アイコンのあるメニューから「システムの詳細設定」をクリックします

  • システムのプロパティというウィンドウが出ますので一番下の右側にある「環境変数」をクリックします

面倒な場合は、Windowsキーを押してメニューが表示された状態で、sysdm.cpl と入力するとコントロールパネル項目「システムのプロパティ」が表示されるので右矢印で「開く」enterキーで1発で開きます。
この場合「コンピューター名」タブで開くかと思うので、タブの中から「詳細設定」を選びます。

ChocolateyToolsLocation は無いかもしれません。
ChocolateyLastPathUpdate はユーザーの環境変数枠の中にあります。 ChocolateyInstall はシステム環境変数枠の中にあります。
PATHは、システム環境変数の「Path」をダブルクリックすると「環境変数名の編集」というのが開くのでC:\ProgramData\chocolatey\bin を削除します。