ヴェズルフェルニルの研究ノート

座右の銘「ただ一人犀の角のように歩め」的な研究活動ノート

ChocolateyによるWindowsパッケージ管理

仕事上の事情により、しばらくWindowsをメイン開発環境として使わざるをえなくなった。

事情というのは、企業向けエンジニア教育に関わることになったからだ。日本国内の大抵の企業ではデフォルトPCとしてWindows機が使われることが多い。ベンチャーやスタートアップ企業ではMacの方がメジャーなのは知っているが、そうでない一般企業向けという前提条件がつくと、Windowsの方をデフォルトPC環境だと想定せざるをえない。

もう一つの事情として、MacでAI開発をやりたいからだ。MacNVIDIA GPUを利用するにはWindowsを使うしか方法がない。それで、eGPUを接続したIntel MacWindows上に機械・深層学習、生成AI用開発環境を構築する作業も行っている。

ここ20年程ずっとMacを仕事とプライベート両方の常用メイン機として使ってきた。開発用でもMacまたはUbuntu Linuxをデフォルトとして使っていて、どうしても必要な場合のみWindowsを利用していた。久しぶりにWindows(具体的にはWindows 11 Pro)も開発メイン機として使い始めたが、常用環境として使うのはWindows XP以来だ。

Windows周りも進化していて、Chocolateyというパッケージ管理ツールを利用することでプログラム管理がずいぶんやり易くなっている。

chocolatey.org

昔は素のWindowsに十全な仕事&開発環境を構築するには2〜3日かかったものだが、Chocolateyを利用すると1日あれば構築できる。アプリやツールの導入や削除が楽にできるので、できるだけChocolateyでインストール可能なものしか使わないようにしている。

MacのHomebrew、Ubuntuのapt-getコマンドに相当するのがこのChocolateyだと言えるだろう。

WSLを利用してUbuntu環境を構築することもできるし、Dockerを利用すればUbuntuMacを使う場合との差はほとんどない。Visual Studioさえ使わなければだが、WindowsでのUnixライクな開発は昔より随分やり易くなっている(逆に言うと、Visual Studioを使う開発ケースが極端に減っている。エンジニア向け求人サイトで探しても、Windows系開発案件はほとんど見なくなった。需要優先順としてWeb/スマホ・ファーストになって、Windows用デスクトップ・ソフトウェアを開発する必要性が低下したからだろう)。

今後Windows関連の記事も書くことになるだろうから、自分の備忘録も兼ねて、Chocolateyの使い方を書いておく。

Chocolateyのインストール

Chocolateyには個人利用(Individual)向けのCommunity版と企業(Bussines)向けのPro版がある。

前者は、管理者権限で開いたPowerShellから以下のコマンドを実行することでインストールできる。

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 Software | Installing Chocolatey

Chocolateyによるパッケージ管理コマンド

Chocolateyのコマンドは常に管理者権限で開いたPowerShellから実行する必要がある。

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

choco install PACKAGE_NAME

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

choco uninstall PACKAGE_NAME

インストール済みパッケージの更新

choco upgrade PACKAGE_NAME

インストール済み全パッケージの更新

choco upgrade all

上の各コマンドでは操作処理の実行前に確認を尋ねられるが、choco install -y PACKAGE_NAMEのように-yオプションを付加すると、これを回避して実行できる。

インストール済みパッケージ一覧の表示

choco list

パッケージの検索

choco search PACKAGE_NAME

インストール済み全パッケージ情報の出力

choco export PACKAGELIST_FILE

Chocolatey GUI

ChocolateyにはGUIアプリが在り、これを使ってパッケージ操作を行うこともできる。

Chocolatey GUIは下のコマンドによってインストールできる。

choco install chocolateygui

パッケージ情報のエクスポート

Chocolatey GUIには、インストール済み全パッケージ情報をファイル出力する機能がある。この機能を利用すると、他のPCに同じパッケージを一括してインストールすることができる。

Chocolatey GUIの画面右上のフロッピー・マークのボタンがその機能で、これをクリックすると、インストール済み全パッケージ情報をファイルとして出力できる。これはコマンドchoco export PACKAGELIST_FILEと同じ機能で、エクスポートされたファイルは下のようなXML形式のテキストファイルになっている。

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="010editor" version="14.0.0" />
  <package id="010editor.install" version="14.0.0" />
  <package id="7zip" version="23.1.0" />
  <package id="7zip.install" version="23.1.0" />
  <package id="adobe-source-sans" version="3.052" />
  <package id="adobe-source-serif" version="4.005" />
  ....    ....
  ....    ....
</packages>

下のようなコマンドによってこのファイルを指定すると、そのファイル内に記述されたパッケージを一括してインストールすることができる。

choco install PACKAGELIST_FILE

Chocolateyパッケージの探し方

Chocolateyのパッケージは下のページで検索することができる。

community.chocolatey.org

Community版パッケージはメンテナンスされていないものあり、パッケージによってはインストールに失敗することがある。そういうパッケージはかなりの数あるが、その場合は同種の別のパッケージを探すか、諦めるしかない。と言っても、よく使われるメジャーなアプリやツールは大抵インストールに成功するみたいだが。

補足情報

パッケージによっては、以下のようなChecksumエラーのメッセージが出力されてインストールに失敗する場合がある。

> choco install -y free-hex-editor-neo
Chocolatey v2.2.2
Installing the following packages:
free-hex-editor-neo

Progress: Downloading free-hex-editor-neo 7.25.0.8449... 100%

free-hex-editor-neo v7.25.0.8449 [Approved]
....    ....
....    ....

Downloading free-hex-editor-neo
  from 'https://www.hhdsoftware.com/Download/free-hex-editor-neo.exe'
Error - hashes do not match. Actual value was 'D7951CB8E808FD626E5BAA4E0F110FBF449A906C'.
ERROR: Checksum for 'C:\Users\LOGINUSER\AppData\Local\Temp\chocolatey\free-hex-editor-neo\7.25.0.8449\free-hex-editor-neo.exe' did not meet 'a565b93de5fe6efc0d3c934e9c3414e78a6ce0cf' for checksum type 'sha1'. Consider passing the actual checksums through with --checksum --checksum64 once you validate the checksums are appropriate. A less secure option is to pass --ignore-checksums if necessary.
The install of free-hex-editor-neo was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\free-hex-editor-neo\tools\chocolateyinstall.ps1'.
 See log for details.

Chocolatey installed 0/1 packages. 1 packages failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Failures
 - free-hex-editor-neo (exited -1) - Error while running 'C:\ProgramData\chocolatey\lib\free-hex-editor-neo\tools\chocolateyinstall.ps1'.
 See log for details.

その場合は、下のように--ignore-checksumオプションを付加してコマンドを実行すると、インストールできる。

> choco install -y --ignore-checksum free-hex-editor-neo

これまでMacかUbiuntu Linuxを前提環境とした記事しか書いてこなかったが、いままで書いた記事の内容でWindows環境での情報も取得できたら、それも記事として書いていこうと思っている。

【参照リンク】

qiita.com