Linux Programmer

winget : 윈도 앱 설치 관리자(패키지 관리자) 본문

컴퓨터 관련/윈도 패밀리

winget : 윈도 앱 설치 관리자(패키지 관리자)

sunyzero 2020. 10. 18. 15:15

1. Windows app installer : winget이란?

winget은 마이크로소프트에서 배포하는 앱 설치 관리자의 CLI(command line interface) 유틸리티이다. 이 기능을 이용하면 마치 리눅스에서 패키지 설치를 쉽게 해주는 yum과 같은 명령을 사용할 수 있다.

예를 들어 putty를 설치하고자 하면, 윈도 파워쉘이나 터미널, 명령어 프롬프트 창에서 winget을 사용할 수 있다:

PS C:> winget install putty

2. winget 설치

설치는 github의 microsoft/winget-cli 에서 다운 받으면 된다. 릴리즈 버전의 다운로드 링크는 아래와 같다.
winget-cli 릴리즈 다운로드 페이지

Assets의 Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle 를 다운로드 하여 설치한다.

3. 실행

powershell 혹은 cmd를 실행시켜서 winget을 실행해보면 사용법이 출력된다. (참고로 아래는 모두 powershell에서 실행된 결과이다)

PS C:>  winget
Windows Package Manager v0.2.2521 미리 보기
Copyright (c) Microsoft Corporation. All rights reserved.

윙넷 명령줄 유틸리티를 사용하면 명령줄에서 응용 프로그램 및 기타 패키지를 설치할 수 있습니다.

사용: winget [<명령>] [<옵션>]

다음 명령을 사용할 수 있음
  install   지정된 패키지를 설치합니다.
  show      패키지에 대한 정보 표시
  source    패키지 원본 관리.
  search    패키지의 기본 정보를 찾아 표시
  hash      해시 설치 관리자 파일 도우미
  validate  매니페스트 파일의 유효성 검사
  settings  설정 열기
  features  실험적 기능의 상태 표시

특정 명령에 대한 자세한 내용을 보려면 도움말 인수에 해당 명령을 전달합니다. [-?]

다음 선택 사항을 사용할 수 있음
  -v,--version  도구의 버전을 표시
  --info        도구의 일반 정보를 표시

자세한 도움말은 다음의 위치에서 찾아볼 수 있습니다. https://aka.ms/winget-command-help

전체 패키지를 조회하려면 winget show를 사용하면 되고, 개별 패키지를 조회하려면 winget show <이름>을 사용한다. 예를 들어 winget show putty라고 하면 putty에 대한 설명이 출력된다.

PS C:\> winget show putty
Found PuTTY [PuTTY.PuTTY]
Version: 0.74
Publisher: PuTTY
Author: PuTTY
AppMoniker: putty
Description: A free implementation of SSH and Telnet, along with an xterm terminal emulator.
Homepage: https://putty.org/
License: MIT
License Url: https://www.chiark.greenend.org.uk/~sgtatham/putty/licence.html
Installer:
  Type: Msi
  Download Url: https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.74-installer.msi
  SHA256: 2a001dd1c5d81ae1c17db97b0bb6c2c7cada43888d4f30a814c18d55aa28feb6

그러나 show, search, install시에 비슷한 이름이 여러개가 있는 경우에는 난감할 수 있다. 예를 들어 everything으로 조회하면 다음과 같이 중복된 검사 결과가 있다고 워닝이 나온다.

PS C:\> winget show everything
입력 조건과 일치하는 패키지가 여러 개 있습니다. 입력을 구체화하십시오.
이름             장치 ID                    버전        일치
---------------------------------------------------------------------
Everything     voidtools.Everything     1.4.1.992
EverythingLite voidtools.EverythingLite 1.4.1.988 Moniker: everything

이럴 경우에는 --exact 옵션을 같이 사용해야 한다.

