
Windowsでもパッケージ管理がしたい
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ウィスキー、シガー、パイプをこよなく愛する大栗です。
たまにWindows Serverを触ることがあるのですが、ちょっとしたサードパーティのツールをインストールする時が少し面倒だったりします。Linuxのメジャーなディストリビューションでは標準のパッケージ管理システムがあり簡単にインストールすることができます。Windowsでは標準というべきものがなかったのですが、PackageManagementが標準になりそうなので試してみました。
パッケージ管理システム
Linuxの場合は、ディストリビューションの標準として導入されています。有名な物だと、以下の様なものでしょうか。
- APT:Debian、Ubuntu
- yum:RHEL、CentOS、Amazon Linux
- DNF:Fedora
Windowsの世界は詳しくないのですが、調べてみると色々あるようで、例えば以下です。
- Web PI
- NuGet
- Chocolatey
- PackageManagement
この中で、今後主流になりそうなのがPackageManagementの様です。PackageManagementはPowerShell 5.0に含まれる機能であるため、今後はOSに標準で搭載されるみたいです。
(すでにWindows 10には標準で入っているみたいですが最近クライアント用Windowsを触っていないので知りませんでした。。。)
PackageManagement
PackageManagementは元々OneGetという名前で開発されていたプロダクトで、Apache License 2.0を採用しています。
PackageManagementのアーキテクチャ図を見ると、エンドユーザはPowerShellコマンドレットを操作して、ディスカバリやインストール/アンインストール、インベントリを行うようです。各種プロバイダを経由してパッケージを取得します。
導入してみる
Windows Server 2012 R2へ導入してみます。PowerShell 5.0をインストールするためにWindows Management Framework 5.0をダウンロードします。
ダウンロード対象ファイルは以下の5種類があるので、Windows Server 2012 R2に対応しているWin8.1AndW2K12R2-KB3134758-x64.msuをダウンロードします。
| ファイル名 | アーキテクチャ | 対象OS |
|---|---|---|
| W2K12-KB3134759-x64.msu | x64 | Windows Server 2012 |
| Win7AndW2K8R2-KB3134760-x64.msu | x64 | Windows Server 2008 R2、Windows 7 SP1 |
| Win7-KB3134760-x86.msu | x86 | Windows 7 SP1 |
| Win8.1AndW2K12R2-KB3134758-x64.msu | x64 | Windows Server 2012 R2、Windows 8.1 |
| Win8.1-KB3134758-x86.msu | x86 | Windows 8.1 |
ダウンロードしたWin8.1AndW2K12R2-KB3134758-x64.msuを実行します。
はい(Y)をクリックします。

ライセンス条項を確認して、同意します(A)をクリックします。

インストールが始まります。

インストールが完了したら今すぐ再起動をクリックして再起動します。

PackageManagementを使用してみる
まずは、PowerShellのスクリプトを実行するためスクリプトの実行を許可します。
PS C:\Users\Administrator> Set-ExecutionPolicy RemoteSigned -Force
設定されているプロバイダーを確認するためにFind-PackageProviderコマンドレットを実行します。プロバイダのDLLを自動でインストールするために-ForceBootstrapオプションを付けます。
PPS C:\Users\Administrator> Find-PackageProvider -ForceBootstrap Name Version Source Summary ---- ------- ------ ------- nuget 2.8.5.205 https://oneget.org/nuget-2.... NuGet provider for the OneGet meta-pa... chocolatey 2.8.5.130 https://oneget.org/Chocolat... ChocolateyPrototype provider for the ... ContainerImage 0.6.4.0 PSGallery This is a PackageManagement provider ... NanoServerPackage 0.1.1.0 PSGallery A PackageManagement provider to disco... MyAlbum 0.1.2 PSGallery MyAlbum provider discovers the photos... GistProvider 0.6 PSGallery Gist-as-a-Package - PackageManagement... GitHubProvider 0.5 PSGallery GitHub-as-a-Package - PackageManageme... TSDProvider 0.2 PSGallery PowerShell PackageManager provider to... OfficeProvider 1.0.0.1 PSGallery OfficeProvider allows users to instal... GitLabProvider 1.2.0 PSGallery GitLab PackageManagement provider WSAProvider 1.0.0.4 PSGallery Provider to Discover, Install and inv...
ここではVisual Studio Codeをインストールしてみます。
Visual Studio Codeはchocolateyにあるので、パッケージを確認してみます。
PS C:\Users\Administrator> Find-Package -ForceBootstrap -Name VisualStudioCode -Provider chocolatey Name Version Source Summary ---- ------- ------ ------- VisualStudioCode 1.2.1 chocolatey Visual Studio Code
Visual Studio Codeをインストールします。
PS C:\Users\Administrator> Install-Package -Name VisualStudioCode -Force Name Version Source Summary ---- ------- ------ ------- VisualStudioCode 1.2.1 chocolatey Visual Studio Code
このようにVisual Studio Codeがインストールされます。

このようにVisual Studio Codeを起動できます。

さいごに
Windowsの次期サーバOSであるWindows Server 2016ではPowerShell 5.0が標準で入るので、PackageManagementも最初から使用できることになります。Windowsでも標準で簡単にパッケージ管理が行えるようになり、OSの管理が捗りそうです。









