Windowsのパッケージ管理システムPackageManagementを使ってみた
- 2017年10月06日
- Windows
パッケージ管理システムといえば、MacだとHomebrew、Linuxだとyum又はapt-getが有名ですが、Windowsも10以降はPackageManagementという名称で標準で用意されています。今回はこのPackageManagementについて紹介していきます。
パッケージ管理システム
パッケージ管理システムは、ソフトウェアの管理を行うツールです。近年、ソフトウェアも豊富かつ複雑になっています。その結果、以下の様な問題が発生しています。
・ソフトウェアを探すのがまず大変。公式のサイトへ行き。そこからソフトウェアダウンロード用のページを探さなくてはいけない。
・ソフトウェアを動作させるには、別のソフトウェアが必要という依存関係が発生するケースがある。その場合、ソフトウェアインストール後に、エラーの内容を確認し、必要なソフトウェアをまた探し回らなくてはいけない。
・ソフトウェアの更新があっても、公式サイトをチェックするか、ソフトウェア内で通知が無い限り、気づかない。
・アンインストールが面倒。ソフトウェア度にアンインストールの手法が異なり、「プログラムと機能」から削除、ソフトウェアの機能でアンインストール、ソフトウェアのexeファイルがあるフォルダを丸ごと削除、のどれかを行えば良いのか個別に異なるため悩む。
上記の問題を解消するために登場したのが、パッケージ管理システムです。他のOSでは早い段階で存在していたのですが、Windows10からようやく標準で用意されました。
さて、このパッケージ管理システムPackageManagementはパッケージ管理システムを統括する大元のパッケージ管理システムというものです。
まずは、使ってみましょう。PowerShellで操作するのですが、その前に下記のコマンドを入力してポリシーを確認しましょう。
Get-ExecutionPolicy
Restricted と表示されていれば(初期値なので大抵はRestrictedです)、ガチガチのポリシーとなっているので、ゆるめます。PowerShellを管理者権限で開き、下記のコマンドを入力します。
Set-ExecutionPolicy RemoteSigned
パッケージプロバイダ
PackageManagementは、パッケージ管理システムを統括するツールなので、直接ソフトウェアのインストールは行いません。実際にソフトウェアのインストール、アップデートはパッケージプロバイダです。以前紹介したchocolateyもパッケージプロバイダという扱いになります。このパッケージプロバイダを経由して各ソフトウェアをインストールします。
公開されているプロバイダーの検索は下記のコマンドでできます。
Find-PackageProvider
なんか色々と出てきます。(ちなみに文中のOneGetはPackageManagementの旧名です)
この検索で表示されているプロパイダーは、PCに登録されているプロバイダーでは無く、インストール可能なプロバイダーの一覧となります。(既にインストールされているプロバイダーも含みます)
色々ありますが、欲しいプロパイダーといえばChocolateyなので、Chocolateyを入れます。
まず、Chocolateyが既にPCに登録されているか確認します。
Get-PackageProvider Chocolatey
入っていれば下図の様に表示されます。
入っていなければ、インストールを求められるのでYを押します。
パッケージ
パッケージとはソフトウェア(及びその関連ツールを含む)となります。
インストール可能なパッケージの検索はこんな感じで、パッケージ名を指定します。
Find-Package FileZilla
ちなみ、Sourceの項目がインストール可能なプロパイダ名となります。
試しにEdgeで検索すると、Sourceの項目にNuGetとChocolateyが併記されます。
Find-Package Edge
各プロパイダーに登録されているパッケージの一覧が欲しい時は、下記のコマンドを入力すればOKです。
Find-Package -ProviderName chocolatey
正直1画面に収まらず、延々とリストを表示し続けるので、ファイルに保存しておきましょう。
Find-Package -ProviderName chocolatey > choco_package_list.txt
(関係ないですが、PowerShellのコマンドは、[動詞]-[名詞]で体系化されているので、非常に分かりやすくて好感が持てます。)
欲しいパッケージが見つかったら、インストールします。
Install-Package WinMerge
PCにインストールされているかどうかは、Getで確認します。
Get-Package WinMerge
アンインストールは下記のコマンドで実現できます。簡単ですね。
Uninstall-Package WinMerge
さてさて、ここまで紹介してて何ですが、実は私はPackageManagementを殆ど使っていません。正直、Chocolateyがあれば大抵のソフトウェアは管理出来るのとGUIのツールも存在するので、kコレ一つで十分事足りるている感じです。まぁ、Chocolateyに関してもインストール、アンインストールが不安定な時もあり、必ずしも満足しているワケでは無いのですが、Windowsでパッケージ管理システムを使うならば、Chocolatey一択で考えて問題無いかなと思っています。
金曜日担当 Window開発チーム
komu at 2017年10月06日 10:00:17