Jak mogę zainstalować nową wersję R we własnym katalogu, np /local/data/project/behi
.
Jak mogę zainstalować nową wersję R we własnym katalogu, np /local/data/project/behi
.
Odpowiedzi:
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/bin
do swojego PATH
. Następnie polecenia powłoki takie jak R
i Rscript
będą działać.
W systemie macOS istnieje inna alternatywa: skompilujR.app
i zainstaluj go w prywatnym Applications
folderze 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 R
i Rscript
binaria 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 $HOME
treś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 configure
skrypt, prawdopodobnie rozumie tę --prefix
opcję, 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 $prefix
we wszystkich sytuacjach. Okoliczności mogą dyktować coś innego, takie jak /usr
, /opt/$PKGNAME
itp
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 root
zainstalować oprogramowania w typowej lokalizacji, więc instalujesz w nim $HOME
.
./configure --prefix=$HOME/R --enable-R-shlib
upewnić się, że skompilowałeś bibliotekę współdzieloną R. W przeciwnym razie RStudio będzie narzekać.
configure: error: --with-readline=yes (default) and headers/libs are not available make: *** No targets specified and no makefile found. Stop.
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ą.
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
).