Chocolateyインストール:ステップバイステップガイド

ソフトウェアの管理と保守に苦労している場合は、これから楽しいことが待っています。この記事では、Chocolateyをインストールし、ソフトウェアパッケージを管理する方法について学びます!

この記事では、実践的にChocolateyをインストールし、ソフトウェアを管理する方法、およびこの製品の基本的な紹介を学びます。

関連記事: 最初のChocolateyパッケージの作成方法

前提条件

このチュートリアルは、手順に従って進める予定ですので、以下の前提条件を満たしていることを確認してください。

  • Windows 10 – このチュートリアルでは、Windows 10 1903を使用します。
  • Windows PowerShell 5.1(オプション) – これはChocolateyに技術的に必要とされているわけではありませんが、この記事のすべての例で使用されます。

すべての技術要件の詳細については、Chocolateyの要件ページをご覧ください。

Chocolateyのインストール

Chocolateyを使い始める際の最初のタスクは、Chocolateyクライアントのダウンロードとインストールです。Chocolateyにはサーバーコンポーネントもありますが、この記事ではクライアントを使用してソフトウェアのダウンロード、インストール、および更新に焦点を当てます。

Chocolateyはさまざまな方法でインストールできます。この記事では、最も一般的な方法であるPowerShellを使用して学ぶ方法を説明します。

さまざまな方法でChocolateyクライアントをインストールするための詳細な手順については、Chocolateyインストールガイドを参照してください。

Chocolateyをインストールするためには、会社が提供する便利なPowerShellスクリプトをシステムで実行する必要があります。インストールスクリプトを実行する前に、ダウンロードする前にスクリプトを確認してください。スクリプトはこちらで見つけることができます。

関連記事: PowerShellを管理者として実行する方法

管理者として開いたPowerShellコンソールで、以下のコマンドを使ってスクリプトをダウンロードして実行します。

以下のコードスニペット:

  • PowerShellがchocolatey.orgサーバーのSSL 証明書をナビゲートできるようにする
  • スクリプトをhttps://chocolatey.org/install.ps1からダウンロードする
  • ダウンロード後にスクリプトを実行する
  • %ALLUSERSPROFILE%\chocolatey\binフォルダをPATH環境変数に追加する
[System.Net.ServicePointManager]::SecurityProtocol = 3072
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Downloading and install Chocolatey

実行ポリシーに関連するエラーが発生する場合、現在の実行ポリシーがスクリプトの実行を許可していない可能性があります。これを解消するためには、実行ポリシーをUnrestrictedまたはRemoteSignedに変更してください。

インストールの確認

PowerShellスクリプトが完了し、PowerShellコンソールに戻ったら、choco.exeというChocolateyクライアントを実行できることを確認してください。

chocoを実行すると、以下に示すようにインストールされたバージョンと基本的なヘルプ情報が表示されます。

PS51> choco
Chocolatey v0.10.15
Please run 'choco -?' or 'choco <command> -?' for help menu.~~

ヘルプの取得

Chocolatey CLIクライアントの最良の機能の一つは、ヘルプシステムです。組み込みのヘルプシステムは、Chocolateyのすべての機能を詳細にドキュメント化しています。

ヘルプシステムにアクセスするには、以下のようにchocoコマンドに-?スイッチを指定します。

Chocolateyクライアントには、ソフトウェアを管理するためのさまざまな機能を実行することができるさまざまなコマンドがあります。

PS51> choco -?
This is a listing of all of the different things you can pass to choco.
 
Commands
 
 * list - lists remote or local packages
 * find - searches remote or local packages (alias for search)
 * search - searches remote or local packages (alias for list)
 * info - retrieves package information. Shorthand for choco search pkgname --exact --verbose
 * install - installs packages from various sources
 * pin - suppress upgrades for a package
 * outdated - retrieves packages that are outdated. Similar to upgrade all --noop
 * upgrade - upgrades packages from various sources
 * uninstall - uninstalls a package
 * pack - packages up a nuspec to a compiled nupkg
 * push - pushes a compiled nupkg
 * new - generates files necessary for a chocolatey package from a template
 * sources - view and configure default sources (alias for source)
 * source - view and configure default sources
 * config - Retrieve and configure config file settings
 * feature - view and configure choco features
 * features - view and configure choco features (alias for feature)
 * setapikey - retrieves, saves or deletes an apikey for a particular source (alias for apikey)
 * apikey - retrieves, saves or deletes an apikey for a particular source
 * unpackself - have chocolatey set itself up
 * version - [DEPRECATED] will be removed in v1 - use `choco outdated` or `cup <pkg|all> -whatif` instead
 * update - [DEPRECATED] RESERVED for future use (you are looking for upgrade, these are not the droids you are looking for)
 
 
