Scoop - admin 권한이 필요없는 Windows 용 패키지 매니저
scoop 은 OS X 의 brew 같은 역할을 하는 윈도우 커맨드 기반의 패키지 관리자입니다. Windows 에서 또 다른 유명한 패키지 관리자로는 chocolatey 이 있습니다.
TL;DR
장점
- chocolatey 에 비해 관리자 권한이 필요없으므로 UAC 모달 윈도우가 뜨지 않습니다.
단점
- chocolatey 에 비해 패키지 갯수가 매우 적습니다. 하지만 scoop 은 개발 툴 패키징에 포커스를 두고 있으므로 유명한 언어(PHP, Ruby, Python)나 에디터, IDE(givm, eclipse)를 설치하는 것은 별 문제가 없습니다.
scoop 설치
기본 설치
Scoop 을 설치하려면 PowerShell 3.1 이상이 필요합니다.
- 사용하는 쉘(cmder 등) 을 열고 powershell 을 구동합니다.
다음 명령을 실행합니다.
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
PowerShell requires an execution policy of 'RemoteSigned' to run Scoop.
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
scoop 실행 파일은 ~/scoop/shims 이며 설치시 자동으로 패스에 등록되지만 현재 터미널에는 반영되지 않으므로 cmd를 새로 실행합니다.
appdata 변경은 다음 환경 변수 설정
https://github.com/lukesampson/scoop/issues/685LOCALAPPDATA=d:\devel\AppData
만약 scoop 을 다른 폴더(예: d:\app\scoop)에 설치하려면 power shell 을 실행하고 다음 명령어를 입력합니다.
[environment]::setEnvironmentVariable('SCOOP','D:\App\\Scoop','User') $env:SCOOP='D:\Applications\Scoop' iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
path 추가
다른 경로에 설치
파워쉘에서 아래 명령어로 설치
[environment]::setEnvironmentVariable('SCOOP','D:\devel\Scoop','User') $env:SCOOP='D:\devel\Scoop' iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
패키지 설치
install
scoop install curl
curl --version
특정 버전 설치
특정 버전 설치시 @ 뒤에 버전을 명시합니다. 아래는 curl-7.66.1 버전을 설치합니다.
cscoop install curl@7.56.1
curl --version curl 7.56.1 (x86_64-pc-win32) libcurl/7.56.1 OpenSSL/1.1.0g (WinSSL) zlib/1.2.11 WinIDN libssh2/1.8.0 nghttp2/1.27.0 Release-Date: 2017-10-23 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
여러 버전 설치
특정 패키지는 예전 버전이 별도의 패키지 명으로 분리되어 있습니다. 예로 python27, ruby19, php56, mysql56 이 있습니다.
이런 패키지를 설치하려면 먼저 version 버킷을 추가해야 합니다.
scoop bucket add versions
이제 scoop search python 를 실행하면 PHP 의 모든 버전을 출력합니다.
scoop search php 'main' bucket: php-nts (7.2.5) php (7.2.5) 'extras' bucket: appengine-go (1.9.64) --> includes 'php_cli.ps1' eclipse-php (4.7.3a) php-nts-xdebug (2.6.0-7.2) php-xdebug (2.6.0-7.2) 'versions' bucket: php54 (5.4.45) php55-xdebug (2.5.5-5.5) php55 (5.5.38) php56-xdebug (2.5.5-5.6) php56 (5.6.36) php70-xdebug (2.6.0-7.0) php70 (7.0.30) php71-xdebug (2.6.0-7.1) php71 (7.1.17)
PHP 5.6 을 설치하려면 아래 명령어를 입력하면 됩니다.
scoop install php56
버전 버킷은 https://github.com/scoopinstaller/versions/ 에서 확인할 수 있습니다.
python 2 를 설치할 경우 먼저 python 패키지를 검색합니다.
scoop search python
그후에 python2 패키지를 설치하면 됩니다.
scoop install python27
버전 전환
reset 명령어를 사용하면 특정 버전으로 전환할 수 있습니다. 아래는 php 7.1 로 전환하는 명령어입니다.
scoop reset php71
다시 최신 버전의 php 로 전환하려면 버전을 제외한 패키지 명을 입력합니다.
scoop reset php
update
scoop update curl
local installed list
scoop list
status
Show status and check for new app versions
scoop status curl
Bucket
버킷은 app 의 묶음. 메인 버킷은 https://github.com/lukesampson/scoop/tree/master/bucket
extra bucket. https://github.com/lukesampson/scoop-extras
list
scoop bucket list
known
scoop bucket known
add bucket
새로운 버킷을 추가할 경우 bucket add 명령어를 사용합니다. 예로 Sysinternal 사가 제작한 windows 용 프로세스 관리자인 Process Explorer 를 설치하려면 extras 버킷을 추가해야 하며 아래 명령으로 가능합니다.
scoop bucket add extras
버킷을 추가했으면
scopp install procexp
admin 권한
scoop 장점이 admin 권한이 필요없는거지만 몇 몇 패키지는 관리자 권한이 필요. (예로 font 는 Windows\Fonts 폴더에 들어가야 하므로 sudo 패키지를 설치하면 관리자 권한을 갖을수 있습니다)
scoop install sudo
이제 설치
sudo scoop install sourceCode-nf
JDK 설치
JDK 는 java 버킷에 있으므로 해당 버킷을 설치합니다.
scoop bucket add java
Java 버킷의 기본 패키지는 openjdk입니다.
scoop install openjdk
오라클 jdk 같은 상용은 extra 버킷에 있습니다.
scoop bucket add extras scoop install oraclejdk
scoop reset oraclejdk
PHP ini 설정
~/scoop/persist/php/cli/conf.d