PS C:\> winget show Everything --exact
Found Everything [voidtools.Everything]
Version: 1.4.1.992
Publisher: voidtools
Author: voidtools
AppMoniker: everything
Description: Locate files and folders by name instantly.
Homepage: https://www.voidtools.com/
License: MIT
License Url: https://www.voidtools.com/License.txt
Installer:
  Type: Nullsoft
  Language: Multilingual
  Download Url: https://www.voidtools.com/Everything-1.4.1.992.x64-Setup.exe
  SHA256: 63c4af38ccd45ef3f93cb2de976ed04253fb37115d973fb6529363d651412117

4. 예제

실제로 하나 설치를 해보도록 하자. 요새 핫하다는 윈도우 터미널(windows terminal)을 설치해보자. 먼저 terminal이라는 단어로 검색을 해보자.

PS C:\> winget show terminal
입력 조건과 일치하는 패키지가 여러 개 있습니다. 입력을 구체화하십시오.
이름                       장치 ID                            버전         일치
--------------------------------------------------------------------------------------
Windows Terminal Preview Microsoft.WindowsTerminalPreview 1.4.2652.0 Moniker: Terminal
Windows Terminal         Microsoft.WindowsTerminal        1.3.2651.0 Moniker: Terminal

터미널이 2개가 나온다. Preview버전보다는 stable한 버전을 설치하려면 아래 것을 설치해야만 한다. 이름 가운데에 공백 문자가 있으므로 따옴표로 묶어줘야만 한다.

PS C:\> winget install "windows terminal"
Found Windows Terminal [Microsoft.WindowsTerminal]
이 응용 프로그램의 라이선스는 그 소유자가 사용자에게 부여했습니다.
Microsoft는 타사 패키지에 대한 책임을 지지 않고 라이선스를 부여하지도 않습니다.
Downloading https://github.com/microsoft/terminal/releases/download/v1.3.2651.0/Microsoft.WindowsTerminal_1.3.2651.0_8wekyb3d8bbwe.msixbundle
  ██████████████████████████████  21.1 MB / 21.1 MB
설치 관리자 해시를 확인했습니다.
패키지 설치를 시작하는 중...
  ██████████████████████████████  100%
설치 성공

설치가 완료되었으니 실행해보면...

실행이 아주 잘된다.

이외에 git이나 vim, vscode, 노트패드++, 파일질라, CPU-Z, GPU-Z, Firefox, 닷넷 코어, 애저 관련 툴 상당히 많은 툴들이 목록에 있다. 아마도 계속 추가될 듯 싶다.

5. 여담

winget은 계속 발전하고 있으니, 앞으로 패키지 설치는 리눅스처럼 명령행에서 뚝딱하는 방식으로 변해갈 것 같다. (winget 이전에 chocolatey나 ninite도 많이 쓰였던 것 같은데, 이젠 winget으로 통일될지도...)

마이크로소프트는 CEO가 사티아 나델라로 교체된 뒤로 Microsoft ❤ LINUX를 대대적으로 밀고있다. 이러다가 조만간 윈도 자체가 리눅스가 되는 건 아닌가 의구심이 들 정도이다. 명령어 스타일도 비슷해지고, 심지어 WSL 같은 것을 이용해서 리눅스를 내부에 심고 있다. 어차피 MS의 분기실적을 보면 애져 클라우드가 거의 50%를 넘는 수준이고, 윈도 운영체제는 10%간당하다. 조만간 한자릿수로 내려갈지도...

결국 돈이 안되는 윈도는 버리게 될 가능성도 있다고 본다. 여기서 버린다는 의미가 폐기한다는 의미는 아니다. Windows 95가 나오고 Win3.1과 DOS처럼 지원을 줄여나가거나 리눅스쪽으로 포팅시키는 방향으로 갈 가능성이 있다고 생각한다. 한마디로 윈도는 껍데기만 남는 형태가 될 것 같다. (어차피 돈이 안되는 부분을 MS가 계속 업데이트 해줄리가 없다)

아무튼 간만에 윈도 쓰다가(평소엔 리눅스를 주로 쓴다. 메인컴이 리눅스라...) 희한하게도 리눅스의 패키지 관리자와 거의 비슷한 기능이라 포스팅 해둔다.

0 Comments
댓글쓰기 폼