PSResourceGet icon indicating copy to clipboard operation
PSResourceGet copied to clipboard

Install-Package support

Open ili101 opened this issue 3 years ago • 7 comments

Summary of the new feature / enhancement

From what I understated this module suppose to eventually replace PackageManagement and PowerShellGetv2 In https://github.com/OneGet/oneget it states that This module is currently not in development. The PowerShell/PowerShellGet repository is actively in development as the new PowerShell package manager.

So what are the replacements for *-Package Cmdlets? I tried the following:

Register-PSResourceRepository -Name 'nuget.org' -URL 'http://www.nuget.org/api/v2'

Find-PSResource -Name MailKit -Repository nuget.org
# Returns package info like MailKit 2.15.0.0 etc.

Install-PSResource -Name Microsoft.NETCore.Platforms -Repository nuget.org -Verbose
# [Error] Install-PSResource: Module manifest file: ...\Microsoft.NETCore.Platforms.psd1 does not exist. This is not a valid PowerShell module.

So repository installed and searched successfully but installing is blocked.

The other problem is the "dependency loop" As reported here https://github.com/OneGet/oneget/issues/475 Install-Package cannot actually work on most of the packages without -SkipDependencies as it resolves dependencies incorrectly and will return loop error without it. The last statement in this issue is:

@GehanPanapitiya hopefully it will be addressed in new PowerShellGet v3

But Install-PSResource doesn't have -SkipDependencies and the loop bug here is worst as it's not even detected:

Install-Package -Name MailKit -Verbose
# [Error] Install-Package: Dependency loop detected for package 'MailKit'.

# This works
Install-Package -Name MailKit -SkipDependencies -Verbose

# This will hang forever (probably spamming the repo with request in a loop?)
Install-PSResource -Name MailKit -Repository nuget.org -Verbose
# Loops silently forever?

So what is the plan/roadmap on this? Will packages be supported on Install-PSResource or some new commend? As PackageManagement is not developed it will probably will never be fixed there.

Proposed technical implementation details (optional)

No response

ili101 avatar Sep 19 '21 17:09 ili101

Thanks @ili101! Right now we are focused on supporting specifically PowerShell packages but plan to incorporate .nupkg packages in the future. We are currently working on finishing cmdlet parameters and then work on supporting .nupkg scenarios. We will create a new issue in our repo referencing the OneGet issue you link, it can be seen here #491

StevenBucher98 avatar Sep 23 '21 19:09 StevenBucher98

I'm experiencing this too and would like to see this working. thanks!

rdbartram avatar Jul 17 '22 23:07 rdbartram

I've also hit this issue with Install-Package and Save-Package (in PackageManagement module v1.4.7)- They hit a Dependency loop detected for package error/warning and fail to save/install the package(s).

As there doesn't seem to be a -SkipDependencies switch I could use, I've ended up having to use the NuGet CLI, install option... https://docs.microsoft.com/en-us/nuget/consume-packages/install-use-packages-nuget-cli#install-a-package ... which, actually seems to resolve and install the dependencies correctly, which allowed me to work around this for now.

SphenicPaul avatar Aug 22 '22 14:08 SphenicPaul