'R package가 네트워크 보안때문에 설치가 안되는 경우'에 해당되는 글 1건

  1. 2016.03.24 R Package 네트워크 보안 때문에 설치가 안되는 경우 어떻게 해야 하나? (7)

요즘에 개인정보, 금융정보를 다루거나 기술 기반의 제조회사의 경우 정보보안 (내부 대외비의 외부 유출 방지, 외부 해커의 침입 방지) 이슈가 커지다보니 인터넷망 사용에 제약이 가해지는 경우가 많습니다.

 

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 를 참고하세요.

 

많은 도움이 되었기를 바랍니다.

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

Posted by R Friend R_Friend

댓글을 달아 주세요

  1. 2017.08.22 11:16  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

    • R Friend R_Friend 2017.08.22 11:35 신고  댓글주소  수정/삭제

      안녕하세요. 에러 메시지가 정확히 어떤 것인지 몰라 서 답변 드리기가 좀 애매한데요, 추측해서 몇개 의견 드리자면요,

      (1) SSL(secure socket layer) 때문에 에러 났을 경우

      : 패키지 다운로드 URL을 https 대신에 http 로 사용해보시지요.

      (2) 위 방법으로 안되면
      options(download.file.method = "wininet") 로 설정해 보시지요.
      (Windos OS, R 3.2 이상 기준)

      R버전이랑 OS 에 따라서 method 가 다른데요, 아래 사이트 참고하세요
      (참고 : https//support.rstudio.com/hc/en-us/articles/206827897 )

      (3) 위 방법도 안되면 RStudio 들어가셔서
      Tools -> Global Options -> Packages -> Use Internet Explorer library/proxy for HTTP 체크 해제

      Tools -> Global Options -> Packages -> Use secure download method for HTTP 체크 해제

      해보시지요.

    • R Friend R_Friend 2017.08.22 13:46 신고  댓글주소  수정/삭제

      저는 겪어보지 못한 에러여서 어떻게 대응해야 할지 잘 모르겠네요.

      KoNLP 패키지면 전희원님께서 만드신 패키지일거예요.

      freesearch.pe.kr 블로그가 전희원님 블로그인데요, 패키지 제작하신분께 직접 여쭤보는게 좋겠습니다.

  2. 비밀글 2017.08.22 12:47  댓글주소  수정/삭제  댓글쓰기

    비밀글입니다.

    • R Friend R_Friend 2017.08.22 13:46 신고  댓글주소  수정/삭제

      저는 겪어보지 못한 에러여서 어떻게 대응해야 할지 잘 모르겠네요.

      KoNLP 패키지면 전희원님께서 만드신 패키지일거예요.

      freesearch.pe.kr 블로그가 전희원님 블로그인데요, 패키지 제작하신분께 직접 여쭤보는게 좋겠습니다.

  3. 2017.08.22 17:38  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다