2012-09-20 10 views
5

Piszę protokół do powtarzalnej analizy przy użyciu pakietu wewnętrznego "MyPKG". Każdy użytkownik dostarczy własne pliki wejściowe; inne niż dane wejściowe, analizy powinny być prowadzone na tych samych warunkach. (np. abyśmy mogli wywnioskować, że różne wyniki wynikają z różnych plików wejściowych).Jak mogę zapewnić spójne środowisko R wśród różnych użytkowników na tym samym serwerze?

MyPKG jest w fazie rozwoju, więc library(MyPKG) załaduje tę ostatnią wersję, którą użytkownik skompilował w swojej lokalnej bibliotece. Będzie również ładować wszystkie zależności znalezione w ich lokalnych bibliotekach.

Ale chcę, aby każdy używał konkretnej wersji (MyPKG_3.14) do tej analizy, jednocześnie umożliwiając tworzenie nowszych wersji. Jeśli rozumiem poprawnie, "R --vanilla" załaduje te same zależności dla wszystkich.

Gdy skończymy, zachowamy środowisko pracy jako maszynę wirtualną, aby utrzymać stabilne i odtwarzalne środowisko. Dlatego wystarczy rozwiązanie tymczasowe (6 miesięcy).

Mam dwa potencjalne rozwiązania, ale nie jestem pewien, czy jest wystarczająca.

  1. poprosić administratora serwera, aby zainstalować MyPKG_3.14 w domyślnej ścieżce R, a następnie podać następujący kod w protokole:

    R --vanilla 
    library(MyPKG) 
    .... 
    

    lub

  2. kompilacji MyPKG_3.14 w miłym konkretna biblioteka, np lib.loc = "/home/share/lib/R/MyPKG_3.14", a następnie dostarczyć

    R --vanilla 
    library(MyPKG) 
    

  • Czy oba te podejścia wystarczających do zapewnienia, że ​​każdy jest uruchomiony ta sama wersja?
  • Czy jeden jest lepszy od drugiego?
  • Czy mogą pojawić się inne nieprzewidziane problemy?
  • Czy istnieje opcja standaryzacji wielu analiz?
  • Czy powinienem dołączyć test wyjścia z SessionInfo()?
  • Czy byłoby lepiej utworzyć jedno konto na serwerze, aby wszyscy mogli z niego korzystać?
+0

Świetne pytanie. Pracuję nad tym zagadnieniem w ramach większego projektu i planuję wydać bibliotekę, która wygeneruje ślady pochodzenia po wykonaniu. Łatwo byłoby porównać dwa ślady i zobaczyć, czy różnica dotyczy tylko nowych danych lub nowych bibliotek i można je zmienić w razie potrzeby, jeśli pojawią się różne wyniki. Wyślij mi wiadomość e-mail, aby uzyskać więcej informacji. – Maiasaura

+0

@Maiasaura Nie widzę twojego adresu e-mail. Czy zaczyna się od kram? –

+0

tak. Berkeley dot edu – Maiasaura

Odpowiedz

1

para punktów:

  • pomocą instalacji całego systemu pakietów, np plik binarny Debiana/Ubuntu dla R (w tym porty CRAN) spróbuje użyć /usr/local/lib/R/site-library (które użytkownicy mogą zainstalować również, jeśli zostaną dodani do grupy posiadającej katalog). W ten sposób wszyscy mają tę samą wersję
  • Użyj konfiguracji systemowej, np. wolisz $R_HOME/etc/ nad plikami dot poniżej ~/. Z tego samego powodu, pakiet Debian/Ubuntu oferuje miękkie linki w /etc/R/
  • Użyj faciltiów R, aby wysłać zapytanie do swoich pakietów (np. installed.packages()), aby zgłosić pakiety i wersje.
  • Używaj, o ile są dostępne, funkcji na poziomie systemu operacyjnego do wysyłania zapytań o wydanie i wersję systemu operacyjnego. Jest to jednak mniej wystandaryzowane.

Odnośnie ostatniego punktu mojej skrzynki w domu mówi

> [email protected]:~$ lsb_release -a | tail -4 
> Distributor ID: Ubuntu 
> Description: Ubuntu 12.04.1 LTS 
> Release:  12.04 
> Codename:  precise 
> [email protected]:~$ 

który jest początek.

+0

+ 1 bardzo pomocne porady daliście mi ostatnio do usunięcia "~/R/x86_64-pc-linux-gnu-biblioteka/2,15" – GSee

Powiązane problemy