Please run chocolatey with `choco command -help` for specific help on
 each command.

特定のアクションを実行する方法がわからなくなった場合は、ヘルプシステムを確認してください。

パッケージの検索

Chocolateyクライアントがインストールされ、実行されている場合、インストール可能なパッケージを確認する時間です。クライアントには、list, search、およびfindという3つのコマンドがあり、これらのコマンドを使用してChocolateyリポジトリを検索して利用可能なパッケージを見つけたり、マシン上のパッケージをリストしたりすることができます。

以下では、ヘルプシステムで見つかる説明と例を示します。

PS51> choco list --help

List/Search Command
 
Chocolatey will perform a search for a package local or remote.
 
* choco list - lists remote or local packages
* choco search - searches remote or local packages (alias for list)
* choco find - searches remote or local packages (alias for search)
 
Usage:
 
choco search <filter> [<options/switches>]
choco list <filter> [<options/switches>]
clist <filter> [<options/switches>]
 
Popular Switch --localonly or -lo
Usage of -lo:
 
choco <search,list,find> --localonly

例として、以下はローカルコンピュータ上にインストールされているすべてのパッケージ(list)の一覧を表示する例です(-lo)。

PS51> choco list -lo
Chocolatey v0.10.15
chocolatey 0.10.15
chocolatey-core.extension 1.3.3
GoogleChrome 77.0.3865.90
3 packages installed.

ダウンロード前にChocolateyパッケージを検査する

パッケージをダウンロードする前に、そのパッケージが実際に何をするのかを理解する必要があります。幸運なことに、infoコマンドがあります。このコマンドは、Chocolateyリポジトリにあるパッケージの詳細を検索します。

choco infoを使用すると、パッケージの作者、ダウンロード数、チェックサム、ソースなどのパッケージ属性を見つけることができます。

以下に、choco infoを実行するオプションをご覧ください。

PS51> choco info --help

Info Command
 
Chocolatey will perform a search for a package local or remote and provide
detailed information about that package. This is a synonym for
`choco search <pkgname> --exact --detailed`.
 
* choco info pkgname - retrieves package information.
* Shorthand for choco search pkgname --exact --verbose
* Shorthand for choco search pkgname --exact --detailed
 
 
Usage:
 
choco info [<options/switches>]

たとえば、Google Chromeをインストールする必要があり、googlechromeという利用可能なパッケージを見つけました。 choco info googlechromeを実行して、どのような情報を見つけることができるか確認してください。

PS51> choco info googlechrome
Chocolatey v0.10.15
GoogleChrome 77.0.3865.90 [Approved] Downloads cached for licensed users
Title: Google Chrome | Published: 9/18/2019
Package approved as a trusted package on Sep 18 2019 20:15:10.
Package testing status: Passing on Sep 18 2019 18:45:17.
Number of Downloads: 19851699 | Downloads for this version: 262131
Package url
Chocolatey Package Source: <https://github.com/chocolatey-community/chocolatey-coreteampackages/tree/master/automatic/googlechrome>
Package Checksum: 'v7bDDUTo21k31xqUW+1amzaEWjeOqsEgS3txYNRgRaO3Q7ZnkzYz4S69AxTFn4r0HUB5Wi7NHXZBag/OaJTPKA==' (SHA512)
Tags: google chrome web internet browser admin
Software Site: <https://www.google.com/chrome/browser/>
Software License: <https://www.google.it/intl/en/chrome/browser/privacy/eula_text.html>
Description: Chrome is a fast, simple, and secure web browser, built for the modern web.

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

パッケージの情報を取得するのは十分です。実際にソフトウェアをインストールする時間です!そのためには、choco installを使用します。

choco installコマンドは非常に強力で重要です。覚えてプロになるべきコマンドはこれです。

choco installコマンドは、必要なものがわかったら提供されたパッケージまたはパッケージのリストをインストールします。

