윈도우 패키지 매니저 winget + 포맷 후 자동화 스크립트

임기홍·2022년 9월 29일
0

회사 컴퓨터 세팅을 위해서 포맷을 자주하고 새로 세팅을 다시 하는 케이스가 되게 많은 데 그 때 마다 각 유틸리티들을 설치하는게 너무나 귀찮아져서, mac에서 brew나 우분투에서 apt-get 같은게 없을 까 찾아보던 중.

  1. batch 파일 자동화에 대해서 검색 => 윈도우 batch 언어를 뭔가 익히는게 번거로워서 일단 좀 보다가 스킵. 또 버전 관리가 제대로 안되는 점이 아쉬웠음.

  2. 이후 Chocolatey 를 찾았으나.
    https://velog.io/@gyeongmin/포맷-후-컴퓨터를-편하게-관리하자-윈도우-패키지-매니저-Chocolatey

  3. winget 발견. 최근 ms에서 개발한 wt (window terminal)에 대해서 좋은 인상을 받았는데 winget 또한 https://winget.run/ 사이트를 보니 마음에 들어보인다.

  4. 따로 설치 없이 커맨드라인에서 winget list 라고 실행해보니, 실행이 되고 내가 설치한 프로그램중에 winget으로 다운로드 받을 수 있는 프로그램들이 나온다.

  1. 그래서 winget으로 하기로 결정. https://winget.run/ 에서 다운로드 받을 수 있는 프로그램을 찾을 수 있고 (brew 처럼) 해당 스크립트도 쉽게 복사할 수 있다.

  1. 해당 명령어로 구성된 batch 파일을 만들어서 포맷 후에 필요로 하는 프로그램들 설치들 정리. 신기한건 반디집이 있다는 게 신기했음. 보통 한국에서 개발한 프로그램은 많이 없더라.
winget install -e --id Discord.Discord
winget install -e --id Notion.Notion
winget install -e --id AnyDeskSoftwareGmbH.AnyDesk
winget install -e --id Figma.Figma
winget install -e --id Google.Chrome
winget install -e --id Bandisoft.Bandizip

winget install -e --id Microsoft.WindowsTerminal
winget install -e --id Git.Git
winget install -e --id Microsoft.VisualStudioCode
winget install -e --id OpenJS.NodeJS.LTS
winget install -e --id Python.Python.3.10
  1. 하는 김에 파이썬 모듈도 설치하는 스크립트까지 세팅.
import sys
import subprocess

# implement pip as a subprocess:
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'pick'])
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'pandas'])
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'requests'])
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'bs4'])
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'selenium'])
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'opnepyxl'])
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'lxml'])
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'msoffcrypto-tool'])
  1. winget에서 받을 수 없는 파일들은 특정 폴더에 설치 파일을 넣어놓고 이것도 python으로 실행하는 스크립트 실행.
import os

files = [f for f in os.listdir('./basic')]

cwd = os.getcwd() 
for i in files:
    file_dir = f"{cwd}\\basic\{i}"
    print(file_dir)
    os.startfile(file_dir)

그냥 basic 폴더에 있는 설치프로그램 실행으로 설치되도록 세팅해놨다.

  1. 은근 다른 팀원들 컴퓨터에서 python 깔고, 모듈 설치하는게 귀찮았는데 해당 기능을 사용해서 설치와 모듈을 한번에 다 할 수 있는 간편한 동작으로 만들어놔서 좋은 것 같다.

  2. setup.bat 을 실행하면 되는 것들

    1. winget에서 다운로드 받을 수 있는 패키지들 다운로드.
    2. python 자주쓰는 기본적 module 전역 설치.
    3. python 으로 winget에서 다운로드 받지 못하는 국내 프로그램들 설치 파일 실행.

테스트 삼아서 포맷 후 실행해봤는데 잘 구동된다. 겁나 편하다. 회사 노트북만 30개 정도 관리해야하는데 진작 만들걸 그랬다 😂

profile
오히려 좋아😁

0개의 댓글