WindowsSetting Windows PackageManagement 2019年 4月 24日
macOS であればシステムの設定はほとんど Homebrew があれば事が足りる。 Ubuntu Linux であれば apt で様々なパッケージが管理できる。 これらに共通するのは、パッケージがかなり密に連携しており、パッケージの依存関係を人間が管理できないためである。
Windows の場合には、あまりライブラリという形で密な連携を取るのではなく、必要であればアプリに内包するケースが多いように感じる。 基本的にアプリは単体でインストール・アンインストールをするという事になり、あまり依存関係を考える必要は少ない。
Windows でもこれまでいくつかのパッケージ管理システムが用意されていた。例えば chocolatey はかなり利用者も多いパッケージ管理システムである。 今回、Windows 10 にデフォルトパッケージ管理システムが用意された。 このパッケージ管理システムは、従来の様々なパッケージ管理システムを無視するのではなく、それらを統合して使えるような delegate としてのツールになっていた。 素晴らしい動きなので早速自分で試してみようと思う。
途中までうまくいったのだが、いくつかのパッケージで、Chocolatey の方でインストールに失敗しても、PackageManager の方が理解できずに成功したと表示されることがあった。やはり Chocolatey を直接使った方がよさそうだ。 学生は以下の記事は実行しないこと。
ただし、失敗したことも記録なので、この記事はそのまま残しておく。
せっかくなので、今回は chocolatey をサブシステムとしてパッケージインストールをやってみる(というかこれしか知らない)。ただし、Chocolatey はインストールに失敗する事が多いようで、CholateyGet という別のプロバイダが用意されているようだ。以下に設定手順を示す。
PS C:\Windows\system32> Find-PackageProvider
プロバイダー 'nuget v2.8.5.208' がインストールされていません。
nuget は、https://onegetcdn.azureedge.net/providers/Microsoft.PackageManagement.NuGetProvider-2.8.5.208.dll
から手動でダウンロードしてインストールすることができます。
PackageManagement で nuget を自動的にダウンロードしてインストールしますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): 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.1.2 PSGallery PowerShell module with commands for discovering, in...
ChocolateyGet 1.0.0.1 PSGallery An PowerShell OneGet provider that discovers packag...
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...
DockerMsftProvider 1.0.0.7 PSGallery PowerShell module with commands for discovering, in...
NanoServerPackage 1.0.1.0 PSGallery A PackageManagement provider to Discover, Save and...
GitLabProvider 1.3.8 PSGallery GitLab PackageManagement provider
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 ...
OfficeProvider 1.0.0.1 PSGallery OfficeProvider allows users to install Microsoft Of...
0install 2.16.4 PSGallery OneGet Package Provider for Zero Install
TSDProvider 0.2 PSGallery PowerShell PackageManager provider to search & inst...
AppxGet 0.1.0.1 PSGallery Powershell Package Management (OneGet) Provider for...
MyAlbum 0.1.2 PSGallery MyAlbum provider discovers the photos in your remot...
WSAProvider 1.0.0.4 PSGallery Provider to Discover, Install and inventory windows...
ChocoOneGet 0.4.0 PSGallery OneGet provider for Chocolatey
Pacman-Provider 0.0.1 PSGallery Pacman provider enables installation of pacman pack...
PS C:\Windows\system32> Install-PackageProvider ChocolateyGet
パッケージは、信頼済みとマークされていないパッケージ ソースから取得されています。
'PSGallery' からソフトウェアをアンインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
Name Version Source Summary
---- ------- ------ -------
ChocolateyGet 1.0.0.1 PSGallery An PowerShell OneGet provider that discovers packages from https://www.chocolatey.org.
PS C:\Windows\system32> 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
早速今日の授業で使った gnuplot を探してみる。
PS C:\Windows\system32> Find-Package gnuplot
Choco.exe is required to continue
ChocolateyGet is built on Choco.exe. Do you want ChocolateyGet to install Choco.exe from 'https://chocolatey.org/install.ps1' now?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y
警告: パス 'C:\Chocolatey\lib' が存在しないため検出できません。
Name Version Source Summary
---- ------- ------ -------
gnuplot 5.0.5 https://www.c...
PS C:\Windows\system32> Install-Package -Name gnuplot
パッケージは、信頼済みとマークされていないパッケージ ソースから取得されています。
'https://www.chocolatey.org' からソフトウェアをアンインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y
Are you sure you want to perform this action?
Installing package 'gnuplot'. By Installing you accept licenses for the package(s). The package possibly needs to run 'chocolateyInstall.ps1'.
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y
Name Version Source Summary
---- ------- ------ -------
gnuplot v5.0.5 https://www.c...
ソフト名 | コマンド |
---|---|
Adobe Reader (PDF の閲覧) | Install-Package -Name adobereader |
Google Chrome (ブラウザ) | Install-Package -Name GoogleChrome |
Ghostscript (EPS, PDF の加工) | Install-Package -Name Ghostscript |