オプションを確認するために、choco install --helpを実行してください。

PS51> choco install --help
 Install Command
 Installs a package or a list of packages
 Usage:
 choco install  [ ] []
     cinst  [ ] []
 Examples:
 choco install sysinternals
 choco install notepadplusplus googlechrome atom 7zip
 choco install notepadplusplus --force --force-dependencies
 choco install notepadplusplus googlechrome atom 7zip -dvfy
 choco install git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'"
 choco install git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'" --install-arguments="'/DIR=C:\git'"
     # パラメータは、パッケージに渡されるパッケージパラメータです
     # インストール引数は、silentArgsに追加されるインストーラーの引数です
     # インストーラー自体のパッケージ内
 choco install nodejs.install --version 0.10.35
 choco install git -s "'https://somewhere/out/there'"
 choco install git -s "'https://somewhere/protected'" -u user -p pass

Chocolateyパッケージの更新の保持

パッケージがインストールされると、必ず最新の状態を保ちたくなるでしょう。これはChocolateyの強力な機能です。

いくつかのパッケージをインストールした後、Chocolateyは自動的にパッケージをバックグラウンドで更新し続けるわけではありません。Chocolateyクライアントはサービスとして実行されません。

インストールされたChocolateyパッケージを更新するには、アップグレードが必要な場合に毎回chocoを手動で起動する必要があります。そのために、choco upgradeコマンドを実行し、アップグレードが必要なパッケージと一緒に実行します。

upgradeコマンドは、パッケージがシステム上に存在しない場合にパッケージをインストールします。

以下に、ヘルプシステムにある詳細と例を示します。

PS51> choco upgrade --help
 Upgrade Command
 Upgrades a package or a list of packages. Some may prefer to use cup
  as a shortcut for choco upgrade. If you do not have a package
 installed, upgrade will install it.
 Usage:
 choco upgrade  [ ] []
 cup  [ ] []
 Examples:
 choco upgrade chocolatey
 choco upgrade notepadplusplus googlechrome atom 7zip
 choco upgrade notepadplusplus googlechrome atom 7zip -dvfy
 choco upgrade git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'"
 choco upgrade git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'" --install-args="'/DIR=C:\git'"
 Params are package parameters, passed to the package
 Install args are installer arguments, appended to the silentArgs
 in the package for the installer itself
 choco upgrade nodejs.install --version 0.10.35
 choco upgrade git -s "'https://somewhere/out/there'"
 choco upgrade git -s "'https://somewhere/protected'" -u user -p pass
 choco upgrade all
 choco upgrade all --except="'skype,conemu'"

choco upgrade allを実行することで、すべてのパッケージを最新バージョンにアップグレードできます。

ローカルの古いパッケージの検索

choco upgradeを無条件に実行する前に、パッケージの新しいバージョンがあるかどうかをチェックしたい場合はどうすればよいでしょうか? outdatedコマンドを使用することができます。 outdatedコマンドは、インストールされたパッケージをスキャンし、指定したパッケージリポジトリと比較してパッケージの更新を確認します。

choco outdated --helpで何が可能かを見てみましょう。

PS51> choco outdated --help

Outdated Command
 
Returns a list of outdated packages.
 
* outdated - retrieves packages that are outdated. Similar to upgrade all --noop
 
Usage:
 
choco outdated [<options/switches>]
 
Examples:
 
choco outdated
choco outdated -s <https://somewhere/out/there>
choco outdated -s "'<https://somewhere/protected>'" -u user -p pass

たとえば、すべてのローカルにインストールされた古いバージョンのパッケージを見つけたい場合は、choco outdatedを使用することができます。

PS51> choco outdated
Chocolatey v0.10.15
Outdated Packages
Output is package name | current version | available version | pinned?
 
 
Chocolatey has determined 0 package(s) are outdated.

パッケージの更新の抑制

ソフトウェアを最新の状態に保つことは間違いなく推奨されますが、明示的に更新を防止する必要がある場合はどうなりますか?なぜそうしたいのでしょうか?

更新の冗長性を避けるために更新を抑制する理由の一つは、パッケージの初期インストールを自動化したい場合です。パッケージの完全なソフトウェアライフサイクルを維持したくありません。

すべてのパッケージの更新を強制する際に、いくつかの除外を行う必要があるかもしれません。その場合、パッケージを固定することができます

