2016-06-15 2 views
17

반짝 이는 응용 프로그램을 개발하고 있으며 자동화 된 테스트 및 기능 설명서를 사용하기 위해 패키지 내에서 인터페이스를 개발하기 시작했습니다 (권장 here). 반짝 이는 응용 프로그램을 꾸러미로 개발하여 반짝이는 서버에 배포

나는 RStudio에서이 반짝 응용 프로그램을 개발하고 난 RStudio 내 실행 앱 버튼을 클릭하고 모든 작동 server.R 파일이 있습니다. github 저장소에 패키지를 커밋하고이 시점에서 반짝이는 서버에 설치하려면 devtoolsinstall_github 기능을 사용하십시오.

이제 서버에서 내 앱을 시작하는 방법에 대해 궁금합니다. 순진하게 패키지를 설치하고 server.R 파일을 가리키고 있다고 생각했지만, 어떻게 든 작동하지 않습니다. 문제가있는 곳을 잘 모릅니다.

내 두 번째 시도 ... 나는 기본적으로 내 패키지, 반짝 및 기타 필요한 패키지를로드하지만 어떻게 든가 없기 때문에 변수의 불평 반짝 서버가이 파일에 액세스 할 수있는 폴더에 app.R라는 파일을 생성 한

누군가 내게 조언을 줄 수 있습니까? 나는이 문제를 올바르게 질문하는 방법을 모르기 때문에 질문에 대답하게되어 기쁩니다. 미리 감사드립니다. 콜린 D 때문에 반짝 서버

에 배포

편집이 반짝 서버에서 이러한 패키지를 배포하는 방법 코멘트에 요청했다, 나는이 작업을 수행하는 방법을 보여줍니다 싶었다.

먼저 다음 명령을 사용하여 루트으로 명령 줄을 통해 반짝이는 서버에 직접 패키지를 설치합니다.

su - -c "R -e \"devtools::install_github('user/shinypackage')\"" 

다음 단계는 그럼 난이 캐싱 정도에 가끔 문제가 된 이후 반짝 서버를 다시 시작 패키지 폴더

chown -R shiny:shiny /usr/local/lib/R/site-library/shinypackage/ 

의 소유자를 변경하는 것입니다.

systemctl restart shiny-server 

다음은 내 반짝이는 앱을 업데이트 할 때 수행하는 단계입니다. 나는 우리가 아직해야 할

su - -c "R -e \"devtools::install_github('user/shinypackage')\"" & chown -R shiny:shiny /usr/local/lib/R/site-library/shinypackage/ & systemctl restart shiny-server 

한 가지 설정에 shiny-server.conf 파일의 디렉토리 단일 라인 루트로 다시 정상적으로 이렇게. 방금 패키지 경로 + ui.Rserver.R이 저장된 응용 프로그램 디렉토리를 추가했습니다.

location /shinypackage { 
    app_dir /usr/local/lib/R/site-library/shinypackage/application; 
    log_dir /var/log/shiny-server; 
    } 

은 그 때 나는 systemctl restart shiny-server를 사용하여 다시 서버를 다시 시작해야합니다.

이것은 우분투 서버에서 사용 중입니다.내가 독립 실행 형 패키지로 반짝 응용 프로그램을 만들 때

+0

저는 일상적인 문제로이 작업을 수행합니다. 나는 app 파일을 패키지의'inst' 디렉토리에 넣었고'launch_application'이라는 함수를 포함 시켰습니다.이 함수는 단순히 원하는 기본 인수로'runApp'를 호출했습니다. 응용 프로그램 파일은'system.file'을 통해 발견됩니다. – Benjamin

+0

내가 찾고있는 소리가납니다. 'inst' 폴더에 어떤 파일이 있습니까? 'launch_application' 함수와'library' 호출 만 호출하면됩니까? 나는 각 함수를'R' 폴더에있는 여분의 파일에 넣었으므로, 나는 그들을 내보낼 수 있고 패키지를로드 할 수 있기를 바랐다. ... – drmariod

답변

15

, 나는 보통 너무로 파일을 구성하십시오 R 디렉토리에서

:

  • 응용 프로그램을 지원하기 위해 내 모든 메소드 (이러한해야 그들은 ui.R, server.R, 또는 global.R 파일 중 하나에서 사용할 경우
  • launch_application 기능
) 내보낼 수

  • application/server.R
  • application/ui.R
  • application/global.R

구축하고 설치 한 후 이달 디렉토리에서

launch_application <- function(x, ...) 
{ 
    shiny::runApp(appDir = system.file("application", package = [my_pkg]), 
       ...) 
} 

: 16,

launch_application의 정의는 비슷합니다 패키지, 그럼 그냥 실행해야합니다.

library(my_pkg) 
launch_application(...) 
+0

아, 이제 알았다. 그래서'server.R'와'ui. R'은'application' 폴더에 들어가고'R' 폴더에 내 기능 만 남아 있습니다. 그래도 시도해 보겠습니다 ... – drmariod

+0

아마도 하나의 더 구체적인 질문입니다 ... 내 서버 파일에'DT :: renderDataTable'을 사용하고 있습니다. 어디 실제로 라이브러리를로드해야합니까? 필자는'description' 파일에 의존성으로'DT'를 넣었습니다. 이제'server.R'을 응용 프로그램 디렉토리로 옮겼으므로 패키지를 작성하는 동안 모든 종속성을 사용하지는 않습니다. – drmariod

+1

'추천'에'DT '를 적어두면 괜찮을 것입니다. – Benjamin

관련 문제