我正在尝试了解 PowerShell 中的包管理,但得到的图片不完整。当我查看对象 PSRepository、PackageProvider 和 PackageSource 时,它们似乎都具有以下关系:
- 甲PSRepository可以提供零个或多个PowerShell模块。一个PSRepository必须只有一个PackageProvider。存储库的一个示例是
PSGallery
.
- 一个PackageProvider可以成为零个或多个PSRepository对象。一个PackageProvider必须有一个或多个PackageSource对象。一个PackageProvider有时也被称为“包管理器”。包提供的一些实例包括
NuGet
,Chocolatey
,或PowerShellGet
。
- 一个PackageSource必须服务一个且仅一个PackageProvider。的包源的一些实例包括
nuget.org
,MyCustomVSTSFeed
,或PSGallery
。
我查看了以下链接,但它仍然没有提供它们之间关系的清晰图片。
- 为什么PSRepository有一个名为PackageManagementProvider的属性,它的类型是string
而不是PackageProvider类型?
- 为什么PSRepository有自己的SourceLocation属性,如果它已经通过其提供者有一个源引用?
- 为什么
PSGallery
既是PackageSource又是PSRepository?
- 为什么
PowerShellGet
提供对库的访问的模块的名称和PackageProvider的名称?