Windowsのパッケージ管理ソフトであるChocolateyの導入方法と利用方法ついて
本ページではWindowsにおけるパッケージ管理ソフトウェアである Chocolatey を導入する方法と、簡単な利用方法について説明します。
本ページの操作は Windows 10 で実施しています。
Chocolateyとは?#
Chocolatey は Windows 向けのパッケージ管理ソフトウェアで、 Linuxにおける apt や yum のようなものに近いです。
Windowsではソフトウェアの管理に以下のような課題がありました。[1]
ソフトウェアの導入が統一的なインターフェイスで実施できず、手動で実行する必要があり環境の構築に時間がかかっていた
それらを自動化する方法もあったが、複雑で非効率的な手順となってしまっていた
これらの問題からWindowsの環境構築には人手、時間がかかってしまう状態であった
これらを、コマンドライン上から簡単にソフトウェアを管理できるようにすることで解決したものがChocolatey です。
これはつまり、必要なプログラムをインストールするスクリプトを一度記述すれば様々なマシンで同一の環境を簡単に構築できることを示しています。今までLinuxでできていたように簡単にソフトウェアを管理できるようにしたものがChocolateyということですね。
元々大規模なプロジェクトやクラウド上でのWindows環境構築の自動化のために作成されたもののようですが、個人がソフトウェアを管理するためのものとしても非常に有用です。
導入方法#
導入方法自体は 公式サイトのインストール手順 に記載がありますが、元が英語の情報なので日本語にしたものを以下に掲載します。
前提: 管理者権限が必要#
Chocolatey のインストールにあたって、PowerShellを「管理者として実行」するための権限が必要となります。
現在のユーザが管理者権限を持っていない場合、コンピュータの管理者に問い合わせて管理者権限を付与してもらう必要があります。
スタートメニューで "PowerShell" と検索すると、「管理者として実行」というメニューが出るのでそこからPowerShellを管理者権限で起動させてください。
(Windows 11 ではまた違う操作になるかもしれませんが、手元になく確認できず)
インストールの実施#
その前に ...#
インストール自体は用意されたスクリプトを実行するだけなのですが、 Chocolateyのサイトには「安全性確認のために、実行する前にちゃんとスクリプトの中身を読んでください」という旨の但し書きがあります。
ネット上に落ちているものを実行するのできちんとその中身を確認してから実行するのが正しいありかた、といったことが書かれています。それは確かにそうなのですが、インストールの度にそれをやっているとなかなか大変ですよね。ネット上のファイルは攻撃などを受けて改竄されてしまう可能性があるため、そういった場合のことを危惧してのコメントと思われます。
一応確認してみる#
実行対象のスクリプトは こちら にあり、確かにきちんとコメントで内容を記述されているので読むことはできそうです。
私が軽く見た限りでは以下の処理をしていました[2] 。念のため皆さんもご自身で確認してみてください。
既存のChocolateyがないかチェック
Proxyチェック
TLS v1.2 が利用できるかチェック
Chocolateyのダウンロード先URLを確定 (ChocolateyサイトのAPI経由)
Chocolateyのバイナリを含んだzipファイルをダウンロード
7zip をインストール (zipファイル解凍のため)
Chocolateyのバイナリを含んだzipファイルを解凍
解凍したファイルの中の tools/chocolateyInstall.ps1 を実行
インストールできたことの確認
ちなみにダウンロード先URLは記事執筆時点では https://community.chocolatey.org/api/v2/package/chocolatey/1.1.0 という箇所で、 chocolatey.1.1.0.nupkg というファイルがダウンロードできます。このファイルを zip ファイルとして解凍しているようです。
そして tools/chocolateyInstall.ps1 では最終的に Initialize-Chocolatey という関数を呼び出し、Chocolatey本体の配置と、PATHの設定などを実行しています。意外とこっちのファイルの方が読むのが大変。
が、こっちのファイルは別に呼んでくれとは言われていないので読まなくてもいいのかもしれない。
インストール実施#
確認ができたところで、コマンドを実行します (長い)。
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
本コマンドを管理者権限で起動している PowerShell 上に打ち込み、Enterキーを押すことでインストールが完了します。
エラーメッセージが出てしまった場合にはその内容に従ってください。
各種コマンド#
Chocolateyは choco というコマンドで実行します。
# 現在のシステムでインストールされているプログラム一覧
# chocoでインストールしたもの以外も検出できるものがリストアップされている模様
choco list --local-only
# インストール可能なパッケージの検索
choco find <検索したい文字列>
# インストール実施
choco install <パッケージ名>
# アンインストール実施
choco uninstall <パッケージ名>
また、パッケージはWebサイト上でも検索することができます。
補足事項#
Chocolatey は無料で利用可能ですが、ビジネス向けなどで幾つかプランがあるようです。ダウンロードの高速化やセキュリティ関連の機能などがあるようです。