LoginSignup
205
213

More than 5 years have passed since last update.

Windows 10 のパッケージ管理エコシステムについて整理する。

Last updated at Posted at 2015-10-09

NIX 互換環境に見られるようなパッケージマネージャが Windows 10 で遂に公式にサポートされるようになった。既存のサードパーティ製パッケージマネージャを内包して抽象化するエコシステムが取られている。

備忘録としてメモ。

概要

上図のように、既存の NuGetChocolatey を 1 つの Provider として位置付け、PowerShell 上から共通インターフェースでそれらを扱える仕組みを提供している。

図の転載元記事にあるように、このエコシステムは PowerShellGetOneGet と呼ばれる。

2015 年 8 月末に PowerShell を始めとする Microsoft 公式のフレームワーク Windows Management Framework (WMF) の WMF 5.0 Production Preview として、また Windows の機能としてリリースされた。Windows 10 にはプリインストールされている。

Windows 7 以降であれば、WMF 5.0 Production Preview をダウンロードして導入できる:

PowerShell は様々なモジュールから構成されており、サードパーティモジュールを導入する事も可能だ。このモジュール導入を簡略化するシステムが PsGet としてコミュニティで開発されてきた:

WMF 5.0 ではこの PsGet が PowerShellGet モジュールとして採用されている模様。

上記仕組みの上で、パッケージマネージャー機能のモジュールを提供するのが OneGet になる:

そして WMF 5.0 の機能として取り込まれた OneGet は、PowerShell 5.0 のモジュールとして、 PackageManagement に名称が変更された模様。

PowerShellGet

リファレンス

man コマンド的なのは次の通り:

Get-Command -Module PowerShellGet
# PowerShellGet モジュールが持つコマンドレット一覧を表示

Get-Command Find-Module
# `Find-Module` コマンドレットのヘルプを表示

OneGet (Package Management)

プロバイダの導入

次のコマンドレットを実行して NuGetProviderChocolateyProvider をインストールして、この 2 つのパッケージマネージャを PackageManagement モジュールから利用可能にする:

Get-PackageProvider -Name NuGet
# NuGet を Provider に追加

Get-PackageProvider -Name Chocolatey
# Chocolatey を Provider に追加

完了したら適当にパッケージを検索してみる:

Find-Package -Name google-chrome-x64
# Chocolatey に登録されている Google Chrome (64-bit) を検索してみたり、
# https://chocolatey.org/packages/google-chrome-x64

Find-Package -Name Rx-Main
# NuGet に登録されている Reactive Extensions ライブラリを検索してみたり、
# https://www.nuget.org/packages/Rx-Main/

リファレンス

man コマンド的なのは次の通り:

Get-Command -Module PackageManagement
# PackageManagement モジュールが持つコマンドレット一覧を表示

Get-Command Find-Package
# `Find-Package` コマンドレットのヘルプを表示

コマンドレット一覧

Find-Package

利用可能なパッケージの検索と出力。

Find-Package [-Name パッケージ名]

Get-Package

インストール済みのパッケージ一覧を出力。

Get-Package [-Name パッケージ名]

Get-PackageProvider

ローカルの PackageManagement に登録されているパッケージマネージャ一覧を出力。

Get-PackageProvider [-Name マネージャ名]

Get-PackageSource

登録されている全てのパッケージマネージャ一覧を出力。

Get-PackageSource [-Name マネージャ名]

Install-Package

指定パッケージを 1 つインストール。

Install-Package -Name パッケージ名

Register-PackageSource

Save-Package

Set-PackageSource

Uninstall-Package

指定パッケージをアンインストール。

Uninstall-Package -Name パッケージ名

Unregister-PackageSource

謝辞

205
213
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
205
213