programing

PowerShell 패키지 관리, 패키지 공급자를 제거하는 방법은 무엇입니까?

i4 2023. 8. 29. 20:08
반응형

PowerShell 패키지 관리, 패키지 공급자를 제거하는 방법은 무엇입니까?

문제를 해결하려면 Chocolaty 패키지 공급자를 다시 설치해야 합니다.패키지 제공자를 제거하거나 제거할 cmdlet이 없는 것 같습니다.패키지 소스나 패키지를 제거하는 것을 말하는 것이 아닙니다.Windows 10에서 PowerShell 5를 사용하고 있습니다.

패키지 공급자를 제거하는 방법이 있습니까?

패키지 공급자는 WMF 설치와 함께 번들로 제공됩니다.

검색 위치(사용자 정의 패키지 공급자도 포함)를 알고 있으면 패키지 공급자를 쉽게 추가하고 제거할 수 있습니다.

패키지 공급자가 설치된 위치 찾기:

$p = (Get-packageProvider -name Chocolatey);
$p.ProviderPath

어셈블리를 제거하거나 제공자 기본 검색 경로 외부로 이동하면 사용할 수 없게 됩니다(NB: 호스트를 다시 시작하여 영향을 확인하십시오).

마찬가지로 패키지 공급자의 사양을 구현하는 exe/dll을 검색 위치에 복사하여 패키지 공급자를 추가할 수 있습니다.

자세한 설명서는 여기에서 확인할 수 있습니다(사용자 고유 및 기본 검색 위치 구현).

https://github.com/OneGet/oneget/wiki/Provider-assembly-search-locations https://github.com/OneGet/oneget/wiki/ImplementingPackageProvider

NuGet 공급자를 제거하는 방법에 대한 간단한 예

(Get-PackageProvider|where-object{$_.name -eq "nuget"}).ProviderPath|Remove-Item -force
Restart-Computer

버전 1.4.7 이후의 모듈에는 여전히 아무런 기능이 없다는 점을 감안할 때, 하랄드 F의 유용한 답변을 보완하기 위해 Uninstall-PackageProvider와 함께 )Get-Command -Module PackageManagement):

이 할 수 하기 는 다음과 같이 .(Get-PackageProvider NuGet).ProviderPath그 파일의 백업 복사본을 만듭니다.

분리를 위한 단계별 지침NuGet패키지 제공자(예:

  • Windows의 경우:

    • NuGet DLL(패키지 공급자 어셈블리)의 경로를 클립보드에 복사합니다.

      • (Get-PackageProvider NuGet).ProviderPath | Set-Clipboard
    • 상승된 PowerShell 세션을 시작합니다(관리자 자격 증명 필요).기존(상승되지 않은) 세션에서 이 작업을 수행하려면 다음을 실행합니다.

      • Start-Process -Verb RunAs (Get-Process -Id $PID).Path
    • 계속하기 전에 Visual Studio Code를 종료해야 할 수도 있는 다른 모든 PowerShell 세션을 닫으십시오.

      • 것은 경우에만 DLL이 됩니다. DLL 삭제가 보장되지 않으면Access denied오류, 표고가 있더라도.
    • 상승된 세션(제출하지 않은 세션)PackageManagement명령), 다음 명령을 제출하여 NuGet DLL(패키지 공급자 어셈블리)을 삭제합니다.

      • Remove-Item -Force <paste-the-previously-copied-path-here>
  • macOSLinux의 경우:

    • 다음을 사용하여 PowerShell 세션 시작sudo기존(상승되지 않은) 세션에서 이 작업을 수행하려면 다음을 실행합니다.

      • sudo pwsh
    • 다음 명령을 제출하여 NuGet DLL(패키지 공급자 어셈블리)을 삭제합니다.

      • (Get-PackageProvider NuGet).ProviderPath | Remove-Item -Force
  • 나머지 단계는 모든 플랫폼에 적용됩니다.

    • 상승된 /을(를 선택합니다.sudo회기의

    • 변경 내용을 적용하려면 (업그레이드되지 않은) 세션을 시작합니다.Get-PackageProvider그러면 더 이상 목록을 표시하지 않아야 합니다.NuGet제공자

당신이 원하는 것을 이해한다면,

제거 - 패키지 [-Id] [-의존성 제거] [-ProjectName] [-Force] [-Version] [-WhatIf]

-Force 옵션을 사용하여 패키지를 강제로 제거합니다.

언급URL : https://stackoverflow.com/questions/32508133/powershell-packagemanagement-how-to-uninstall-a-package-provider

반응형