개발자

MS가 만든 패키지 관리자 ‘윈겟’의 이해와 기본 사용법

Serdar Yegulalp | InfoWorld 2023.10.04
리눅스 환경에서 패키지 관리자(package manager)는 각 리눅스 배포판에서 사용할 수 있는 소프트웨어를 카탈로그화하고 설치하는 역할을 한다. 윈도우는 어떨까? 최근까지 마이크로소프트 윈도우 소프트웨어 관리는 그다지 중앙화된 형태가 아니었다. 윈도우 자체를 위한 구성 요소를 추가, 제거하는 시스템은 있었지만 서드파티 앱을 위한 시스템은 없었다. 앱 관리 솔루션인 마이크로소프트 스토어가 있지만, 개발자나 관리자가 아닌 일반 소비자를 주 대상으로 하는 독점 시스템이다. 
 
ⓒ Getty Image Bank

윈겟(Winget)은 윈도우의 소프트웨어 설치를 카탈로그화하고 관리하기 위해 마이크로소프트가 만들어 지원하는 오픈소스 시스템이다. 윈도우용 공식 패키지 관리 시스템에 최대한 가까우면서 독점 솔루션(마이크로소프트 스토어)이 아니고, 닷넷 구성요소를 위한 누겟(NuGet)과 같이 마이크로소프트 생태계 측면에 초점을 둔다는 점에서 차별화된다. 초콜레티(Chocolatey), 스쿱(Scoop) 같은 서드파티 요소도 신경쓴 결과물이기도 하다.
 

윈겟 설치와 작동 방식

윈도우 11을 사용한다면 윈겟이 기본적으로 제공되므로 따로 설치할 필요가 없다. 이전 버전 윈도우에서는 마이크로소프트 스토어에 있는 앱 인스톨러(App Installer) 앱을 사용해 윈겟을 설치할 수 있다. 설치가 끝나면 명령줄 프롬프트에 winget을 입력해 실행할 수 있다. 

winget 명령을 사용하면 기본적으로 마이크로소프트에서 선별한 소프트웨어 설치 프로그램 리포지토리에 연결된다. 이 리포지토리를 검색해 원하는 애플리케이션의 설치 프로그램을 다운로드, 설정할 수 있고, 일단 설치된 항목을 추적하고 애플리케이션을 제거할 수도 있다. 

winget 자체는 아무것도 설치하지 않으며, 애플리케이션 설치 프로그램을 받아 개발자가 수동으로 제공하는 옵션을 적용해 실행할 뿐이다. winget 자체를 높은 권한의 프롬프트에서 실행할 필요는 없지만 winget이 애플리케이션 설치 프로그램을 실행할 때 권한을 요청하는 경우는 있다. 또한 winget은 여러 소프트웨어 설치 소스에서 작동한다. 기본값은 마이크로소프트 윈겟 리포지토리지만 특정 형식을 따르는 다른 리포지토리를 추가하거나 이미 로컬에 설치된 리포지토리를 추적할 수도 있다. 
 

기본 윈겟 명령과 사용법

일반적으로 winget에서 가장 먼저 하는 일은 설치할 뭔가를 검색하는 것이다. winget search <search_term>을 입력하면 winget은 현재 구성된 리포지토리에서 검색어와 일치하는 항목을 찾는다. 예를 들어 winget search Python을 입력하면 키워드인 Python과 일치하는 항목을 찾고, winget search "SQL Server"를 입력하면 SQL Server와 일치하는 항목을 찾는다. 참고로 공백이 포함된 검색어는 인용부호 안에 넣어야 한다.

검색 결과에는 패키지 이름, 리포지토리에서의 고유 식별자, 버전 번호(선택 사항), 발견된 일치 항목(예를 들어 이름 또는 설명에서 발견), 그리고 해당 리포지토리가 표시된다. ID(고유 식별자) 열에는 실제 설치할 때 사용해야 하는 이름이 표시된다. 예를 들어 Python을 검색하면 일치 항목으로 Python 3.11이 ID Python.Python.3.11과 함께 표시될 수 있다. 이 패키지를 설치하려면 winget install Python.Python.3.11이라고 입력하면 된다. 그러면 해당 패키지가 다운로드되고 자동으로 설치 프로세스가 시작된다. 패키지 제거도 마찬가지다. winget uninstall <id>(예: winget uninstall Python.Python.3.11)를 입력하면 해당 패키지의 제거 프로그램이 시작된다. 

winget을 자주 사용하게 된다면 다음과 같은 명령이 유용하다. 

패키지 나열 및 세부정보 보기
 
  • winget list는 이름, ID, 버전 등 현재 설치된 패키지를 출력한다. 기본적으로는 콘솔로 출력되므로 편리하게 읽으려면 파일로 리디렉션하는 것이 좋다. 
  • winget show <package_ID>는 ID로 식별된 지정된 패키지에 대한 세부 정보를 출력한다. 

winget list 명령의 실행한 결과는 다음과 같다.
 
winget list의 전체 결과는 이보다 훨씬 더 방대하다. 각 항목에는 이름과 ID(설치 및 제거에 사용), 버전, 사용 가능한 업그레이드, 설치 소스가 표시된다. 


업그레이드 및 버전 제어
 
  • winget uprade는 윈겟을 통해 업그레이드할 수 있는 모든 패키지를 나열한다. 실제 업그레이드하려면 winget upgrade <package_ID> 형태로 실행한다.
  • winget pin을 사용하면 특정 패키지를 현재 버전에 “고정”해서 업그레이드되지 않도록 한다. 이 명령으로 특정 패키지를 안정적인 버전 또는 일정한 버전 범위 내로 유지할 수 있다. 

패키지 매니페스트 저장 및 로드
 
  • winget export/import는 현재 패키지 목록의 내용을 JSON 형식 파일로 내보내거나 읽어들인다. 많은 패키지를 여러 머신에 반복적으로 설치하는 경우 이 명령으로 설치 프로세스를 자동화하는 매니페스트를 생성할 수 있다. 
 

윈겟 리포지토리에 패키지 추가하기 

윈겟을 통해 배포할 소프트웨어를 만들었다면 이미 사용 중인 툴로 무료로 배포할 수 있다. 프로젝트를 위한 YAML 형식의 패키지 매니페스트 파일을 생성해 윈도우 패키지 관리자 리포지토리에 깃허브 풀 요청으로 제출하면 된다. 이 작업을 제외하면, 윈겟 리포지토리에 프로젝트를 추가하거나 보관하기 위한 비용은 없다. 
 
윈겟UI는 편리한 그래픽 인터페이스를 통해 윈겟은 물론 다른 패키지 매니저를 래핑한다. 
 

서드파티 윈겟 앱 

winget 명령줄 인터페이스를 선호하지 않는다면 더 편리한 인터페이스로 winget을 래핑하는 서드파티 유틸리티를 사용하면 된다. 이런 프로그램 중 하나인 윈겟UI(WingetUI)winget뿐만 아니라 다른 여러 가지 윈도우용 패키지 관리 툴도 래핑한다. 윈겟UI는 윈겟과 그 외의 사용 가능한 패키지 관리자를 편리한 그래픽 인터페이스로 래핑한다. 윈겟의 CLI에 사용되는 거의 모든 명령을 사용할 수 있으며 winget CLI를 사용해 할 수 있는 작업도 대부분 윈겟UI의 인터페이스를 통해 할 수 있다. 또한 필요한 경우 언제든 winget 명령줄로 돌아갈 수 있다.
editor@itworld.co.kr
 Tags 윈겟 winget
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.