업데이트 모듈에서 리포지토리를 찾을 수 없음
Windows 10 및 Powershell 5.1을 사용하고 있습니다.
Get-PSRepository 결과:
PS 갤러리 신뢰할 수 없음 https://www.powershellgallery.com/api/v2
반면 Update-Module은 오류를 반환합니다.
패키지 관리\Install-Package : 'https://www.powershellgallery.com/api/v2/' ' 리포지토리를 찾을 수 없습니다.Get-PSRepository를 사용하여 사용 가능한 모든 리포지토리를 확인합니다.C:\Program Files\에서Windows PowerShell\Modules\powershellget\2.0.1\PSModule.psm1:13000 문자:20 +...$sid = 패키지 관리\설치-패키지 @PSBoundParameters + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~정보: 개체를 찾을 수 없음: (Microsoft.전원...패키지 설치:InstallPackage) [Install-Package], 예외 + FullyQualifiedErrorId: SourceNotFound, Microsoft.PowerShell.패키지 관리.Cmdlets.패키지 설치
어떻게 고칠지 생각나는 거 있어요?
TL;DR
PowerShell에 등록된 PSGallery 저장소의 URL이 https://www.powershellgallery.com/api/v2/ 을 가리킬 때 사용된 것처럼 보이지만, 어느 시점에서 https://www.powershellgallery.com/api/v2 으로 변경되었습니다(마지막에 슬래시가 누락됨).
λ Get-PSRepository
Name InstallationPolicy SourceLocation
---- ------------------ --------------
PSGallery Untrusted https://www.powershellgallery.com/api/v2
이전 URL에서 설치된 모든 모듈이 이제 업데이트되지 않습니다.PowerShell 갤러리에서 다시 설치하면 저장소 URL이 업데이트되어 모듈이 정상적으로 업데이트될 수 있습니다.다음 명령을 사용하여 이전 URL을 가리키는 모든 모듈을 다시 설치할 수 있습니다.
Get-InstalledModule `
| ? { $_.Repository -eq 'https://www.powershellgallery.com/api/v2/' } `
| % { Install-Package -Name $_.Name -Source PSGallery -Force -AcceptLicense }
풀 런 다운
저는 이 엄청나게 성가신 문제에 직접 부딪혔습니다.오류 메시지를 통해 다음과 같은 몇 가지 사항을 확인할 수 있습니다.
패키지 관리\Install-Package : 'https://www.powershellgallery.com/api/v2/' ' 리포지토리를 찾을 수 없습니다.
PowerShellGet\Update-Module
궁극적으로 책임을 떠넘기다PackageManagement\Install-Package
- https://www.powershellgallery.com/api/v2/' 에서 저장소를 찾고 있습니다.
중입니다.Get-PSRepository
산출량에 : 계기수율따라에내:
Name InstallationPolicy SourceLocation
---- ------------------ --------------
PSGallery Trusted https://www.powershellgallery.com/api/v2
저장소가 있는 것처럼 보입니다. 다만, 없을 수도 있습니다.후행 슬래시를 기록합니다.그게 가능할까요?Install-Package
에서 의저찾중입다가 .SourceLocation
그게 정확히 그 끈과 일치합니까?변경해 보겠습니다.SourceLocation
PS 갤러리의 경우:
Set-PSRepository -Name PSGallery -SourceLocation https://www.powershellgallery.com/api/v2/ -InstallationPolicy Trusted
패키지 관리\Set-PackageSource : PSGallery 저장소에 미리 정의된 위치가 있습니다.'Location, NewLocation 또는 SourceLocation' 매개 변수는 허용되지 않습니다. 'Location, NewLocation 또는 SourceLocation, NewLocation 또는 SourceLocation' 매개 변수를 제거하십시오.C:\Program Files\에서Windows PowerShell\모듈\PowerShellGet\2.0.4\PSModule.psm1:11768 문자:17 + ...$208 = 패키지 관리\세트-패키지소스 @PSBoundParameters + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~정보: 잘못된 인수: (https://www.pow...ery.com/api/v2/ :String) [Set-PackageSource], 예외 + FullyQualifiedErrorId : 매개 변수가 허용되지 않습니다.PSGallery, Add-PackageSource, Microsoft를 사용합니다.PowerShell.패키지 관리.Cmdlets.패키지 원본 설정
그건 효과가 없었어요.PSGallery 저장소가 사용자의 안전을 위해 보호되는 것 같습니다.
다른 리포지토리를 추가하고 모듈을 업데이트해 보겠습니다.
Register-PSRepository -Name PSGallery1 -SourceLocation https://www.powershellgallery.com/api/v2/ -InstallationPolicy Trusted
Update-Module -Name pester -Force
보세요, 오류가 없습니다.효과가 있습니다!
설치된 모듈 목록을 가져오면 리포지토리가 혼합되어 있는 것을(를) 확인할 수 있습니다.
Get-InstalledModule | Select Name, Repository | FT -AutoSize
Name Repository
---- ----------
7Zip4Powershell PSGallery
AWSPowerShell PSGallery
cChoco PSGallery1
dbatools PSGallery
DLMAutomation PSGallery1
InvokeBuild PSGallery1
Microsoft.PowerShell.Archive PSGallery1
PackageManagement PSGallery
Pester PSGallery1
posh-git PSGallery1
powershell-yaml PSGallery1
PowerShellGet PSGallery
PowerUpSQL PSGallery1
psake PSGallery1
PsHosts PSGallery1
psTrustedHosts PSGallery1
ReverseDSC PSGallery1
SeeShell PSGallery1
SqlServer PSGallery1
TunableSSLValidator PSGallery1
xSmbShare PSGallery1
xWebAdministration PSGallery1
https://www.powershellgallery.com/api/v2/! 과 연결된 PSGallery1에서 설치된 모든 모듈을 보십시오. 지금까지 제 컴퓨터에는 PSGallery1이라는 저장소가 없었습니다. 제가 설치한 모든 모듈은 PSGallery에서 왔습니다.제 추측으로는 PSGallery 저장소가 https://www.powershellgallery.com/api/v2/ 을 가리키고 있었고 의도적이든 아니든 어느 시점에서 https://www.powershellgallery.com/avp/v2; breaking으로 변경된 것 같습니다.Update-Module
URL에서 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 사용하여 모듈을 다시 설치하면Install-Package
업데이트된 PSGallery 저장소에서 모든 것이 자동으로 해결되고 PSGallery1 저장소를 제거할 수 있습니다.
이전 URL(PSGallery1)에서 배포된 모든 모듈을 업데이트합니다.
Get-InstalledModule `
| ? { $_.Repository -eq 'PSGallery1' } `
| % { Install-Package -Name $_.Name -Source PSGallery -Force -AcceptLicense }
중입니다.Get-InstalledModule
다시 산출량:
Name Repository
---- ----------
7Zip4Powershell PSGallery
AWSPowerShell PSGallery
cChoco PSGallery
dbatools PSGallery
DLMAutomation PSGallery
InvokeBuild PSGallery
Microsoft.PowerShell.Archive PSGallery
PackageManagement PSGallery
Pester PSGallery
posh-git PSGallery
powershell-yaml PSGallery
PowerShellGet PSGallery
PowerUpSQL PSGallery
psake PSGallery
PsHosts PSGallery
psTrustedHosts PSGallery
ReverseDSC PSGallery
SeeShell PSGallery
SqlServer PSGallery
TunableSSLValidator PSGallery
xSmbShare PSGallery
xWebAdministration PSGallery
좋습니다! 이제 PSGallery1 저장소를 제거하고 모듈을 업데이트해 보겠습니다.
Unregister-PSRepository PSGallery1
Update-Module -Name pester -Force
성공!모듈이 오류 없이 업데이트되었습니다.
이 고장났는지, 또는 PSGallery의 URL인지 잘.Install-Package
하지만 이전 URL에서 설치된 모든 모듈을 다시 설치하면 모든 것이 해결되는 것 같습니다.
여러 가지 시도를 해본 결과, NuGet 패키지 공급자를 강제로 다시 설치하는 것이 Update-Module의 문제를 해결한 것 같습니다.
상승된 PowerShell 세션에서 다음을 실행합니다.
Install-PackageProvider Nuget –Force
참고로, 저는 제가 최고의 성공을 거두었을 때 여기에 있었습니다: https://learn.microsoft.com/en-us/powershell/scripting/gallery/installing-psget
저도 같은 문제가 있었고 이 질문을 발견했습니다.제이슨 보이드(위)가 쓴 글을 다 써봤지만 소용이 없었습니다.
좀 더 검색해보니 이 링크가 https://community.spiceworks.com/topic/2265662-powershell-get-download-problem 입니다.
TLS 1.0이 원인이 될 수 있다고 말했습니다.달리는 것을 추천합니다.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
그 후, 저는 제 패키지를 업데이트할 수 있었습니다.
위의 답변들의 조합이 저를 위해 그것을 고쳤습니다.
PS> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
PS> Install-PackageProvider Nuget –Force
PS> Install-Module -Name PSWindowsUpdate
의 이전 버전을 제거해야 할 수 있습니다.PSWindowsUpdate
먼저 새 버전을 설치합니다.
할 수 있습니다.-force
두 가지 버전을 나란히 설치할 수도 있지만, 그것은 아마도 최선의 생각은 아닐 것입니다.
Windows PowerShell 5.1.17134.407에도 동일한 문제가 있으며 PowerShell 6.1에서 동일한 시스템에서 테스트했습니다.업데이트-모듈은 윈도우즈 PowerShell 및 PowerShell 모두에서 동일한 버전의 PowerShell Get 모듈과 함께 PowerShell 6.1에서 예상대로 작동합니다.따라서 Windows PowerShell에서만 문제가 발생하는 것으로 보이며 추가 테스트 없이 추측할 수 있는 문제는 Windows PowerShell에서 실행할 때 PowerShell Get 모듈 자체의 Update-Module 코드 내에서 발생하는 문제입니다.
Update-Module을 사용할 수 있는 솔루션은 없지만 해결 방법으로 -AllowClobber 매개 변수 대신 Install-Module을 사용할 수 있습니다.Update-Module과 마찬가지로 이 오류로 인해 실패하지 않습니다.그리고 적어도 지금 당장은 업데이트 모듈이 실제로 내 테스트 및 https://github.com/PowerShell/PowerShellGet/issues/213 에 따라 설치된 이전 버전과 함께 새 버전을 나란히 설치하기 때문에 최종 결과는 동일할 것입니다.
...
추가 테스트를 수행한 후 테스트 중인 시스템을 재부팅했습니다.재부팅 후 Windows PowerShell 5.1의 Update-Module 문제가 해결되었습니다. 이제 Update-Module이 예상대로 작동합니다.재부팅이 문제를 해결했다고는 단언할 수 없지만, 이제 해결되었습니다.
저는 이것을 시도했지만 PSGaller2를 실행했습니다.그래서 저는 해결책을 더 찾아보았습니다.VPN/Proxy 환경에 있기 때문에 작동하도록 업데이트를 받지 못했습니다.제가 이걸 했을 때 효과가 있었습니다.
$webclient=New-Object System.Net.WebClient
$webclient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
비슷한 문제를 발견했습니다.저의 경우, TLS 때문에 발생한 일입니다.
문제를 해결하기 위해 다음 단계를 수행했습니다: 1.64비트에 강력한 암호화를 설정합니다.Net Framework(버전 4 이상) Set-ItemProperty -Path 'HKLM:\SOFTWOW6432Node\Microsoft.NetFramework\v4.0.30319' - 이름 'SchUseStrongCrypto' - 값 '1' - 유형 Dword
32비트에 강력한 암호화를 설정합니다.Net Framework(버전 4 이상) Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft.NetFramework\v4.0.30319' - 이름 'SchUseStrongCrypto' - 값 '1' - 유형 Dword
PS 콘솔 다시 시작
[Net]을 사용하여 지원되는 프로토콜을 확인합니다.ServicePoint Manager]:: 보안 프로토콜
- 기본 레지스터 - PS 저장소 - 기본값 등록
사용해 보십시오.
[System.Net.WebRequest]::DefaultWebProxy.Credentials = System.Net.CredentialCache]::DefaultCredentials
get-psrepository
register-psrepository -default
수정:
- 설치-모듈 - 이름 PowershellGet - 리포지토리 PS 갤러리 - Force
- 기존 PowerShell 또는 ISE 세션을 닫고 새 세션을 시작합니다.
- 업데이트-모듈
저에게 효과가 있었던 코드는 다음과 같습니다.
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))"
$env:Path += ";C:\ProgramData\chocolatey\bin"
언급URL : https://stackoverflow.com/questions/53358723/unable-to-find-repository-on-update-module
'programing' 카테고리의 다른 글
swift를 사용하여 .svg 이미지를 표시하는 방법 (0) | 2023.08.14 |
---|---|
마지막으로 Git에 밀어넣은 것을 롤백할 방법이 있습니까? (0) | 2023.08.14 |
텍스트 영역 - x 또는 y에서 크기 조정을 비활성화하시겠습니까? (0) | 2023.08.14 |
javascript no jQuery를 사용한 간단한 ajax 양식 (0) | 2023.08.09 |
Java의 Integer.toString(inti) vs String.valueOf(inti) (0) | 2023.08.09 |