ChocolateyでWindows環境のセットアップをしよう
みなさんは普段の開発に使っているマシンは何でしょうか? Windowsでしょうか?Macでしょうか? 今回はオープンソースプロジェクトでWindows用パッケージマネジメントツールであるChocolateyを使ってWindows環境のセットアップをしてみようと思います。 Chocolatey以外にもWinGetやScoopなどがありますが、以前に業務で使用した経験がありますので、今回はChocolateyでやってみたいと思います。
Chocolateyとは
前述したとおりオープンソースプロジェクトでWindows用パッケージマネジメントツールになります。 MacでいうHomebrewに近い感じです。 従来ですと、Windowsで使用したいものを検索し、インストーラーをダウンロードし回る必要があります。 Chocolateyを使用すればコマンドでインストールできバージョンの管理も簡単にすることができます。 では実際にChocolateyをインストールしていくつかのパッケージをインストールしてみましょう。
Chocolateyのインストール
今回はPowerShellを使ってインストールのコマンドを流したいと思います。 PowerShellを管理者権限で開き下記コマンドを流してください。 Chocolateyのバージョンが上がりインストール方法が変わっているかもしれないので公式のインストールガイドを確認してみてください。
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'))インストールできていれば下記コマンドでChocolateyのバージョンが表示されるかと思います。
choco -v私がインストールしているChocolateyのバージョンは以下になります。
- Chocolatey 2.3.0
パッケージのインストール
Chocolateyのインストールができたので実際にパッケージをインストールしてみましょう。 この記事の作成時点で私はKotlinのプロジェクトをやっているので、Kotlin開発環境を整えるていでパッケージをインストールしてみます。 Chocolateyサイト内で検索をするとコマンドが出てきますのでコピーしてコマンドを流します。 下記はjdk21の例になります。
choco install openjdk --version=21.0.0すると下記のように表示されるます。 Yesを選択したいので「Y」を入力しエンターを押下してください。
The package openjdk wants to run 'chocolateyinstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): Yこれでjdkのインストールはできましたが、まだコマンドが使えないはずです。 一度PowerShellを開きなおすか、refreshenvコマンドを流す必要があります。 PowerShellの場合はヘルパーモジュールが必要なのでインストールします。
Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1ヘルパーモジュールのインストールが済んだらrefreshenvコマンドを流します。
refreshenvこれでコマンドが使用可能になっていると思いますのでバージョン確認のコマンドを流してみましょう。
java -versionバージョンが表示されれば成功です。 自身でパスを通す必要もなく便利ですね。 Java/Kotlin専用のエディタもついでにインストールしてみましょう。 今回は-yもつけて実行します。
choco install intellijidea-community -y-yをつけると先ほど実行するときに入力した「Y」を打たなくてよくなります。 Chocolateyでインストールしたものは以下コマンドで確認できますので確認してみましょう。
choco list下記のようにインストールされているものが表示されていれば成功です
Chocolatey v2.3.0
chocolatey 2.3.0
intellijidea-community 2024.1.4
openjdk 21.0.0パッケージのアップデート
Chocolateyではパッケージのアップデートも簡単です。 choco listコマンドで下記結果が返ってきたとします。
Chocolatey v2.3.0
chocolatey 2.3.0
intellijidea-community 2024.1.4
openjdk 21.0.0
volta 1.1.1現在インストールされているVoltaのバージョン1.1.1です。 しかし最新ではなく、このインストールされているものより新しいバージョンが出ています。 ではこのVoltaを最新バージョンへアップデートしてみます。 下記コマンドを流す際は、管理者権限で行なうようにしましょう。
choco upgrade volta -y完了したら最新バージョンになっているか下記コマンドで確認します。
choco listバージョンが2.0.2になっていればアップデート完了です。 このようにアップデートも非常に簡単です。
Chocolatey v2.3.0
chocolatey 2.3.0
intellijidea-community 2024.1.4
openjdk 21.0.0
volta 2.0.2パッケージのアンインストール
不要になったパッケージはchoco uninstallで削除することができます。
choco uninstall voltauninstallコマンド実行後にlistで見てみましょう。
choco list以下のように指定したパッケージが表示されなければ削除できています。
Chocolatey v2.3.0
chocolatey 2.3.0
intellijidea-community 2024.1.4
openjdk 21.0.0Chocolatey GUI
ChocolateyはGUIも用意されています。 下記コマンドでインストールすることができます。
choco install chocolateyguiGUIではパッケージの検索・インストールや、インストール済のものを確認することができます。 必要であればインストールしてみてはいかがでしょうか。
その他のコマンドやオプション
他にもコマンドやオプションが用意されています。 ドキュメントか下記コマンドで確認することができます。
choco -?Chocolatey本体の削除
以下コマンドをまとめて実行すればChocolatey本体を削除することができます。
Remove-Item -Recurse -Force "$env:ChocolateyInstall"
[System.Environment]::SetEnvironmentVariable("ChocolateyInstall", $null, "Machine")
[System.Environment]::SetEnvironmentVariable("ChocolateyInstall", $null, "User")
[System.Environment]::SetEnvironmentVariable("ChocolateyLastPathUpdate", $null, "Machine")
[System.Environment]::SetEnvironmentVariable("ChocolateyLastPathUpdate", $null, "User")
$machinePath = [System.Environment]::GetEnvironmentVariable("PATH", "Machine")
$newPath = ($machinePath -split ";" | Where-Object { $_ -notlike "*chocolatey*" }) -join ";"
[System.Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")Windows環境を使用している皆様いかがでしたでしょうか。 私も以前、参画していた現場で初めて使用し便利だなと思いました。 しかし自身のPCではまだ使用していなかったので紹介するとともに導入してみました。 記事内でインストールしたjdkとIntelliJ IDEAのみなので少しずつChocolateyでの管理に移行しようと思います。