布団が俺を呼んでいる

丘山大一のぶろぐ

PackageManagement に挑戦

秋のOS見直し祭りにつき、諸々再インストール中。
でも色々インストールしなおすのって面倒ですよね。
というわけで、Windows のPackageManagement に初挑戦です。
れっつとらい。


まず動かしてみる

PowerShell を管理者権限で実行。
Find-PackageProvider
すると「プロバイダー 'nuget v2.8.5.208' がインストールされていません。」云々と表示されますが、ここは素直に「Y」で入れておく。
ちょっとしてからプロパイダの一覧が出てくる。

Name                           Version          Source           Summary
----                           -------          ------           -------
nuget                          2.8.5.208        https://onege... NuGet provider for the OneGet meta-package manager
psl                            1.0.0.210        https://onege... psl provider for the OneGet meta-package manager
chocolatey                     2.8.5.130        https://onege... ChocolateyPrototype provider for the OneGet meta-pa...
PowerShellGet                  2.0.1            PSGallery        PowerShell module with commands for discovering, in...
DockerProvider                 0.0.0.3          PSGallery        PowerShell module with commands for discovering, in...
ContainerImage                 0.6.4.0          PSGallery        This is a PackageManagement provider module which h...
NanoServerPackage              1.0.1.0          PSGallery        A PackageManagement provider to  Discover, Save and...
DockerMsftProvider             1.0.0.5          PSGallery        PowerShell module with commands for discovering, in...
ChocolateyGet                  1.0.0.1          PSGallery        An PowerShell OneGet provider that discovers packag...
DockerMsftProviderInsider      1.0.0.2          PSGallery        PowerShell module with commands for discovering, in...
GistProvider                   0.6              PSGallery        Gist-as-a-Package - PackageManagement  PowerShell P...
GitHubProvider                 0.5              PSGallery        GitHub-as-a-Package - PackageManagement PowerShell ...
GitLabProvider                 1.3.7            PSGallery        GitLab PackageManagement provider
TSDProvider                    0.2              PSGallery        PowerShell PackageManager provider to search & inst...
OfficeProvider                 1.0.0.1          PSGallery        OfficeProvider allows users to install Microsoft Of...
MyAlbum                        0.1.2            PSGallery        MyAlbum provider discovers the photos in your remot...
0install                       2.15.1           PSGallery        Zero Install is a decentralized cross-platform soft...
AppxGet                        0.1.0.1          PSGallery        Powershell Package Management (OneGet) Provider for...
WSAProvider                    1.0.0.4          PSGallery        Provider to Discover, Install and inventory windows...
Pacman-Provider                0.0.1            PSGallery        Pacman provider enables installation of pacman pack...

続けて、現在入っているものを見てみる。
Get-PackageProvider

Name                     Version          DynamicOptions
----                     -------          --------------
msi                      3.0.0.0          AdditionalArguments
msu                      3.0.0.0
NuGet                    2.8.5.208        Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains, AllowPrer...
PowerShellGet            1.0.0.1          PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, InstallUpdate, NoPath...
Programs                 3.0.0.0          IncludeWindowsInstaller, IncludeSystemComponent

ほほー。msiもここに含まれるんですね。
さて、ちょろっと調べた感じだと、解説記事ではだいたいchocolatey を入れるのがお約束みたいです。
タブン先人に倣ってやれば間違いないのでしょうが、せっかくなので他のプロパイダのドキュメントを軽く調べてみます。

DockerMsftProvider と DockerProvider

DockerMsftProviderは以前、Windows Server で Docker を操作するときに入れました。
ではDockerProvider ってなんじゃらほい、と思いましたが、どうやらDockerMsftProviderの対応が遅れている間に使用されていたものみたいですね。最終更新日が2017年9月で止まっているので、今はあまり使われてなさそうです。

DockerMsftProviderInsider

上記のInsider版ですかね。タブン。

ContainerImage

Windows Server のコンテナを利用するときに使うみたいです。Windows Server 専用ですかね。

NanoServerPackage

その名の通り、NanoServer を利用するために使用するみたいですが、VHDイメージの構築にも利用できるみたいです。NanoServer を使用しない場合は不要でしょうか。

ChocolateyGet

chocolateyとなにが違うのだろう……?と調べると、どうやらchocolateyプロパイダを普通に使うと問題がある場合があるみたいですね。その代替として使われているみたいです。
にも「Use ChocolateyGet for now.」と書かれています。本家推奨の模様。
ダウンロード数でもこちらの方が多いみたい。

GistProvider

Gist のファイルを落としてこれる? みたいです。パッケージ管理というよりgithubサポートなのかな?

GitHubProvider

