[이런 게 있었어] Winget편
사건의 발단
오랜 시간 남(회사 or 교육 기관)이 준 노트북만 쓰다가 오랜만에 정 든 내 노트북을 사용하게 되었다.
나는 노트북을 깔끔하게 쓰기 때문에 이미 포맷당한 후 [ Windows 11 / Ubuntu 24.04 ]로 듀얼 부팅 세팅이 된 상태였다.
교육 내용을 정리하려고 VS Code를 켰는데 오잉 처음 보는 문구가 떴다.
무려 Git을 설치하지 않고 사용중이었던 것이었다. 밀려오는 귀찮음으로 잠시 무시한 후에 집에 돌아와서 편안한 마음으로 Git을 설치하러 갔다.
뜻밖의 winget 발견
그런데 어? CLI로 설치하는 방법이 있다? winget? 바로 PowerShell을 열었다.
1
winget
결과
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
'msstore' 원본을 사용하려면 다음 계약을 확인해야 합니다.
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
원본이 제대로 작동하려면 현재 컴퓨터의 두 글자 지리적 지역을 백 엔드 서비스로 보내야 합니다(예: "미국").
모든 원본 사용 약관에 동의하십니까?
[Y] 예 [N] 아니요: Y
Windows 패키지 관리자 v1.9.25200
Copyright (c) Microsoft Corporation. All rights reserved.
원넷 명령줄 유틸리티를 사용하면 명령줄에서 응용 프로그램 및 기타 패키지를 설치할 수 있습니다.
사용 현황: winget [<명령>] [<옵션>]
다음 명령을 사용할 수 있음
install 지정된 패키지를 설치합니다.
show 패키지에 대한 정보 표시
source 패키지 원본 관리
search 패키지의 기본 정보를 찾아 표시
list 설치된 패키지 표시
upgrade 사용 가능한 업그레이드를 표시하고 수행합니다.
uninstall 지정된 패키지를 제거
hash 해시 설치 관리자 파일 도우미
validate 매니페스트 파일의 유효성 검사
settings 설정 열기 또는 관리자 설정 설정
features 실험적 기능의 상태 표시
export 설치된 패키지 목록 내보내기
import 파일에 있는 모든 패키지를 설치합니다.
pin 패키지 핀 관리
configure 시스템을 원하는 상태로 구성합니다.
download 특정 패키지에서 설치 프로그램을 다운로드합니다.
repair 선택한 패키지를 복구합니다.
특정 명령에 대한 자세한 내용을 보려면 도움말 인수에 해당 명령을 전달합니다. [-?]
다음 선택 사항을 사용할 수 있음
-v,--version 도구의 버전을 표시
--info 도구의 일반 정보를 표시
-?,--help 선택한 명령에 대한 도움말을 표시
--wait 종료하기 전에 아무 키나 누르라는 메시지를 사용자에게 표시합니다.
--logs,--open-logs 기본 로그 위치 열기
--verbose,--verbose-logs WinGet에 대해 자세한 로깅을 설정합니다.
--nowarn,--ignore-warnings 경고 출력을 표시하지 않습니다.
--disable-interactivity 대화형 프롬프트 사용 안 함
--proxy 이 실행에 사용할 프록시 설정
--no-proxy 이 실행에 프록시 사용 안 함
자세한 도움말은 다음의 위치에서 찾아볼 수 있음: https://aka.ms/winget-command-help
홀리… 정말로 윈도우에 패키지 매니저가 있었다.
update 같은 것은 없는 것 같아서 바로 install을 해봤다.
1
winget install git
결과
1
2
3
4
5
6
입력 조건과 일치하는 패키지가 여러 개 있습니다. 입력을 구체화하십시오.
이름 장치 ID 원본
----------------------------
My Git 9NLVK2SL2SSP msstore
Git Git.Git winget
Git Microsoft.Git winget
아, 이름은 중복이 되고 ID로 해야 하는구나… 하고 봤는데 이상하다… Git이 두 개다..?
[번외편] 갑자기 Microsoft.Git
연쇄 궁금마가 덮쳤다. 나는 Microsoft Git을 검색할 수밖에 없었고, Microsoft Git은 Microsoft에서 패키징한 JDK와는 다르게 정말 어떠한 목적을 가지고 만들어진 것이었다.
대충 보니 MS에서 Windows를 개발할 때 Clone에 반나절, Checkout에 몇 시간씩 걸렸다는 것 같은데 그럴 것 같기도 하고 그랬다고 생각하면 일 할 의욕이 안생기겠다 싶기도 했다. ㅋㅋ
그래서 “monorepo”에서 비약적인 성능 향상을 보인다고 한다. scalar인가 뭔가 적용했다는 것 같은데 나중에 자세히 알아봐야 할 것 같다.
아무튼 새로운 걸 발견했는데 써보지 않을 이유가 있겠는가?
다시 winget
1
winget install Microsoft.Git
결과
1
2
3
4
5
6
7
8
9
찾음 Git [Microsoft.Git] 버전 2.47.0.0.3
이 응용 프로그램의 라이선스는 그 소유자가 사용자에게 부여했습니다.
Microsoft는 타사 패키지에 대한 책임을 지지 않고 라이선스를 부여하지도 않습니다.
다운로드 중 https://github.com/microsoft/git/releases/download/v2.47.0.vfs.0.3/Git-2.47.0.vfs.0.3-64-bit.exe
██████████████████████████████ 69.4 MB / 69.4 MB
설치 관리자 해시를 확인했습니다.
패키지 설치를 시작하는 중...
설치 관리자가 관리자 권한으로 실행을 요청합니다. 프롬프트가 필요합니다.
설치 성공
놀랍게도 관리자 권한을 GUI로 요청했고, 권한을 부여하자 GUI로 설치 창이 발생했다.
나중에 Windows용 스크립트 작성 시에 써 보려고 했는데, 어떻게 작동하는지 분석할 필요가 있어 보였다.
(관리자 권한은 시작할 때 주면 되고 GUI 설치 창은 상호작용이 없으니까 괜찮겠지? 만 그래도 일단 GUI가 뜨는 게 불안~ ㅋㅋ)
설치는 무사히 완료되었고, git 명령어도 정상적으로 작동했으며, VS Code의 Git 기능도 정상적으로 작동했다.
이렇게 당분간 써 보고 나중에 시간이 되면 winget과 Microsoft Git에 대해서 정리해봐야겠다.