Як я можу встановити нову версію 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).