운영체제에서는 다양한 방식으로 소프트웨어를 설치하고 관리, 업데이트 및 제거를 할 수 있는데요. 일반적인 프로그램 설치 방식은 사용자가 소프트웨어 제공 업체의 웹사이트를 방문하여 설치 프로그램을 다운로드하고 실행하여 소프트웨어를 설치하는 것을 의미하는데 이 방식은 일반적으로 사용자의 개입이 많이 필요하며, 의존성 해결 및 업데이트 관리 영역은 사용자의 책임입니다.
이에 이러한 번거로움을 줄이고, 소프트웨어 설치 및 관리를 효율적으로 하기 위해 패키지 관리자를 사용하는 경우도 많습니다. macOS의 Homebrew, Linux의 APTAdvanced Package Tool, Yum 그리고 FreeBSD의 pkg 등이 대표적이며 사용해본 경우 상당히 편리하고 효율적이라는 것을 할 수 있습니다.
물론 Windows에서도 Chocolatey, NuGet 등 다양한 패키지 관리자가 존재하고 Chocolatey가 가장 보편적으로 사용되지만, 그래도 Winget이 Microsoft를 통해 개발되고 업데이트 및 개선이 되고 있어 장기적으로 기대를 해볼 만하다고 생각합니다. Winget은 명령줄 인터페이스(CLI)를 통해 작동하며, 사용자가 소프트웨어를 설치하기 위해 일일이 웹사이트를 찾아가거나 설치 프로그램을 다운로드할 필요가 없게 해줍니다. Winget을 사용하면 소프트웨어를 검색하고 설치하는 것이 간단하고 편리해지며 기본적인 설치 및 사용 방법은 다음과 같습니다.
튜토리얼 환경: 윈도우 11 Pro (빌드: 22621.1702), winget 1.6.1573-preview
설치
Windows에서 winget
은 Github 설치 파일을 이용하거나 명령 줄 도구를 사용해서 설치할 수 있으며 Microsoft Store에서도 손쉽게 설치 할 수 있습니다. 아래에 각각의 설치 방법을 정리합니다.
참고:winget
이 이미 설치되어 있을 수 있으니 설치 전 명령 프롬프트, PowerShell에서winget
또는winget --version
등을 이용해 설치 여부를 체크하는 것을 권장합니다.
Github 설치 프로그램으로 설치
- 마이크로소프트의 공식 Github 저장소( https://github.com/microsoft/winget-cli/releases )리 이동 후 가장 상단의 최신 버전을 클릭합니다.
- 그러면 해당 버전 페이지로 이동되는데 여기서 가장 하단으로 스크롤한 뒤 Asset에서 링크를 클릭하면 설치 파일인
.msixbundle
파일을 다운로드 받을 수 있습니다.
- 다운로드 경로로 이동하면 위와 같은 아이콘을 찾을 수 있습니다. 이를 바로 실행하면 설치가 진행됩니다.
또는 PowerShell을 실행 후 아래의 Add-AppxPackage
명령으로 다운로드한 .msixbundle
파일로 winget
을 설치할 수 있습니다.
Add-AppxPackage -Path "path\toMicrosoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
path\toMicrosoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
는 실제 앱 번들 파일의 경로로 대체되어야 합니다. 이 경로는 다운로드한 앱 번들 파일의 저장 위치입니다.path
부분은 앱 번들 파일이 실제로 저장된 디렉토리 경로로 대체되어야 합니다.- 본문에서 사용된 실제 경로 예시로는
Add-AppxPackage -Path "C:\Users\ezm\Desktop\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
와 같이 파일이 저장된 디렉토리 경로를 사용할 수 있습니다.
Microsoft Store에서 설치
winget
은 Microsoft Store에서도 제공됩니다. 개인적으로는 Microsoft Store를 통해서 설치하는 것이 가장 편하지 않나 생각하는데 다음 과정으로 설치할 수 있습니다.
- 시작 화면 또는 작업 표시줄에서 Microsoft Store 앱 을 찾아 클릭합니다.
- 실행 후 상단 검색 창에
앱 설치 관리자
를 입력 후 검색 결과에서 앱 설치 관리자 를 클릭해 설치합니다.
간혹 앱 설치 관리자를 설치하는데 앱이 보류 중이라고 다운로드되지 않는 경우가 있습니다. 이는 위 그림과 같이 Microsoft Store로 설치한 앱들이 자동으로 업데이트되도록 설정 된 경우 업데이트가 우선 처리되어 설치가 지연되는 것이니 업데이트가 완료될 때 까지 잠시 기다리면 이어서 설치가 완료됩니다.
설치가 제대로 되었는지 확인하고 싶다면 winget --version
이라고 입력 합니다. 위와 같이 버전이 표시되면 정상 설치된 것입니다.
기본 사용 방법
설치를 완료했다면 이제 Winget
을 사용하여 소프트웨어를 관리하는 기본적인 명령 구문과 사용 팁에 대해서 알아보도록 하겠습니다.
참고: 아래 명령은 Windows Terminal을 기준으로 안내합니다. PowerShell에서는 명령어의 구문이 약간 다를 수 있습니다. 예를 들어, PowerShell에서는winget install
대신에winget -verb install
을 사용할 수도 있습니다. 그리고 PowerShell에서는--
대신-
옵션 표기법을 사용하는 상황이 잦습니다.
패키지 검색하기
다음과 같이 키워드를 사용하여 패키지를 검색할 수 있습니다.
시스템에 설치된 모든 패키지를 확인하고 싶다면 다음 명령을 사용합니다. 최초 실행 시 위와 같이 약관 동의 메시지가 표시될 수 있는데 이는 Winget이 Microsoft Store에서 앱을 다운로드하고 설치하는 데 사용하는 msstore
원본을 활성화하려는 시도이니 Microsoft Store의 약관에 동의해야 진행이 가능하니 y
를 입력합니다.
winget list
설치 된 패키지 목록이 모두 표시되는 것을 볼 수 있습니다.
다음 명령으로 키워드가 포함된 패키지를 찾을 수 있습니다. 예를 들어 winget search git
으로 검색 시 git 문자열이 포함된 패키지를 찾을 수 있습니다.
winget search [keyword]
패키지 설치하기
앞서 패키지를 확인 했으니 이제 패키지에서 지원하는 앱을 Winget 명령으로 설치해 보도록 하겠습니다.
다음 명령 구문으로 지정한 패키지를 설치합니다. 본문에서는 winget install 7-zip
으로 명령합니다.
winget install [package]
입력 후 위와 같이 7-Zip이라는 이름은 msstore 원본과 winget 원본에서 각각 다른 패키지와 일치하는 것을 볼 수 있습니다.
라는 메시지가 표시되는 경우가 있는데 이는 설치하려는 패키지 이름이 다른 원본에서 여러 개의 패키지와 일치할 때 발생할 수 있습니다. 위와 같은 상황에서는,이렇게 여러 개의 패키지가 존재하는 경우 원하는 패키지를 구체화하기 위해 원하는 원본을 명시적으로 지정해야 합니다. 7-Zip을 winget
원본에서 설치하려면 winget install -s winget 7-Zip
과 같이 사용할 수 있고 정상적으로 설치가 완료 된 것을 확인할 수 있습니다.
이외에도 다음과 같이 아이디와 이름 등을 사용하여 패키지를 구체화하면 정확한 패키지를 설치할 수 있습니다.
winget install --id [package-id]
winget install --name [package-name]
패키지 업데이트하기
winget
도구로 시스템에 설치된 모든 패키지의 최신 업데이트 정보를 확인하고 업데이트할 수 있습니다. 개인적으로 이 부분이 사용 성 면에서 가장 긍정적이지 않나 생각합니다.
아래 명령을 사용하여 업그레이드할 수 있는 앱을 확인하고 업그레이드할 수 있습니다. 명령을 실행하면 현재 시스템에 설치된 앱의 업그레이드 가능한 버전이 있는지 확인합니다.
winget upgrade
다음과 같은 명령으로 특정 패키지를 최신 버전으로 업데이트합니다. 본문에서는 winget upgrade --id FastStone.Capture
명령으로 FastStone Capture 9.9를 업데이트 해 보도록 하겠습니다.
winget upgrade [package]
winget upgrade --name [app-name]
winget upgrade --id [app-id]
또는 패키지 정보 확인하기
winget
도구로 설치한 패키지의 세부 정보를 표시합니다.
다음 명령으로 특정 패키지에 대한 상세 정보를 표시할 수 있습니다. [package]
는 패키지의 ID나 이름을 나타내며, 해당 패키지의 정보를 가져옵니다. 이 또한 여러가지 원본이 존재하는 경우 정확하게 명시해야 합니다.
winget show [package]
winget 원본 목록 확인하기
패키지 원본 목록을 확인하여 시스템에서 사용 가능한 원본을 파악하고, 필요한 경우 새로운 원본을 추가하거나 기존 원본을 제거할 수 있습니다.
다음 명령으로 시스템에 등록된 모든 패키지 원본(소스)의 목록을 표시할 수 있습니다. 패키지 원본은 애플리케이션과 도구를 다운로드하고 설치하는 데 사용되는 저장소입니다.
winget source list
패키지 제거하기
winget
으로 설치한 패키지를 다시 제거할 수 있습니다.
주의: 패키지를 제거하는 것은 해당 패키지가 더 이상 시스템에 설치되어 있지 않는다는 것입니다. 이 명령을 실행 시 해당 패키지와 관련된 파일 및 구성 요소가 삭제되고 일반적으로 패키지를 제거하면 해당 패키지와 관련된 사용자 정보도 함께 삭제될 수 있습니다.
다음 명령으로 특정 패키지를 시스템에서 제거할 수 있습니다. [package]
는 제거하려는 패키지의 ID나 이름을 나타냅니다. 본문에서는 winget uninstall 7-Zip
를 사용해 7-zip을 다시 제거했습니다.
winget uninstall [package]
추가 기능
winget
도구로 설치된 패키지의 해시 값을 확인 할 수 있습니다.
아래 명령으로 대상 파일의 해시를 확인할 수 있으며, 해시 값을 사용하여 다운로드한 파일의 무결성을 검증할 수 있습니다. 본문에서는 winget hash "C:\Program Files\7-Zip\7zG.exe"
명령으로 대상 파일의 해시값을 확인했습니다.
winget hash [path to file]
기본적으로 winget --help
명령을 사용하여 추가 도움말과 옵션을 확인할 수 있습니다.
기타 팁
winget
사용 시 알아 두면 좋은 간단한 팁들을 몇 가지 정리합니다.
- 패키지 이름 또는 일부 키워드를 사용하여 검색하면 해당 패키지를 신속하게 찾을 수 있습니다.
--exact
플래그를 사용하여 패키지 검색 시 정확한 일치를 찾을 수 있습니다.winget search --exact [package-name]
와 같이 사용할 수 있습니다.-e
또는--elevation
플래그를 사용하여 관리자 권한으로 Winget 명령을 실행할 수 있습니다.winget install -e [package]
와 같이 사용할 수 있습니다.--silent
플래그를 사용하여 설치 중에 대화식 프롬프트를 표시하지 않고 정적인 출력만 표시할 수 있습니다.winget install --silent [package]
와 같이 사용할 수 있습니다.
마치며
Windows 11에서 winget
앱 설치 관리자 설치 및 사용하는 방법에 대해 알아보았습니다. winget
은 Windows 10 버전 2004 이상에서 사용할 수 있으며, Microsoft의 지속적인 업데이트로 기능과 호환되는 소프트웨어 목록이 지속적으로 확장되고 있습니다. 위의 명령 및 팁을 사용하여 Winget을 효과적으로 활용하여 소프트웨어를 설치, 업데이트, 제거할 수 있습니다. winget
은 지속적으로 업데이트되고 있습니다.
winget
은 Microsoft Store에서 사용 가능한 앱 뿐만 아니라 오픈 소스 소프트웨어 및 상용 소프트웨어도 관리할 수 있고, 개발자 및 IT 전문가들이 자동화된 스크립트 또는 배치 파일을 작성하여 여러 대의 컴퓨터에 동일한 소프트웨어를 배포하는 데 사용하기도 해 익숙해지면 활용도가 높으니 한번 설치해서 사용해보세요.