さまざまなChocolateyコマンドを実行すると、固定属性が表示されます。たとえば、outdatedコマンドを実行すると、以下のようにその属性が明確に表示されます。

PS51> choco outdated
Chocolatey v0.10.15
Outdated Packages
Output is package name | current version | available version | pinned?

以下に、ヘルプシステムで見つかる詳細と例を示します

PS51> choco pin --help

Pin Command
 
Pin a package to suppress upgrades.
 
This is especially helpful when running `choco upgrade` for all
 packages, as it will automatically skip those packages. Another
 alternative is `choco upgrade --except="pkg1,pk2"`.
 
Usage
 
	choco pin [list]|add|remove [<options/switches>]
 
Examples
 
	choco pin
	choco pin list
	choco pin add -n=git
	choco pin add -n=git --version 1.2.3
	choco pin remove --name git
* pin - suppress upgrades for a package

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

最後に、インストールされているソフトウェアをもう使用しないことに決めたかもしれません。コントロールパネルに手動で移動してソフトウェアを見つけ、それを削除する代わりに、choco uninstallコマンドを使用して迅速に削除できます。

choco uninstallコマンドは、一度に1つまたは複数のソフトウェアパッケージを削除します。

以下のヘルプコンテンツを使用して、choco uninstallコマンドの使用方法を確認してください。

PS51> choco uninstall --help

Uninstall Command
 
Uninstalls a package or a list of packages.
 
Usage:
 
choco uninstall <pkg | all> [pkg2 pkgN] [options/switches]
cuninst <pkg | all> [pkg2 pkgN] [options/switches]
 
NOTE: `all` is a special package keyword that will allow you to
uninstall all packages.
 
Examples:
 
choco uninstall git
choco uninstall notepadplusplus googlechrome atom 7zip
choco uninstall notepadplusplus googlechrome atom 7zip -dv
choco uninstall ruby --version 1.8.7.37402
choco uninstall nodejs.install --all-versions

変更を行う前に安全策を取る(choco whatif

ソフトウェア管理の自動化は、適切に行われない場合に破壊的なタスクとなる可能性があります。一度に多くの変更を行うのではなく、まずはテストランを実行して何が起こるかを確認することが賢明です。幸いにも、Chocolateyクライアントにはそのためのいくつかのパラメータがあります。

WhatIfスイッチ

どのchocoコマンドにも、--whatifというスイッチがあり、その別名には--noop--what-ifがあります。これらのスイッチをchocoコマンドと一緒に使用すると、Chocolateyは実際にはアクションを実行せず、何が起こるかを通知します。

以下は、実際には何も実行しないようにwhatifスイッチを使用して、ローカルシステム上のすべてのパッケージをアンインストールしようとする例です。

PS51> choco uninstall all -whatif

Chocolatey v0.10.15
_ Chocolatey:ChocolateyUninstallCommand - Noop Mode _
Would have uninstalled chocolatey v0.10.15.
Would have uninstalled GoogleChrome v77.0.3865.90.
Would have uninstalled chocolatey-core.extension v1.3.3.

アクションの確認

パッケージをインストールするためにchoco installを実行すると、通常、インストールプロセスを継続するかどうかを確認するプロンプトが表示されます。Chocoは、最初のパッケージの依存関係として呼び出される追加のパッケージに対しても確認を求めます。

以下は、実際にアクションを実行する前にFirefoxをインストールするようにプロンプトを表示する、Chocolateyの例です。

PS51> choco install firefox
Chocolatey v0.10.15
Installing the following packages:
firefox
By installing you accept licenses for the packages.
Progress: Downloading Firefox 69.0.1... 100%
 
Firefox v69.0.1 [Approved]
firefox package files install completed. Performing other installation steps.
The package Firefox 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, --yesまたは--confirmのスイッチを追加してください。

-yスイッチを使用すると、スケジュールされたタスクなどの非対話型コマンドの実行時に便利です。

次のステップ

Chocolateyをインストールして使用する方法を知ったら、次はどうしますか? 普通にインストールして何度もアップグレードする必要がある一般的なソフトウェアを見つけてみてください。

それらのソフトウェアを管理するためのスクリプトを作成して、この便利なWindowsパッケージマネージャーについて学び始めましょう!

Source:
https://adamtheautomator.com/install-chocolatey/