[Chocolatey]パッケージマネージャーの威力 (Windows)

Windowsで新しくソフトウェアをインストールするには、通常このような手順を踏む必要があります。

  1. 配布ページを開いてインストーラをダウンロード
  2. インストーラを起動
  3. OKとかAgreeとか押しつつ、終了まで待機

インストールするソフトウェアが1つや2つならこれでもかまいません。しかし例えば、OSのクリーンインストール直後などはどうでしょう?

ChromeやFifefoxに始まり、Google日本語入力、Googleドライブ、Dropbox、7-zip、VLC、AutoHotkey、Git、Visual Studio Code、etc…

考えただけで恐ろしい。しかしパッケージマネージャーを導入すれば、この一行を入力してEnterを押すだけで、上記全てのインストールを完了させることができます。

cinst chrome firefox GoogleJapaneseInput google-backup-and-sync dropbox 7zip vlc autohotkey git vscode -y

今回はWindowsで使えるパッケージマネージャー「Chocolatey」(チョコレーティ)の導入と、そのコマンドの使い方についてお話ししましょう。

Chocolatey - The package manager for Windows
Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/S...

パッケージマネージャーの役割

パッケージマネージャーとはパッケージ(ここではインストーラと考えてもOK)とユーザーの間に入る存在です。

通常の状態だとユーザーがそれぞれのソフトウェアと直接対話し、インストールやアップデートを行います。

これに対しパッケージマネージャーを導入すると、ユーザーはパッケージマネージャーを通してソフトウェアと対話する形になります。ユーザーが直接指示を送るのはパッケージマネージャーに対してのみ。

インストールという作業をある1つのソフトウェアに任せることで、複数ソフトウェアの一括インストールやアップデートが可能になるこのシステム。
MacやLinux、プログラミングの現場ではお馴染みですが、一般のWindowsユーザー向けにリリースされているのがChocolateyです。早速インストールしていきましょう。

Chocolateyのインストールとアンインストール

インストール

Chocolateyは基本的にコマンドラインツールであるPowerShellで動作するソフトウェアです。インストールにもPowerShellを使用します。

スタートメニューアイコンを右クリックするか、ショートカットキーWin+Xでメニューを開き、「Windows Power Shell (管理者)」を選択して起動。Chocolateyは管理者権限で開かないとうまく動作しないので注意してください。

クリックするとPowerShellが管理者権限で開きます。

一番下の行には現在のパスが表示され、カーソルが点滅しています。これが入力待機状態です。
ここにコマンドを打ち込みます。

Get-ExecutionPolicy

Enterキーで実行。ここで「Restricted」と返ってきたら下のコードを入力してEnterを押してください。「AllSigned」や「Bypass」なら不要。

Set-ExecutionPolicy AllSigned

これでインストールの準備が整いました。実際にインストールするには次を入力します。

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'))

長いですがコピペでかまいません。コード部分にカーソルを合わせ、右端に現れる「Copy」ボタンをクリックすればコピーできるので、あとはペーストすればOK。
Enterを押してしばらくすると元の入力待機状態に戻るので、Chocolateyが正しくインストールされたか確認しましょう。

choco

Chocolateyのバージョン情報などが表示されれば、インストールは完了です。

アンインストール

Chocolateyのアンインストールは簡単。C:\ProgramDataにある「chocolatey」フォルダをを丸ごと削除するだけ。

パッケージのインストール

choco install パッケージ名

Chocolateyがインストールできれば、choco install [パッケージ名]というコマンドで様々なソフトウェアをインストールできます。例えば「Spotify」なら、

choco install spotify

PDF閲覧ソフト「Foxit Reader」なら

choco install foxitreader

といった感じです。また省略構文を用いて、

cinst foxitreader

でも可。さらに複数のソフトウェアを同時にインストールするには、パッケージ名を半角スペースで区切り、

cinst spotify foxitreader

とします。

yオプションで入力の手間を省く

上記のコマンドだとインストール時、ライセンス契約に同意するかどうかのダイアログが表示されます。

インストールを続行するならここでYAを入力する必要がありますが、毎回入力するのも面倒です。そこでインストールコマンドの最後に「-y」を付け加えましょう。

cinst spotify foxitreader -y

-yはその後のダイアログに対し、自動的にYを打ち込んで承諾するオプション。インストール終了まで放置できるので、基本的にはこの形でインストールすればOKです。

パッケージ名を調べる

インストールする際、入力するのは単なるソフトウェアの名称ではなく、あくまで「パッケージ名」であることに注意してください。
中にはソフトウェア名とパッケージ名が異なる場合があります。事前に下記ページでパッケージ名を検索しておくのが無難です。

Packages
Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/S...

使用頻度の高いコマンド

ここからはインストール以外のコマンドで、特に使用頻度が高いと思われるものをピックアップ。

パッケージ名を検索

# listコマンド
choco list [パッケージ名]

パッケージ名は上記Webページではなく、Chocolatey上で検索することもできます。

インストールされているパッケージを一覧表示

# Lオプション
choco list -l

Chocolateyでインストールしたパッケージの一覧が表示されます。

# Liオプション
choco list -li

オプションを-liにすると、Chocolateyを使わずインストールしたソフトウェアも含め、システムにインストールされているソフトウェアを一覧表示。

アップデート

# upgradeコマンド
choco upgrade all -y
cup all -y

Chocolatey経由でインストールされている全てのソフトウェアの更新を確認し、アップデート。上のコード2つはどちらも同じ意味です。

cup [パッケージ名] -y

指定パッケージのみアップデートするには「all」の代わりにパッケージ名を入力。

アンインストール

# uninstallコマンド
cuninst [パッケージ名]

Chocolateyでインストールしたパッケージをアンインストールするにはこのコマンド。

その他のコマンド

再インストール

# Fオプション
cinst [パッケージ名] -f

ChocolateyでインストールしたパッケージをOSの機能でアンインストールした場合、Chocolateyにはアンインストールされたという記録が残りません。

同じパッケージをChocolatey経由で再インストールしたい場合は-fオプションを付け加え、強制的にインストールしてください。

最新版でないパッケージをリストアップ

# outdatedコマンド
choco outdated
choco upgrade all --noop

インストールされている中で、最新版でないパッケージをリストアップ。「upgrade all」コマンドに--noop(何もしない)オプションを加えても同じ意味になります。

アップデート防止

指定パッケージのアップデートを防止するには、pinコマンドを使用します。

#pin addコマンド
choco pin add --name [パッケージ名]

上記のコマンドでアップデートを防止するパッケージを指定し、pinに登録。

# pin listコマンド
choco pin list

pinに登録したパッケージの一覧を表示するには、pinコマンドにlistを付け加えます。

choco pin remove --name [パッケージ名]

登録を解除し、アップデートを有効にするにはpin removeコマンドです。

タイトルとURLをコピーしました