ChocolateyでWindowsに一気にインストールする
はじまり


Windowsへのインストール作業を楽にしたい。
最近、 PCを 新しくしたのですが、 Windows を新しくセットアップした後、ソフトウェアのインストールする作業が本当に面倒くさかったです。マウスとAlt + Tabを忙しなく動かして、10年ぐらい前にもこんな作業をやっていたような気がします。なんて原始的なんだ。
・・・という書き出しで、以前にも同じような Windows のパッケージ管理ツールに関する記事を書きました。なんて節操がないことをしているんだ・・・僕は・・・。

しかし、パッケージ管理マネージャーを Scoop から Chocolateyに 変えたのには意味があります。そのことに関して今回は取り上げていきたいと思います。
Chocolateyとは
Chocolatey は Windows 用のパッケージマネージャーで、 Linux のaptやyumのようなツールです。コマンドラインを使用してソフトウェアのインストール、アップデート、アンインストールが簡単に行えるため、効率的な作業環境の構築が可能です。
主な特徴としては以下が挙げられます。
- 数千以上のパッケージが利用可能
- コマンド一つでインストールが完了
- 複数のソフトウェアを一括管理できる
Chocolateyの方がパッケージの数が多い。
Scoop よりも Chocolatey の方がインストール可能なパッケージの数が多いです。2024-01-06時点におけるパッケージの数は以下のようになっています。 Chocolatey が約2倍多いですね。
- Scoop:5,776
- Chocolatey:10,360
そのため、 Scoop ではインストールできず、 Chocolatey ではインストール出来るパッケージがあったりします。個人的に見つけたものは以下のパッケージです。ニッチですが。
- Sound Blaster Command
- NVidia Display Driver(Scoopにあるものは更新年月日が2022年ぐらいで止まっていた。)
以下に、 Scoop でインストール出来る一部のパッケージおよび Chocolatey でインストール出来る一部のパッケージを照らし合わせた表を載せておきます。
| name | is_available_on_scoop | is_available_on_choco |
|---|---|---|
| 7zip | true | true |
| ffmpeg | true | true |
| git | true | true |
| libwebp | true | false |
| exiftool | true | true |
| steam | true | true |
| discord | true | true |
| googlechrome | true | true |
| everything | true | true |
| gimp | true | true |
| vlc | true | true |
| msiafterburner | true | true |
| QuickLook | true | true |
| vscode | true | true |
| epic-games-launcher | true | true |
| PPSSPP | true | true |
| Sound Blaster Command | false | true |
| NVidia Display Driver | false | true |
Chocolatey で利用出来るパッケージはここで確認することが出来ます。

Scoop だと GitHub Actions が上手く通らない。
そして、 Scoop をパッケージ管理マネージャーとして操を立てるという企みは一夜にして崩れ去った理由としては、 GitHub Actions が成功しなかったことが挙げられます。
なぜかは分かりませんが、 Scoop のパッケージをインストールして、その後に Scoop を使ってその他のパッケージをインストールしようとしてもscoopのコマンド名の解決が為されず、エラーになってしまうのです。
.github/workflows/install_test.yml:
name: InstallTest
on: [push]
jobs: windows: runs-on: windows-latest steps: - uses: actions/checkout@v4 - name: Install PSScriptAnalyzer module shell: pwsh run: | Set-PSRepository PSGallery -InstallationPolicy Trusted Install-Module PSScriptAnalyzer -ErrorAction Stop - name: Get list of rules shell: pwsh run: | Get-ScriptAnalyzerRule - name: Install required packages shell: pwsh run: choco install -y git - name: Install dotfiles shell: pwsh run: install_scripts/dotsinstaller.ps1 install - name: scoop list shell: pwsh run: scoop listdotsinstaller.ps1の処理の一部であるこのスクリプトで Scoop をインストールします。しかし、この後にscoop listを実行するとワークフローが失敗します。Cドライブにインストールしようが、Dドライブにインストールしようが失敗してしまいました。
$firstDir = (Get-Location).Path# Set-Location "D:\"Set-Location "C:\"Get-Location
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -ForceInvoke-RestMethod -Uri https://get.scoop.sh | Invoke-ExpressionSet-Location $firstDir実際に詰まる時のエラーメッセージはこんな感じです。scoopが認識されていないらしい。
scoop: D:\a_temp\75f2a30e-f141-4938-9284-342f2c9b5e11.ps1:2Line | 2 | scoop list | ~ | The term 'scoop' is not recognized as a name of a cmdlet, function, script file, or executable program. | Check the spelling of the name, or if a path was included, verify that the path is correct and try again.もう少し手前の警告メッセージでは、実行ポリシーの設定に失敗しているようです。しかし、普通にローカルの Windows マシンではインストールできているんですよね・・・。分からん・・・。
PathC:\Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden bya policy defined at a more specific scope. Due to the override, your shell will retain its current effectiveexecution policy of Unrestricted. Type "Get-ExecutionPolicy -List" to view your execution policy settings. For moreinformation please see "Get-Help Set-ExecutionPolicy".At D:\a\dotfiles\dotfiles.config\scoop\init.ps1:6 char:1そんなトラブルに見舞われた後、 Scoop の代わりに Chocolatey をパッケージのインストールに使用したらワークフローが上手く通りました。
GitHub 公式の解説でも、 Windows で GitHub Actions のランナーを走らせる時には、 Chocolatey を使ってパッケージをインストールするように推奨されています。

Chocolateyをインストールする。
PowerShell を管理者権限で起動して、 Chocolatey をインストールします。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -ForceInvoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))Chocolatey がインストールされていればバージョンを確認できます。
choco -vパッケージをインストールする。
それでは Chocolatey でパッケージをインストールしていきます。例えば、以下のコマンドで Google Chrome をインストールできます。
choco install googlechrome -yps1ファイルに列挙してインストールする。
先程の方法だと txt ファイルを配置しなければなりませんが、こっちの方法の方がファイルを配置するのでもファイルからコピペして貼り付けるでもインストール出来るので楽かもしれません。
インストールしたいアプリをテキストファイルにまとめます。たとえば、InstallWithMain.ps1というファイルを作って以下の内容を記述するか、 PowerShell コンソール上で以下のコマンドを全て実行します。
# cuichoco install gitchoco install 7zipchoco install curlchoco install exiftoolchoco install ffmpeg# guichoco install discordchoco install everythingchoco install gimpchoco install googlechromechoco install msiafterburnerchoco install obs-studiochoco install quicklookchoco install vlcchoco install vscode# gamechoco install steamchoco install epicgameslauncherchoco install nvidia-display-driverchoco install soundblaster-commandその他のchocoコマンド
インストール済みパッケージをアップデートします。
choco upgrade googlechrome -y全てのインストール済みパッケージをアップデートします。
choco upgrade all -yインストール時に.lightサフィックスや.portableサフィックスを付けることができるパッケージもあったりします。
choco install openssl.lightchoco install everything.portableインストール済みパッケージをリスト形式で表示します。
choco listインストール済みパッケージをアンインストールします。
choco uninstall googlechrome -yまとめ
今回は、 Chocolatey を使って Windows にアプリケーション・パッケージを楽にインストールするための方法の紹介しました。
こちらのパッケージ管理マネージャーを使えば、 Windows にインストールするパッケージをおおよそ一括管理出来るのと同時に、 GitHub Actions でインストールテストを行うことも出来ます。
それでは快適な環境構築を!
PC作業のお供に
おしまい


以上になります!
記事を共有
この記事が役に立ったなら、ぜひ他の人と共有してください!