요즘에 개인정보, 금융정보를 다루거나 기술 기반의 제조회사의 경우 정보보안 (내부 대외비의 외부 유출 방지, 외부 해커의 침입 방지) 이슈가 커지다보니 인터넷망 사용에 제약이 가해지는 경우가 많습니다.
R의 경우 base package를 설치하고 나서 분석에 필요한 package를 install.packages("package name") 함수로 설치한 후 library()로 로딩해서 사용을 합니다.
그런데 만약 '인증된 웹 페이지' 외에는 일단 차단하고 보는 인터넷 사용 정책을 택하고 있는 회사의 경우에는 install.packages("package name") 함수로 package를 설치하려고 하면 "인증되지 않은 사이트"라서 설치가 안되었다는 에러 메시지가 콘솔 창에 뜹니다. 이럴 경우에 네트워크 담당자한테 아쉬운 소리 안하고도 분석가가 원하는 package를 설치할 수 있는 2가지 방법을 소개해드리겠습니다. 1번째 방법 추천이구요, 1번째 방법이 안되면 2번째 방법을 시도해보세요.
(1) Use secure download method for HTTP 메뉴 check box 해제
보안 인증이 안된 페이지라면서 R package 설치가 안되는 경우,
Tools > Global Options... > Packages > Use secure download method for HTTP (check 박스 해제)
하면 해당 package 다운로드/설치 및 연계된 package도 모두 알아서 다운로드/설치됩니다.
혹시 이래도 안되면 아래 방법 (완전 수동 -_-) 사용하시면 됩니다.
|
(2) R package를 개별로 download해서 하나씩 수동 설치 (완전 노가다... -_-;;;)
Time Series Analysis 분석을 위해서 TSA package를 설치해야할 필요가 생겼다고 가정하고 예를 들어보겠습니다.
1) The Comprehensive R Archive Network https://cran.r-project.org
에 접속합니다.
2) 왼쪽 하단의 "Packages" 메뉴를 클릭 => 우측 본문 상단의 "Table of available packages, sorted by name" 클릭합니다.
3) 설치하고자 하는 package의 알파벳을 찾습니다. (본 예에서는 "TSA" package를 설치하고자 하므로 상단의 "T" 알파벳을 누른 후에 "TSA" 나올 때까지 스크롤바를 내려서 찾았습니다. Ctrl+F 한다음에 "TSA" 키워드를 넣고 찾아도 됩니다)
4) 찾은 package 이름을 클릭합니다. (본 예에서는 아래 캡쳐처럼 "TSA" package 를 클릭)
5) 압축되어 있는 package를 다운로드 합니다.
- 사용하는 OS에 맞게 다운로드 합니다. (본 예에서는, 저는 Windows OS를 사용하므로 중앙에 위치한 Windows binaries 의 r-release: TSA_1.01.zip 파일을 다운로드 함)
- ※ package에 따라서는 상단에 'Depends' 라고 쓰여있는 곳에 package가 있으면 같이 다운로드를 해서 설치를 해줘야 합니다. 자동차가 엔진(예: TSA package)만 있다고 움직이는게 아니고, 네개의 바퀴(예: leaps, locfit, mgcv, tseries package) 도 있어야지 굴러갈 수 있으므로 엔진 설치할 때 바퀴도 덩달아서 같이 설치해줘야 한다고 생각하시면 편하겠습니다.
(이런 경우 install.packages("") 함수를 사용하면 콘솔 창에 원래 설치하려고 했던 package 외에도 Depends packages 가 자동으로 주욱 깔리는 걸 본적이 있을 겁니다. 현재는 네트워크 망이 막혀서 자동으로 설치가 안되는 상황을 가정하고 설명하는 중이므로, 자동으로 못깔리므로 수동으로 다운로드해서 깔아줘야 한다는 뜻입니다.)
만약 Depends 에 있는 package (본 예에서는 leaps, locfit, mgcv, tseries package) 를 먼저 설치하지 않은 상태에서 바로 본론으로 들어가서 TSA_1.01.zip 을 설치하려고 하면 아래와 같은 에러 메시지가 뜰겁니다.
> install.packages("C:/Users/Owner/Downloads/TSA_1.01.zip", repos = NULL, type = "win.binary") Installing package into ‘C:/Users/Owner/Documents/R/win-library/3.2’ (as ‘lib’ is unspecified) package ‘TSA’ successfully unpacked and MD5 sums checked > library(TSA) Error: ‘leaps’에 의해 요구된 패키지 ‘TSA’를 찾을 수 없습니다 In addition: Warning message: 패키지 ‘TSA’는 R 버전 3.2.4에서 작성되었습니다
|
6) 다운로드 완료
7) Rstudio > Tools > Install Packages... 메뉴 선택
8) install Packages 팝업 창이 뜨면 "Install from: Package Archive File (.zip; tar.gz)" 를 선택합니다.
9) "Package archive" 의 "Browse" 단추를 누르면 윈도우즈 탐색기가 뜹니다. 그러면 (6)번에서 보이는 package download 해놓은 폴더로 가서 방금 전에 다운로드한 package 압축파일을 선택합니다.
그리고 팝업창의 하단에 "Install" 단추를 누르면 됩니다.
> install.packages("C:/Users/Owner/Downloads/leaps_2.9.zip", repos = NULL, type = "win.binary") Installing package into ‘C:/Users/Owner/Documents/R/win-library/3.2’ (as ‘lib’ is unspecified) package ‘leaps’ successfully unpacked and MD5 sums checked
|
10) 나머지 package들(본 예에서는 locfit_1.5-9.1, mgcv_1.8-12, tseries_0.10-34, TSA_1.01)도 (9)번에서 했던 방법대로 설치를 해줍니다.
> install.packages("C:/Users/Owner/Downloads/locfit_1.5-9.1.zip", repos = NULL, type = "win.binary") Installing package into ‘C:/Users/Owner/Documents/R/win-library/3.2’ (as ‘lib’ is unspecified) package ‘locfit’ successfully unpacked and MD5 sums checked > install.packages("C:/Users/Owner/Downloads/mgcv_1.8-12.zip", repos = NULL, type = "win.binary") Installing package into ‘C:/Users/Owner/Documents/R/win-library/3.2’ (as ‘lib’ is unspecified) package ‘mgcv’ successfully unpacked and MD5 sums checked > install.packages("C:/Users/Owner/Downloads/tseries_0.10-34.zip", repos = NULL, type = "win.binary") Installing package into ‘C:/Users/Owner/Documents/R/win-library/3.2’ (as ‘lib’ is unspecified) package ‘tseries’ successfully unpacked and MD5 sums checked> install.packages("C:/Users/Owner/Downloads/TSA_1.01.zip", repos = NULL, type = "win.binary") Installing package into ‘C:/Users/Owner/Documents/R/win-library/3.2’ (as ‘lib’ is unspecified) package ‘TSA’ successfully unpacked and MD5 sums checked |
11) 마지막으로 library(package name) 함수로 로딩합니다.
(본 예에서는 library(TSA) 로 로딩을 했는데요, 중간에 보니 Error 메시지로 'quadprog'이라고 불리는 패키지가 없습니다.. 라고 떴네요. ㅋㅋ ^^; 찾아보니 Functions to solve Quadratic Programming Problems 해주는 package가 quadprog 인데요, 이것도 위에 안내해준 방법대로 설치하고 나서 다시 한번 library(TSA) 하면 Error 메시지 없이 잘 설치될겁니다... package 수동설치 방법 설명하는게 이번 포스팅의 목적이므로 quadprog 수동설치 예시는 더이상은 하지않겠습니다)
> library(TSA) 필요한 패키지를 로딩중입니다: leaps 필요한 패키지를 로딩중입니다: locfit locfit 1.5-9.1 2013-03-22 필요한 패키지를 로딩중입니다: mgcv 필요한 패키지를 로딩중입니다: nlme This is mgcv 1.8-12. For overview type 'help("mgcv-package")'. 필요한 패키지를 로딩중입니다: tseries Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : ‘quadprog’이라고 불리는 패키지가 없습니다 In addition: Warning messages: 1: 패키지 ‘TSA’는 R 버전 3.2.4에서 작성되었습니다 2: 패키지 ‘leaps’는 R 버전 3.2.4에서 작성되었습니다 3: 패키지 ‘locfit’는 R 버전 3.2.4에서 작성되었습니다 4: 패키지 ‘mgcv’는 R 버전 3.2.4에서 작성되었습니다 5: 패키지 ‘tseries’는 R 버전 3.2.4에서 작성되었습니다
|
그리 어렵거나 복잡한 것은 아닌데요, 그래도 혹시 여기까지 쭉~ 읽어보시고 귀찮다 싶으시면 사내 네트워크 보안담당자에게 찾아가서 CRAN 사이트는 인증된 사이트로 열어주세요...라고 부탁(혹은 팀장 품의?) 하시면 됩니다.
참고로, Python 사용자라면 SSL 인증 문제로 Python 패키지 설치가 안될 때는 http://rfriend.tistory.com/304 를 참고하세요.
많은 도움이 되었기를 바랍니다.
이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^