Alecriar Studioの中の人の技術メモ

横浜の個人事業主が日々の技術的な情報をつづります

Windowsのアプリ管理をChocolatelyでやろう

Windowsのアプリ管理って・・

Windowsのアプリ管理って何となく使い勝手が悪くありませんか?パッケージのバージョンを新しくしようにも通知機能はありませんし、まとめてアップデートしようにも一つひとつ行う必要があります。また、あるアプリを入れようとしても、わざわざ配布元サイトにアクセスしてアプリをダウンロードしインストールプログラムを実行する必要があり、煩雑な手間を取られます。

一方、LinuxBSDといったOSには優れたパッケージ(アプリ)管理の仕組みが存在します。Ubuntu/Debianにはapt-get、RedHatにはrpmGentooにはPortage、Arch LinuxにはpacmanFreeBSDにはportsといったものです。それらのパッケージ管理システムは、ほぼすべてのことをコマンド一行で実行でき、煩わしいステップを踏むこともなく自動的に行ってくれます。それらのパッケージ管理がWindowsで実現できないかと探ったところ、ありました。

Windows用パッケージ管理アプリ chocolatey

chocolateyをインストールすると、それ以降さまざまなアプリをchocolateyで一括管理できるようになります。さらに、ほとんどの操作がコマンド一行で行えます。以下のようなコマンドです。

chocolatey install [アプリ名]

前述しましたが、chocolateyはアプリを一括管理できます。一括でインストールもアップデートも削除もできます。また、いちいちインストールファイルをクリックなどといった手間はありません。

ただし、デメリットもあります。現時点でWindows用のアプリを全て網羅しているわけではなく、メジャーなものだけがインストールできます。chocolateyでインストールできないアプリは従来通りWindows側で管理する必要があります。将来的にすべてのアプリがchocolatey対応になれば良いのですが・・。

chocolateyのインストール方法

PowerShellを管理者権限で実行する

Winows10での方法です。キーボードのWindowsキーXを同時に押し、Windows PowerShell (管理者)(A)を選択します。

f:id:alecriarstudio:20191118160830p:plain
Windows PowerShell (管理者)

もしPowerShellが見当たらない場合は、設定→個人用設定→タスクバーで、「[スタート]ボタンを右クリックするかWindowsキー + Xキーを押したときに表示されるメニューで、コマンドプロンプトWindows PowerShellに置き換える」をオンにしてください。

f:id:alecriarstudio:20191118161247p:plain
コマンドプロンプトWindows PowerShellに置き換える

実行ポリシーの確認

PowerShell側の制限で、デフォルトではスクリプトの実行が制限されています。そこで制限を緩めるために、以下のコマンドを予め実行しておきます。

PS C:\> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y

設問にはYと打ってEnterを押します。

chocolateyのインストールを実行

chocolateyのサイトにアクセスし、PowerShellに「Now run the following command:」と書かれた以下の箇所をコピーし貼り付けます。無事に貼り付けられたらそのままEnterキーを押して実行します。

chocolatey.org

f:id:alecriarstudio:20191118162401p:plain
chocolateyインストールコマンド

無事にインストール完了後、PowerShellからchocolateyのコマンドが使用できるようになります。

chocolateyのコマンド

管理者権限を持ったPowerShellでさまざまなコマンドが実行でき、以下のような形式になります。

chocolatey [コマンド] [オプション]

chocoleteyの短縮形chocoでも同じように実行できます。

choco [コマンド] [オプション]

コマンドの例

アプリインストールの例

choco install gimp

chocolateyで登録されているアプリをリスト表示

choco list

特定のアプリを文字列で検索

choco list [アプリ名の文字列]

既にchocolateyにてインストールされたアプリ一覧

choco list -localonly

アプリをすべてアップデート

choco update all

特定のアプリのみアップデート

choco update [アプリ名]

アプリの削除

choco uninstall [アプリ名]

これ以外にも様々なコマンドがあります。あとは実際にさわってみてください。

(参考)chocoletey GUI

chocolateyはコマンドで操作するのが基本ですが、実はGUI版もあります。とはいえ、GUI版はコマンドのラッパーになっていますので、内部的にはコマンド版と同じことを行っています。操作をコマンドではなくGUIで行いたい方にはこしらをどうぞ。

chocolatey GUIをインストールする場合は次のようにします。

choco install chocolateygui

Windowsのスタートメニューにアイコンが登録され、以降はGUIからchocolateyが操作できるようになります。

f:id:alecriarstudio:20191118164238p:plain
Chocolatey GUI

余談

どうやら、似たようなパッケージ管理システムがWindows10で公式にサポートされる流れのようです。そちらのほうが有益ならchocolateyからの乗り換えも考えてもいいかもしれません。