ChocolateyでWindowsに一気にインストールする

Code

はじまり

リサちゃん
リサちゃん

あれっ、この前も同じような記事を書かなかった?

135ml
135ml

俺は日々進化している・・・。

Windowsへのインストール作業を楽にしたい。

最近、PCを新しくしたのですが、Windowsを新しくセットアップした後、ソフトウェアのインストールする作業が本当に面倒くさかったです。マウスとAlt + Tabを忙しなく動かして、10年ぐらい前にもこんな作業をやっていたような気がします。なんて原始的なんだ。

・・・という書き出しで、以前にも同じようなWindowsのパッケージ管理ツールに関する記事を書きました。なんて節操がないことをしているんだ・・・僕は・・・。

しかし、パッケージ管理マネージャーをScoopからChocolateyに変えたのには意味があります。そのことに関して今回は取り上げていきたいと思います。

Chocolateyとは

ChocolateyはWindows用のパッケージマネージャーで、Linuxのaptyumのようなツールです。コマンドラインを使用してソフトウェアのインストール、アップデート、アンインストールが簡単に行えるため、効率的な作業環境の構築が可能です。

主な特徴としては以下が挙げられます。

  • 数千以上のパッケージが利用可能
  • コマンド一つでインストールが完了
  • 複数のソフトウェアを一括管理できる

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でインストール出来る一部のパッケージを照らし合わせた表を載せておきます。

nameis_available_on_scoopis_available_on_choco
7ziptruetrue
ffmpegtruetrue
gittruetrue
libwebptruefalse
exiftooltruetrue
steamtruetrue
discordtruetrue
googlechrometruetrue
everythingtruetrue
gimptruetrue
vlctruetrue
msiafterburnertruetrue
QuickLooktruetrue
vscodetruetrue
epic-games-launchertruetrue
PPSSPPtruetrue
Sound Blaster Commandfalsetrue
NVidia Display Driverfalsetrue

Chocolateyで利用出来るパッケージはここで確認することが出来ます。

Packages
Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into comp...

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 list

dotsinstaller.ps1の処理の一部であるこのスクリプトでScoopをインストールします。しかし、この後にscoop listを実行するとワークフローが失敗します。Cドライブにインストールしようが、Dドライブにインストールしようが失敗してしまいました。

$firstDir = (Get-Location).Path
# Set-Location "D:\"
Set-Location "C:\"
Get-Location

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
Set-Location $firstDir

実際に詰まる時のエラーメッセージはこんな感じです。scoopが認識されていないらしい。

scoop: D:\a_temp\75f2a30e-f141-4938-9284-342f2c9b5e11.ps1:2
Line |
   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マシンではインストールできているんですよね・・・。分からん・・・。

Path


C:\
Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by
a policy defined at a more specific scope. Due to the override, your shell will retain its current effective
execution policy of Unrestricted. Type “Get-ExecutionPolicy -List” to view your execution policy settings. For more
information please see “Get-Help Set-ExecutionPolicy”.
At D:\a\dotfiles\dotfiles.config\scoop\init.ps1:6 char:1

  • Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser …
  • ~~~~~~~~~~~~~~~~~
    • CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], SecurityException
    • FullyQualifiedErrorId : ExecutionPolicyOverride,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
      Initializing…
      Downloading…
      Creating shim…
      Adding ~\scoop\shims to your path.
      Scoop was installed successfully!
      Type ‘scoop help’ for instructions.

そんなトラブルに見舞われた後、Scoopの代わりにChocolateyをパッケージのインストールに使用したらワークフローが上手く通りました。

GitHub公式の解説でも、WindowsでGitHub Actionsのランナーを走らせる時には、Chocolateyを使ってパッケージをインストールするように推奨されています。

GitHub ホステッド ランナーのカスタマイズ - GitHub Docs
ワークフローの一部として、GitHub でホストされるランナーに追加のソフトウェアをインストールできます。

Chocolateyをインストールする。

PowerShellを管理者権限で起動して、Chocolateyをインストールします。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Chocolateyがインストールされていればバージョンを確認できます。

choco -v

パッケージをインストールする。

それではChocolateyでパッケージをインストールしていきます。例えば、以下のコマンドでGoogle Chromeをインストールできます。

choco install googlechrome -y

ps1ファイルに列挙してインストールする。

先程の方法だとtxtファイルを配置しなければなりませんが、こっちの方法の方がファイルを配置するのでもファイルからコピペして貼り付けるでもインストール出来るので楽かもしれません。

インストールしたいアプリをテキストファイルにまとめます。たとえば、「InstallWithMain.ps1」というファイルを作って以下の内容を記述するか、PowerShellコンソール上で以下のコマンドを全て実行します。

# cui
choco install git
choco install 7zip
choco install curl
choco install exiftool
choco install ffmpeg
# gui
choco install discord
choco install everything
choco install gimp
choco install googlechrome
choco install msiafterburner
choco install obs-studio
choco install quicklook
choco install vlc
choco install vscode
# game
choco install steam
choco install epicgameslauncher
choco install nvidia-display-driver
choco install soundblaster-command

その他のchocoコマンド

インストール済みパッケージをアップデートします。

choco upgrade googlechrome -y

全てのインストール済みパッケージをアップデートします。

choco upgrade all -y

インストール時に「.light」サフィックスや「.portable」サフィックスを付けることができるパッケージもあったりします。

choco install openssl.light
choco install everything.portable

インストール済みパッケージをリスト形式で表示します。

choco list

インストール済みパッケージをアンインストールします。

choco uninstall googlechrome -y

まとめ

今回は、Chocolateyを使ってWindowsにアプリケーション・パッケージを楽にインストールするための方法の紹介しました。

こちらのパッケージ管理マネージャーを使えば、Windowsにインストールするパッケージをおおよそ一括管理出来るのと同時に、GitHub Actionsでインストールテストを行うことも出来ます。

それでは快適な環境構築を!

PC作業のお供に

Amazonベーシック マウスパッド ゲーム用 Mサイズ ブラック 正方形

Amazon.co.jp: Amazonベーシック マウスパッド ゲーム用 Mサイズ ブラック 正方形 : パソコン・周辺機器
Amazon.co.jp: Amazonベーシック マウスパッド ゲーム用 Mサイズ ブラック 正方形 : パソコン・周辺機器

Logicool G 8000Hz 左右対称 PRO X SUPERLIGHT 2 ワイヤレス ゲーミングマウス G-PPD-004WL-BKd 44K DPI 8K ポーリングレート 軽量 60g LIGHTFORCE ハイブリッドスイッチ LIGHTSPEED USB Type-C 充電 国内正規品

Amazon.co.jp: 【Amazon.co.jp限定】 Logicool G PRO LIGHTSPEED ワイヤレス ゲーミング マウス G-PPD-002WLrd ゲーミングマウス 軽量 80g HERO 25Kセンサー 充電 POWERPLAY 対応 ゲーム 充電 無線 左右対称 FPS PC windows mac ブラック 国内正規品 ※Amazon限定の壁紙ダウンロード付き : パソコン・周辺機器
Amazon.co.jp: 【Amazon.co.jp限定】 Logicool G PRO LIGHTSPEED ワイヤレス ゲーミング マウス G-PPD-002WLrd ゲーミングマウス 軽量 80g HERO 25Kセンサー 充電 P...

PFU キーボード HHKB Professional Classic 英語配列/白

Amazon.co.jp

おしまい

リサちゃん
リサちゃん

インストールにけっこう時間が掛かるな・・・。

135ml
135ml

Windowsはかなり掛かるんだな・・・。

以上になります!

コメント

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