
Chocolatey は Windows で動くパッケージ管理ソフトです。
このページでは下の内容を書いてます。
似たようなパッケージ管理ソフトで winget や scoop などがあります。他のソフトとどっちが良いか、それぞれどんな特徴があるかは別のページ「Nodachisoft - winget、chocolatey、scoop の比較と開発環境の構築自動化」でまとめてますので、もし宜しければどーぞ。
Chocolatey を使う時に必要な環境を公式のインストールページ、公式Wiki から抜粋しています。まずは下を満たすPCを準備しましょー。
公式Wiki に元ネタ情報があるので最新版はコチラを確認してください!
あと、ディスク領域について Wiki に注意が書いてありましたが、Chocolatey でソフトを入れるときは圧縮したインストーラと展開後のインストーラとインストールした先の3つの領域が必要なので、でっかいソフトをインストールするときは注意が必要とのこと。
※ページ内の Step.1 は任意。Chocolatey からのお知らせメルマガとか欲しければ入れましょう。
組織ではなく個人利用なので、「Individual(個人)」の手順ですすめます。最初から Individual のタブが選択されているのでそのまま。
下のスクリーンショットは公式ページの Step2 をとったものです。
※管理者権限でコマンドプロンプトを起動する方法は、別の記事Nodachisoft - 管理者モードでコマンドプロンプトを起動するいくつかの方法でまとめたので良ければご参考にどうぞー。ショートカットとか使って簡単に管理者権限で起動する方法を知らなかったのでそれも書いてます。
コマンドプロンプトからでもPowerShellからでもOKです。
+ で「ファイル名を指定して実行」ウィンドウを表示します。
名前(O): に powershell
と入力して + + を入力。これでPowerShell が管理者権限で起動します。
※タイトルに「管理者:」がついてて管理者権限で起動したことが確認できます。
公式ページのインストール用コマンドをコピーします。 下のボタンを押すか、その左側のテキストボックスの中身をコピーします。
コピーしたあと、管理者権限で起動した powershell の上で
するとコピーした内容を貼り付けできます。
貼り付けて
キーでで実行しましょー。実行するとインターネット経由で最新版をダウンロードしてインストールしてくれます。
ログの中で "Chocolatey (choco.exe) is now ready." と出てれば無事にインストール完了です。
CHocolatey 関係のコマンドを使う場合は、一度シェルを再起動してください。
なんかエラーでたよ!って方は、このページの下のほうにエラー例、理由と対処を書いてます。
管理者権限でコマンドプロンプトから実行したときの例です。 ※管理者権限がないと操作に失敗する場合があります
choco list firefox
「firefox」というキーワードに合致するパッケージとバージョンの一覧が表示されます。 マシンにインストールされているパッケージと、ネット上から検索したパッケージの両方が表示されます。
他にもコマンドでclist firefox
とか choco search firefox
でも同様の結果が得られます。好きなやつで。
インストールするアプリ側で制御している場合は C:\Program Files
やアプリ固有の場所にインストールされますが、それ以外は基本的に %ChocolateyInstall%\lib
配下にインストールされる。
Windows 上システムの様々な状態やバージョン等の情報はレジストリという場所で管理されています。ソフトをインストールするとき、レジストリが変更されることがありますが、Chocolatey はレジストリの差分をチェックして、アンインストールの時のために「.registry」ファイルとして出力して復旧可能にしてくれているようです。
コマンドの実行方法は上のパッケージの検索とどれも一緒です。
よく使うコマンドをまとめておきます。
コマンド | 別の書き方 | 概要 |
---|---|---|
choco help | choco -? | ヘルプでオプションの使い方確認 |
cver | Chocolatey のバージョン確認 | |
choco [コマンド名] -? | ヘルプでchoco コマンドの詳細な使い方確認 | |
choco list [パッケージ名] | clist [パッケージ名] | 該当するパッケージ一覧取得 |
choco list -lo | clist -lo | ローカルにインストール済みのパッケージ一覧表示 |
choco install [パッケージ名] | cinst [パッケージ名] | パッケージをインストール |
choco uninstall [パッケージ名] | cuninst [パッケージ名] | パッケージをアンインストール |
choco update [パッケージ名] | cup [パッケージ名] | 対象のパッケージをアップデート |
choco update all | cup all | インストール済みのパッケージを全部アップデート |
choco update all -y | cup all -y | インストール済みのパッケージを全部アップデート。確認はすっとばし |
事前にパッケージ一覧を記載した XML ファイル(XML マニフェスト)を用意しておきます。
書き方の詳細は公式をご参照。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="git" />
<package id="node.js" version="10.15.3" />
<package id="vscode" />
</packages>
この例では git と node.js のバージョン 10.15.3 と VisualStudioCode を パッケージ一覧として定義しています。
※xml ファイルの名前は packages.config にする必要はないですが、末尾の拡張子部分は「.config」にする必要があります
この config ファイルを使っていっきにインストールできます。
cinst packages.conf -y
オプションの -y で確認入力を省略できます。自動化バッチ作るときは付けとくとよいですね。
ぱっけーじファイルについて パッケージファイルは、〇〇の開発用パッケージ一覧XML とか××の開発用パッケージ一覧XML、みたいに分割しておいて、必要なセットを必要なプロジェクトに合わせてインストールする、というような使い方ができます。
単純に cinst コマンドで複数パッケージをインストールすることもできます。
量が多いとごちゃごちゃしちゃいますけどね。
cinst git node.js vscode
powershell からインストールするコマンドをコピペ実行したとき、PowerShell を管理者権限で実行していないと下のようなエラーが表示されますのでご注意を。
Installation of Chocolatey to default folder requires Administrative permissions. Please run from elevated prompt. Plea
se see https://chocolatey.org/install for details and alternatives if needing to install as a non-administrator.
発生場所 C:\Users\amaji\AppData\Local\Temp\chocolatey\chocInstall\tools\chocolateysetup.psm1:212 文字:5
+ throw "Installation of Chocolatey to default folder requires Admi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (Installation of...-administrator.:String) [], RuntimeException
+ FullyQualifiedErrorId : Installation of Chocolatey to default folder requires Administrative permissions. Please
run from elevated prompt. Please see https://chocolatey.org/install for details and alternatives if needing to in
stall as a non-administrator.
chocolatey のデフォルトのインストール先に管理者権限が必要だけどアクセスできんかったよ…、というエラーです。
インストールするときにインターネット経由で最新の Chocolatey 本体をダウンロードしています。
"1" 個の引数を指定して "DownloadString" を呼び出し中に例外が発生しました: "リモート サーバーに接続できません。"
というエラーメッセージがでます。LANとかささってるか確認してね。
"1" 個の引数を指定して "DownloadString" を呼び出し中に例外が発生しました: "リモート サーバーに接続できません。"
というエラーメッセージとか、
(407) Proxy Authentication Required
というエラーが出る場合があります。
企業内のネットワーク越しだと、Proxy(プロキシ)サーバなどを経由していてうまくダウンロード出来ない場合があります。
この場合は以下の手順で対応できます。
公式のインストールページからインストール用の PowerShell スクリプトを適当な場所にダウンロードします。(install.ps1ファイル)
PowerShell を管理者権限で起動して、ダウンロードしたスクリプトのパスを確認しておく。
以下、PROXY設定例の画面。説明は後述。
install.ps1 のスクリプト内で使われる PROXY 接続用の環境変数をそれぞれ設定している
$env:chocolateyIgnoreProxy = 'false'
$env:chocolateyProxyLocation = "http://192.168.1.111/"
$env:chocolateyProxyUser = "amaji"
$env:chocolateyProxyPassword = "tekito_password"
環境変数 | 値 |
---|---|
chocolateyIgnoreProxy | false で以下のPROXY設定を使用 |
chocolateyProxyLocation | PROXYサーバの URL |
chocolateyProxyUser | PROXYサーバ利用時のユーザ名 |
chocolateyProxyPassword | PROXYサーバ利用時のパスワード |
環境変数に設定しなくとも、 コマンドライン上から Chocolatey コマンドを実行するときに、直接プロキシ設定をしてあげる方法もあります。
下のコマンド実行で、プロキシ(この場合は http://192.168.1.111 が PROXY のURL)を経由した choco コマンドが実行できます。
> choco search firefox --proxy="'http://192.168.1.111/'"
PROXYの認証が必要な場合は下のようにユーザ名やパスワードを指定して実行できます。
この例ではプロキシサーバに http://192.168.1.111 を指定、プロキシIDに”amaji”、パスワードに"mypassword" を指定しています。
> choco search firefox --proxy="'http://192.168.1.111/'" --proxy-user="'amaji'" --proxy-password="'mypassword'"
このようなコマンドライン上にIDやパスワードを直接してもプロキシ経由での利用が可能ですが、 プロキシのIDやパスワードを直接コマンド上に記述することになりますので、バッチに組み込んだり、 コマンドラインの履歴に残ってしまう点は、注意して使う必要があります。
コメント、ありがとうございます。
ごめんなさい。エラーでうまく送信できませんでした。ご迷惑をおかけします。しばらくおいてから再度送信を試していただくか、以下から DM などでご連絡頂ければと思います。
Twitter:@NodachiSoft_jpお名前:以下の内容でコメントを送信します。よろしければ、「送信」を押してください。修正する場合は「戻る」を押してください
お名前: