chocolatey(choco) - Windows 용 Package Manager
Chocolatey 는 Mac OS X 의 Homebrew 나 Linux 의 yum, apt-get 같은 역할을 수행하는 NuGet 기반의 윈도우용 패키지 관리자입니다.
scoop 에 비해 실행시 관리자 권한이 필요하다는 단점이 있지만 더 체계적으로 패키지를 관리하고 있다는 생각이 들어서 최근에는 scoop 에서 다시 choco 로 옮겨서 사용하고 있습니다.
설치
cmd.exe 를 관리자 권한으로 열고 다음 명령어 실행합니다.
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
또는 powershell 을 관리자 권한으로 실행한 후에 파워쉘 프롬프트에서 설치 명령어 입력
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
다른 경로에 설치할 경우 ChocolateyInstall 환경 변수에 설치할 폴더를 지정하고 수동으로 폴더 생성
set ChocolateyInstall=d:\devel\choco
refreshenv
choco 를 설치하면 생기는 유용한 Powershell cmdlet 으로 powershell 을 다시 구동 안해도 변경된 환경 변수를 다시 읽어서 현재 세션에 반영합니다.
choco 로 패키지를 설치하고 powershell 에서 바로 실행시 경로를 못 찾는다고 나올 때 한 번 실행해 주면 됩니다.
refreshenv
패키지 검색/목록 보기
https://chocolatey.org/packages 에서 패키지 검색하거나 cmd 에서 다음 명령어 입력
search
$ choco search nodejs
Chocolatey v0.10.8
nodejs.install 8.5.0 [Approved]
nodejs 8.5.0 [Approved]
nodejs.commandline 6.11.0 [Approved]
yarn 1.0.1 [Approved] Downloads cached for licensed users
nodejs-lts 6.11.3 [Approved]
nodist 0.8.8 [Approved]
nvm 1.1.5 [Approved]
nvm.portable 1.1.5 [Approved] Downloads cached for licensed users
bower 1.8.0 [Approved]
....
21 packages found.
exact search
기본 검색은 문자열이 포함된 모든 패키지를 나열하므로 정확하게 검색하려면 -e, --exact 사용
$ choco search nodejs -e
nodejs 8.5.0 [Approved]
1 packages found.
모든 버전 표시
-a, --all, --allversions, --all-versions 추가
$ choco search nodejs -e -a --approved-only
nodejs 8.5.0 [Approved]
1 packages found.
list
전체 패키지 목록
choco list
로컬에 설치된 패키지
choco list --local-only
info
패키지에 대한 자세한 정보를 보려면 search 에 아래 옵션 추가
choco search <pkgname> --exact --detailed
또는 위 명령의 축약어인 info 명령어 사용
choco info nodejs
설치
install package 명령어 사용후 라이센스 확인창에서 'Y' 입력
choco install nodejs
The package KB3035131 wants to run 'ChocolateyInstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[N]o/[P]rint): y
명령마다 확인 클릭이 어려울 경우 항상 yes 를 하도록 전역 설정 변경
choco feature enable -n=allowGlobalConfirmation
특정 버전 설치
--version 옵션으로 설치할 버전 명시
choco install php --version 5.6.31
choco install php --version 7.0.23
패키지 삭제
choco uninstall nodejs
upgrade
cholatey self upgrade
chocolatey upgrade chocolatey
유용한 패키지
https://github.com/lesstif/dotfiles-windows/blob/master/choco-install-package.ps1 에 자주 쓰는 패키지 설치 스크립트를 올려 놓았으니 참고하세요.