Zainstaluj R w moim własnym katalogu

34

Jak mogę zainstalować nową wersję R we własnym katalogu, np /local/data/project/behi.

użytkownik3925736
źródło
1
Możesz to zrobić, zaczynając od źródła; ale jeśli musisz zapytać, zgaduję, że nie jesteś w stanie tego zrobić. Powiedz nam, z jakiego systemu korzystasz i dlaczego jesteś zainteresowany nową wersją.
vonbrand,
Instalacja specyficzna dla wersji przy użyciu kodu źródłowego różni się znacznie od instalacji przy użyciu YUM lub APT. Zależy to od wersji systemu operacyjnego i liczby zależności, które należy spełnić, aby instalacja zakończyła się powodzeniem. Udokumentowałem instalację R 3.3.3 na SLES11 SP3 w hashprompt.blogspot.com/2017/06/… Mam nadzieję, że może pomóc w instalacji na systemach Linux.
Baban Gaigole

Odpowiedzi:

43

Najłatwiej to zrobić, instalując R ze źródła :

$ wget http://cran.rstudio.com/src/base/R-3/R-3.4.1.tar.gz
$ tar xvf R-3.4.1.tar.gz
$ cd R-3.4.1
$ ./configure --prefix=$HOME/R
$ make && make install

Krok od ostatniego do ostatniego jest kluczowy. Konfiguruje R do zainstalowania w podkatalogu własnego katalogu domowego.

Aby uruchomić go w systemie Linux, macOS i podobnych systemach, dodaj $HOME/R/bindo swojego PATH. Następnie polecenia powłoki takie jak Ri Rscriptbędą działać.

W systemie macOS istnieje inna alternatywa: skompilujR.app i zainstaluj go w prywatnym Applicationsfolderze użytkownika. Aby to zrobić, musisz mieć zainstalowany Xcode.

Zamiast tego możesz rozważyć podanie --prefix=$HOME. To instaluje R na najwyższym poziomie twojego katalogu domowego, tak że Ri Rscriptbinaria kończą się w $HOME/bin, co prawdopodobnie jest już w twoim użytkowniku PATH. Minusem jest to, że utrudnia to późniejszą dezinstalację, ponieważ R byłby mieszany z innymi $HOMEtreściami.

(Jeśli jest to pierwsza rzecz, którą zainstalowałeś $HOME/bin, być może będziesz musiał się wylogować i zalogować ponownie, aby uzyskać to w sobie PATH, ponieważ często jest to dodawane warunkowo tylko wtedy $HOME/bin, gdy istnieje podczas logowania).

Ten ogólny wzorzec dotyczy dużej ilości oprogramowania uniksowego, które można zainstalować z kodu źródłowego. Jeśli oprogramowanie ma configureskrypt, prawdopodobnie rozumie tę --prefixopcję, a jeśli nie, zwykle istnieje alternatywa z tym samym efektem.

Funkcje te są wspólne z wielu powodów. Według malejącego prawdopodobieństwa według mojego doświadczenia:

  • Bezpieczna wartość domyślna ( /usr/local) nie jest właściwa $prefixwe wszystkich sytuacjach. Okoliczności mogą dyktować coś innego, takie jak /usr, /opt/$PKGNAMEitp

  • Systemy do budowania pakietów binarnych ( RPM , DEB , PKG , Cygport ...) zazwyczaj budują i instalują pakiet w specjalnym katalogu pomostowym, a następnie pakują go w taki sposób, aby rozwijał się w pożądanym miejscu instalacji.

  • Twój przypadek, w którym nie możesz rootzainstalować oprogramowania w typowej lokalizacji, więc instalujesz w nim $HOME.

Warren Young
źródło
1
Polecam ./configure --prefix=$HOME/R --enable-R-shlibupewnić się, że skompilowałeś bibliotekę współdzieloną R. W przeciwnym razie RStudio będzie narzekać.
akhmed
Nie zadziałało. Skrypt zakończył się naconfigure: error: --with-readline=yes (default) and headers/libs are not available make: *** No targets specified and no makefile found. Stop.
ApproachingDarknessFish,
@ApproachingDarknessFish: To nie ma nic wspólnego z tym pytaniem lub moją odpowiedzią. Brakuje niezbędnych warunków do zbudowania R w systemie z wybranymi opcjami. W szczególności brakuje Ci bibliotek programistycznych readline. Jeśli masz więcej problemów, opublikuj nowe pytanie.
Warren Young,
8

Możesz także użyć aplikacji opakowania Renv .

fragment

Proste zarządzanie wersją R: Renv

Renv pozwala łatwo przełączać się między wieloma wersjami R. Jest to proste, dyskretne i jest zgodne z tradycją UNIXowych narzędzi jednofunkcyjnych, które wykonują jedną rzecz dobrze.

Renv…

  • Pozwala zmienić globalną wersję R dla poszczególnych użytkowników.
  • Zapewnij wsparcie dla wersji R. dla projektu.
  • Umożliwia zastąpienie wersji R zmienną środowiskową.
slm
źródło
1

Kompiluj ze źródła za pomocą ./configure --prefix=/local/data/project/behi ; make ; make install

Jeśli instalujesz z pakietu RPM i został on utworzony relokowalny, możesz użyć

rpm ... --prefix /local/data/project/behi

Ale nie wszystkie pakiety są zbudowane z relokowalnymi plikami binarnymi i nie sądzę, że pakiety debian mają tę opcję (chociaż może się to powieść dpkg --instdir).

Dani_l
źródło