Як я можу встановити нову версію R в моєму власному каталозі, наприклад, /local/data/project/behi
.
Як я можу встановити нову версію R в моєму власному каталозі, наприклад, /local/data/project/behi
.
Відповіді:
Найпростіший спосіб зробити це - встановити R з джерела :
$ 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
Другий к останній крок - критичний. Він налаштовує R для встановлення у підкаталог вашого власного домашнього каталогу.
Щоб запустити його на Linux, macOS та подібних системах, додайте $HOME/R/bin
до своїх PATH
. Тоді команди оболонки люблять R
і Rscript
будуть працювати.
У macOS у вас є інша альтернатива: створитиR.app
та встановити її в приватну Applications
папку користувача. Для цього вам потрібно встановити Xcode.
Ви можете --prefix=$HOME
замість цього подарувати . Це встановлює R на верхньому рівні вашого домашнього каталогу, так що R
і Rscript
бінарні файли опиняються в ньому $HOME/bin
, що, ймовірно, вже є у вашого користувача PATH
. Мінус полягає в тому, що це робить подальшу деінсталяцію більш важкою, оскільки R переплутається серед вашого іншого $HOME
вмісту.
(Якщо це перше, що ви встановили $HOME/bin
, вам, можливо, доведеться вийти із системи та знову увійти, щоб отримати це у своєму PATH
, оскільки це часто додається умовно, лише якщо він $HOME/bin
існує під час входу.)
Ця загальна схема стосується великої кількості програмного забезпечення Unix, яке можна встановити з вихідного коду. Якщо в програмному забезпеченні є configure
сценарій, він, ймовірно, розуміє --prefix
варіант, а якщо ні, зазвичай є альтернатива з тим же ефектом.
Ці особливості є загальними з ряду причин. У міру зменшення порядку ймовірності:
Безпечний дефолт ( /usr/local
) не є правильним $prefix
у всіх ситуаціях. Обставини можуть диктувати що - то інше , наприклад , як /usr
, /opt/$PKGNAME
і т.д.
Бінарні системи побудови пакунків ( RPM , DEB , PKG , Cygport ...) зазвичай збирають та встановлюють пакет у спеціальний каталог інсценізацій, а потім упаковують його таким чином, щоб він розширювався до потрібного місця установки.
Ваш випадок, коли ви не можете root
встановити програмне забезпечення у типовому місці, тому ви $HOME
замість цього встановите .
./configure --prefix=$HOME/R --enable-R-shlib
переконатися, що ви збираєте R-бібліотеку. В іншому випадку RStudio скаржиться.
configure: error: --with-readline=yes (default) and headers/libs are not available make: *** No targets specified and no makefile found. Stop.
Можна також скористатися обгортковою програмою Renv .
витяг
Просте управління версіями R: Renv
Renv дозволяє легко перемикатися між декількома версіями R. Це простий, ненав’язливий характер та дотримується традицій UNIX, що стосуються одноцільових інструментів, які добре справляються з одним.
Ренв робить…
- Дозволяє змінювати глобальну R-версію на основі кожного користувача.
- Забезпечте підтримку версій на проект R.
- Дозволяє змінювати версію R із змінною середовища.
Створити з джерела з ./configure --prefix=/local/data/project/behi ; make ; make install
Якщо ви встановлюєте з пакету RPM, і він був створений з переміщенням, ви можете використовувати його
rpm ... --prefix /local/data/project/behi
Але не всі пакунки побудовані з переміщених бінарних файлів, і я не думаю, що пакети Debian мають такий варіант (хоча ви можете досягти успіху dpkg --instdir
).