ざっと見る感じ、github公開のソースをzipで落としてきて、解凍するものみたいです。
Windows上でgitが使いやすくなったので、あまり使わないかな?

GitLabProvider

上記GitHubProviderのGitLab版ぽいです。

TSDProvider

TypeScript の定義ファイル(?)をhttps://github.com/DefinitelyTyped/DefinitelyTyped から引っ張ってくる(?)のでしょうか。
スイマセン、TypeScript知らないのでなんとも……

OfficeProvider

Office365 ProPlusを入れるためのものみたいです。自動展開とかしたい人向け?

MyAlbum

PackageManagement プロパイダ開発用のサンプルみたいです。

0install

Zero Instrall というクロスプラットフォーム対応のパッケージ管理システムを利用するためのプロパイダ。
便利そうですが、ダウンロード数の少なさが気になります。

AppxGet

ストアアプリの管理用途?
さらっと見た感じ、インストール済アプリの表示とアンインストールができそうです。
(新規のインストールはできない? 未検証)

WSAProvider

WIndows Server(nano Server) にAppX のアプリケーションを入れるためのもののようです。

Pacman-Provider
不明。
よくわかりませんでした……。なんなんだろう。


どれを入れるべきか

実質、chocolatey、ChocolateyGet 、0install の三択になりそうです。
Windows Server 利用ならdocker関係も使えそうです。


PowerShell実践ガイドブック ~クロスプラットフォーム対応の次世代シェルを徹底解説~

新品価格
¥3,974から
(2018/10/29 00:23時点)

コメントを書く

布団が俺を呼んでいる | PackageManagement に挑戦その2

布団が俺を呼んでいる

丘山大一のぶろぐ

PackageManagement に挑戦その2

今度は実際に入れてみる。
使うプロパイダはChocokateyGet。powershellを管理者実行にして作業開始です。


まず一つ

ChocolateyGet を入れてみます。

Install-PackageProvider -Name ChocolateyGet


インストールしようとしているのに、いきなりアンインストールしようとするメッセージが。
このメッセージは単なる間違いのようなので、構わず「Y」。


しかし失敗。
名前が違うんじゃないの?警告が出ていますが、ここではメッセージを無視して
Set-ExecutionPolicy RemoteSigned
で権限変更。再度Install-PackageProvider -Name ChocolateyGet を実行するとあっさり通りました。
※通るんですが、この時点では正しく登録されてなかったぽい。



続いて、7-Zip を探してみます。
Find-Package  -Name *7-Zip* -Provider ChocolateyGet
するとChoco.exeを入れていい?というメッセージが。ここは「Y」です。
で、官僚したら再度Find-Package  -Name *7-Zip* -Provider ChocolateyGet を実行。

……

何も出てきませんね?
ちょっとコマンドを変えてみます。
 Find-Package  -Name *Zip* -Provider ChocolateyGet


ああ、出てきた出てきた。

出てきたのでインストールしてみます。
Install-Package -Name 7zip.install -Provider ChocolateyGet


おお、できた。
ちょっぴり楽しい。


とりあえず入れたもの一覧

7-Zip:Install-Package -Name 7zip.install -Provider ChocolateyGet
IrfanView :Install-Package -Name IrfanView -Provider ChocolateyGet
Media Player Classic: Find-Package -Name "mpc-hc*" -Provider ChocolateyGet | Install-Package
VSCode:Install-Package -Name "visualstudiocode" -Provider ChocolateyGet
Kindle for PC:Install-Package -Name "Kindle" -Provider ChocolateyGet
Blender:Install-Package -Name "blender" -Provider ChocolateyGet

バージョンが古いものがありますが、それは後で更新するということで。


追加で入れたもの

2018/10/31 ImgBrun : Install-Package -Name imgBurn -Provider ChocolateyGet
2018/11/2 CrystalDiskInfo:  Install-Package -Name crystaldiskinfo -Provider ChocolateyGet
2018/11/11 node.js(LTS):  Install-Package -Name nodejs -Provider ChocolateyGet
2018/12/11 magicavoxel:  Install-Package -Name magicavoxel -Provider ChocolateyGet
2018/12/11 magicavoxelviewer:  Install-Package -Name magicavoxelviewer -Provider ChocolateyGet
2018/12/16 Q-Dir:  Install-Package -Name qdir -Provider ChocolateyGet
2018/12/18 imageglass:  Install-Package -Name imageglass -Provider ChocolateyGet
2018/12/19 Screen To Gif:  Install-Package -Name screentogif-Provider ChocolateyGet
2018/12/25 Inkscape:  Install-Package -Name Inkscape -Provider ChocolateyGet
2019/2/18 Notable:  Install-Package -Name notable -Provider ChocolateyGet

コメントを書く