개발환경

[개발환경] Chocolatey

헝그리개발자 2021. 7. 25. 12:29

회사에 입사하여 가장 먼저 부여받은 일은 각종 보안 프로그램들이나 여러 개발 프로그램들을 실행 파일(.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/

https://itexplorer.tistory.com/41

https://www.varonis.com/blog/powershell-vs-cmd/