Chocolatey は、かなりおいしい

投稿者: Dan Franciscus 投稿日: 2018年9月20

パッケージ管理に関して言えば、Windows は歴史的に Linux に比べてはるかに遅れをとっています。ですが、Chocolatey を使用することで、Windows ユーザーはちょっと「おいしい」ものを味わうことができるようになりました。

Linux の世界には、ソフトウェアを簡単にインストールできる2つの優れたパッケージ・マネージャ、yumapt-get があります。たとえば、PostgreSQL(と、そのすべての依存パッケージ)をインストールするには、yum install postgresql.x86_64 を実行するだけでいいのです。速くて簡単です。

それに比べて、Windows でソフトウェアをインストールするためのデフォルトとしては、どういう方法があるでしょうか?Web サイトにアクセスし、インストーラをダウンロードし、exe ファイルをダブルクリックして、「次へ」を何回もクリックし、「終了」をクリックすることになります。Linux なら1つのコマンドですむものが、Windows では一連のちょっと煩わしい手作業が必要になります。

Windows ユーザーは、yumapt-get に匹敵するようなパッケージ管理システムを待ち望んでいましたが、待ち時間は終わりです。以前 Puppet のソフトウェアエンジニアだった Rob Reynolds 氏が作成した Chocolatey は、まさに待たれていたものであり、急速な広がりを見せています。Chocolatey で Firefox をインストールしたい場合、コマンドプロンプトまたは PowerShell を開き、choco install firefox を実行すればいいのです。

それだけで、ソフトウェアがインストールされます。

コマンドラインを使って簡単に Windows のパッケージ管理ができる Chocolatey は、パブリック・リポジトリで数千のパッケージをホストしています(現在6,000を超えています)。Windows上にどんなソフトウェアをインストールしようとしても、おそらくそのパッケージが Chocolatey リポジトリに見つかる可能性は高いでしょう。コミュニティで管理されているので、パッケージは常に最新の状態に保たれているわけではありませんが、人気のあるパッケージのほとんどは最新バージョンです。

独自パッケージの作成

それでもリポジトリにないソフトウェアの場合に備えて、独自の Chocolatey パッケージを作ることはできるのでしょうか? Chocolatey for Business(C4B)を使えば非常に簡単で、多くのプロセスが自動化されているため、たいていは1つのコマンドしか必要としません。この例では、Google Chrome のインストーラを作業ディレクトリにダウンロードしてあります。これをベースにして Chocolatey パッケージを作成します。以下を実行します。

choco new googlechrome --file=.\googlechromestandaloneenterprise.msi --build-package

Chocolatey は自動的にパッケージを作成し、それにサイレント引数を追加します。この時点で、作成したばかりのパッケージをインストールするには、以下を実行します。

choco install googlechrome --source=".\googlechrome\" –y

Note I specified the新しいパッケージがその中に作成されるフォルダとして、パッケージの --source を指定したことに留意してください。デフォルトでは、ソースは Chocolateyのパブリック・リポジトリになります。-y 引数は、インストール時に提示されたプロンプトを確認することを意味します。

独自 Chocolatey リポジトリのホスト

Chocolatey も指摘していますが、企業で使用する場合、Chocolatey パッケージのリポジトリをホストするのが最善です。そうすることで、クライアントがインターネットに接続してパッケージをダウンロードしてインストールすることを回避でき、環境がより安全になります。独自のリポジトリを作成するには多くの方法があります。パッケージを配布する IIS Web サイトである Chocolatey Simple Server などの無料のものもあります。

企業向け Chocolatey のもう1つの使い方は、Chocolatey のパブリック・パッケージを自動的に社内リポジトリに取り込むことです。インターネットからインストーラをダウンロードし、それらをパッケージ(または別の内部ロケーション)に埋め込みます。

種明かし

Chocolatey パッケージは、正確には何なのでしょうか? ココア?いいえ、実際は NuGet(.nupkg)ファイルです。内容を確認するために解凍することができます。内部には、パッケージマネージャー名、ID、バージョン、依存関係などの情報を保持するXML仕様ファイル(NuSpec)があります。さらに、インストーラの種類(.exe や .msi など)に基づいてパッケージをインストールするために必要なコマンドを実行する PowerShell スクリプトである ChocolateyInstall.ps1 もあります。Chocolatey パッケージ内部にインストーラファイルを埋め込むことも、インターネットにアクセスしてインストーラファイルをダウンロードすることもできます。

DevOpsツールの統合

今日、インフラストラクチャの自動化は急速に進んでいますが、Chocolatey もこの流れに完全に適合するものです。Puppet、Ansible、Chef、その他多くのツールを使用する場合は、パッケージをサーバーに展開するのに Chocolatey を使用できます。下の例は、Chef でPHPをインストールするのに Chocolatey を使っています。


chocolatey_package 'php' do
action :install
source 'https://internalrepo/api/v2'
end

Chocolatey についてかいつまんで説明しましたので、試してみることをお勧めします。オープンソース版は無料で、多くの優れた機能があります。Chocolatey を使えば、別の Windows インストーラを手動でダウンロードする必要はありません。


Dan Franciscus
Dan Franciscus is a systems engineer and VMware Certified Professional (VCP) specializing in VMware, PowerShell, and other Microsoft-based technologies. You can reach Dan at his blog (http://www.winsysblog.com/) or Twitter at @dan_franciscus.
著者が作成したブログ

関連記事

何百ものサーバーからの Windows イベントログを検索する方法
トラブルシューティングや潜在的なセキュリティ侵害の調査を開始するときは、取り掛かりとして、まず Windows のイベントログをチェックすることが多いと思います。
Prefooter Dots
Subscribe Icon

Latest Stories in Your Inbox

Subscribe to get all the news, info and tutorials you need to build better business apps and sites

The specified form no longer exists or is currently unpublished.