winget 도구의 디버깅 및 문제 해결

Windows 패키지 관리자에서 애플리케이션을 설치, 검색 또는 나열할 때 동작을 더 잘 이해하기 위해 로그 파일을 살펴봐야 하는 경우가 있습니다.

WinGet 로그

Windows 패키지 관리자는 기본적으로 명령을 실행할 때 로그 파일을 만듭니다. 이러한 로그에는 WinGet 문제 디버깅에 도움이 될 수 있는 정보가 포함되어 있습니다. 로그 파일의 최대 크기는 없습니다. 일반적으로 크기는 몇 KB에 불과합니다. 디렉터리의 로그 파일 수가 100개를 초과하면 가장 오래된 로그 파일이 삭제되기 시작합니다. 시간 기반의 로그 제거는 없으며 이러한 설정은 구성할 수 없습니다. 파일 로그 용량이 100개에 도달한 경우 보존하려는 WinGet 로그를 다른 디렉터리로 이동하면 됩니다.

WinGet 로그 파일의 디렉터리 경로를 찾으려면 winget --info 명령을 사용합니다. WinGet 로그 파일의 기본 경로는 다음과 같습니다.

%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

명령이 완료된 후 로그 디렉터리를 열려면 명령에 --logs 또는 --open-logs 옵션을 포함할 수 있습니다. 다음은 --logs 옵션 사용에 대한 몇 가지 예입니다.

> winget list --logs
> winget source update --open-logs

--verbose-logs

CDN 및 원본과의 완전한 통신을 제공하는 더 포괄적인 로그 파일이 필요한 경우 --verbose 또는 --verbose-logs도 명령줄에 포함합니다. --verbose-logs 옵션을 사용하는 몇 가지 예제는 다음과 같습니다.

> winget install vscode --verbose-logs
> winget search -n visual --verbose-logs
> winget source add -n mysource -t Microsoft.REST -a https://www.contoso.org --verbose

알려진 문제점

원본 및 동작과 관련된 알려진 문제의 목록은 Windows 패키지 관리자 클라이언트 리포지토리에서 최신 상태로 유지됩니다. winget 도구를 사용할 때 문제가 발생하는 경우 여기로 이동하여 문제를 해결하세요.

종료 코드

Winget 도구는 명령의 성공 또는 실패를 나타내는 종료 코드를 반환합니다. Windows 패키지 관리자 클라이언트 리포지토리의 "반환 코드" 파일에서 종료 코드 표와 그 의미를 찾아보세요.

특정 사용자의 범위와 컴퓨터 전체의 범위

모든 설치 프로그램이 "사용자" 범위와 "컴퓨터" 범위의 설치를 일관되게 지원하는 것은 아닙니다.

  • MSIX 기반 패키지: 신뢰할 수 있는 WinGet 동작.
  • MSI 기반 패키지는 일반적으로 신뢰할 수 있는 WinGet 구성을 지원하지만 경우에 따라 .exe 기반 설치 프로그램 내에 중첩되어 있으므로 변동성이 더 커질 수 있습니다.
  • 범위에 따른 EXE 기반 설치 프로그램 동작이 반드시 결정적일 필요는 없습니다. 범위를 지정하는 인수를 사용할 수 없는 경우도 있고, 사용자가 로컬 관리자 그룹의 멤버인지 여부에 따라 설치 프로그램에서 결정을 내릴 수도 있습니다. 사용자 범위에 설치된 패키지에는 여전히 관리자의 UAC(사용자 계정 컨트롤) 권한 부여가 필요할 수 있습니다.

GitHub의 WinGet 제품 리포지토리에서 범위 관련 문제에 대한 자세한 내용을 확인합니다.