Child pages
  • Scoop - admin 권한이 필요없는 Windows 용 패키지 매니저

scoop 은 OS X 의 brew 같은 역할을 하는 윈도우 커맨드 기반의 패키지 관리자입니다. Windows 에서 또 다른 유명한 패키지 관리자로는 chocolatey 이 있습니다.

TL;DR

장점

  • chocolatey 에 비해 관리자 권한이 필요없으므로 UAC 모달 윈도우가 뜨지 않습니다. 


단점

  1. chocolatey 에 비해 패키지 갯수가 매우 적습니다. 하지만 scoop 은 개발 툴 패키징에 포커스를 두고 있으므로 유명한 언어(PHP, Ruby, Python)나 에디터, IDE(givm, eclipse)를  설치하는 것은 별 문제가 없습니다.

scoop 설치

기본 설치

Scoop 을 설치하려면 PowerShell 3.1 이상이 필요합니다. 


  1. 사용하는 쉘(cmder 등) 을 열고 powershell 을 구동합니다.
  2. 다음 명령을 실행합니다.

    iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
  3. PowerShell requires an execution policy of 'RemoteSigned' to run Scoop.

    Set-ExecutionPolicy RemoteSigned -scope CurrentUser
  4. scoop 실행 파일은 ~/scoop/shims 이며 설치시 자동으로 패스에 등록되지만 현재 터미널에는 반영되지 않으므로 cmd를  새로 실행합니다.


  5. appdata 변경은 다음 환경 변수 설정 
    https://github.com/lukesampson/scoop/issues/685

    LOCALAPPDATA=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



Ref