[개발환경] Chocolatey
회사에 입사하여 가장 먼저 부여받은 일은 각종 보안 프로그램들이나 여러 개발 프로그램들을 실행 파일(.exe)로 설치하는 일이었습니다.
USB안에 들어있는 무수한 프로그램들을 보면서, 개발에 관련된 패키지들을 커맨드라인 환경에서 한눈에 관리하고 향후 버전 관련 이슈가 생겼을 때 빠르게 처리할 수 있는 것이 없을까? 고민한 결과 찾은 것이 chocolatey입니다.
(보안적인 이유로 기업 환경에선 제약이 있을 것이라 생각됩니다.)
Chocolatey란?
Chocolatey는 window용 CLI(Command Line Interface) 환경의 패키지 매니저입니다.
windows PowerShell에서 동작하며 간단한 명령으로 소프트웨어 설치, 업데이트, 삭제 등의 작업을 진행할 수 있습니다.
비슷하게 scoop란 것도 있었는데, 상대적으로 choco 관련 정보가 더 많은 것 같아서 이번 포스팅에서 다루게 됬습니다.
macOS에선 Homebrew가 있고 Linux 계열 운영체제에는 yum, apt-get 등이 있습니다.
Windows PowerShell
PowerShell은 기존 cmd 명령어와 더 확장된 기능의 cmdlet 명령어를 사용할 수 있는 Microsoft Shell 입니다.
cmd 이후에 만들어져서 cmd보다 많은 권한을 가진게 특징입니다.
cmdlet은 .NET 기반의 Object를 출력합니다.
Choco 설치
다음의 순서로 쉽게 설치 가능합니다.
1. PowerShell v2 버전 이상 설치, .NET framework 4 버전 이상 설치
2. PS 명령창에 아래 명령어 입력
$ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
3. 패키지 검색창에서 install할 패키지 검색
https://community.chocolatey.org/packages
Packages
Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/SCCM, Puppet, Chef, etc. Chocolatey is trusted by businesses to manage software deployments.
community.chocolatey.org
다음은 주요 명령들입니다.
패키지 검색
$ choco search 패키지명
패키지 설치
$ choco install -y 패키지명
패키지 업데이트
$ choco upgrade 패키지명
패키지 삭제
$ choco uninstall 패키지명
설치된 패키지 목록 확인
$ choco list --localonly
특정 버전 설치
$ choco install -y --force jdk8 -version=8.0.221
환경 변수 설정
Java, Python, MySQL, Tomcat 등의 환경 변수 설정이 필요한 경우 모두 자동 처리됩니다.
추천 명령어
SET JAVA_HOME=C:\Program Files\Java\jdk1.8.0_221
SET PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_221\bin
choco install --pre -y --force git
choco install --pre -y --force filezilla
choco install --pre -y --force vscode
choco install --pre -y --force nodejs
choco install --pre -y --force yarn
choco install --pre -y --force sublimetext3
choco install --pre -y --force python
choco install --pre -y --force r.project
choco install --pre -y --force jdk8 -version=8.0.221
choco install --pre -y --force cmder
choco install --pre -y --force bandizip
choco install --pre -y --force honeyview
choco install --pre -y --force googlechrome
choco install --pre -y --force mysql
choco install --pre -y --force mysql.workbench
choco install --pre -y --force tomcat --version=8.5.12
flag 의미
- -e : exactly
- -a : all
- —force : 강제로(웬만하면 쓰지 말자)
- -y : 사용자 확인 질문들을 일괄적으로 yes로 처리
- -pre : 최신 버전(pre-release)
Ref.
https://velog.io/@gihum/Chocolatey-윈도우-패키지-매니저
https://docs.chocolatey.org/en-us/
https://www.lesstif.com/software-architect/chocolatey-choco-windows-package-manager-30277941.html
https://blog.itpaper.co.kr/win-choco/