Как установить R's devtools и оцифровать?

8

Мне нужно DevTools , потому что мне нужна функция install_github установить пакет без CRAN оцифровать здесь . Я установил Rна

sudo apt-get install r-cran-robustbase

Я не установил пакеты R сразу, как предполагает ответ Тердона, но я мог исправить разрешения:

sudo chmod 755 /usr/lib/R/site-library/

который я считаю настройкой по умолчанию. Затем я должен был сделать так, как предлагает ответ rcs, чтобы успешно установить devtoolsи tpoisot/digitizeтолько с

sudo apt-get install libssl-dev
sudo apt-get install libcurl4-openssl-dev
R
install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install.packages('readbitmap')
install_github('tpoisot/digitize')

Вывод последней команды может быть

Skipping install for github remote, the SHA1 (d16e28b9) has not changed since last install.
  Use `force = TRUE` to force installation

Делай, install_github('tpoisot/digitize', force = TRUE)но ты можешь получить

...
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/tmp/RtmpX8eOLX/devtools57475d25a113/tpoisot-digitize-d16e28b'  \
  --library='/usr/local/lib/R/site-library' --install-tests 

Error: ERROR: no permission to install to directory ‘/usr/local/lib/R/site-library’
Error: Command failed (1)

Я не мог найти способ установить оцифровку без sudo. Так и делай sudo R, и повторяй тоже самое и получаешь

...
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/tmp/RtmpAlAT4e/devtools57e864e8c490/tpoisot-digitize-d16e28b'  \
  --library='/usr/local/lib/R/site-library' --install-tests 

* installing *source* package ‘digitize’ ...
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (digitize)

Добавить masiв существующую группу staffдля работы без sudoв R; который вам нужен также в новой установке

sudo usermod -a -G staff masi

Тесты установки

  1. Я следую за руководством здесь . Я начинаю Rв $HOME/Pictures/без sudoи использовать их тестовое изображение здесь .

  2. Выберите четыре точки на осях с помощью мыши cal = digitize::ReadAndCal('Rintro-snail1.jpg')

введите описание изображения здесь

  1. Сделайте data.points = digitize::DigitData(col = 'red')и выберите вручную точки, которые являются вашими точками данных

введите описание изображения здесь

  1. Я закрываю окно графика, нажимая второй раз.

  2. Делать df = digitize::Calibrate(data.points, cal, 0.1, 0.4, 0.0, 0.6)и видетьdf

           x  y
    1  71.50 NA
    2  65.65 NA
    ...
    24 26.80 NA
    

    дела head(df)

          x  y
    1 71.50 NA
    2 65.65 NA
    3 64.60 NA
    4 60.85 NA
    5 59.05 NA
    6 58.15 NA
    

Детали установки

  • В Rи безsudo

    > .Library
    [1] "/usr/lib/R/library"
    > > .libPaths()
    [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
    [3] "/usr/lib/R/library"  
    
  • Команда, ls /usr/lib/R/library/которая не перечисляет devtools. Почему?

    base       compiler   grid        methods   rpart    survival
    boot       datasets   KernSmooth  mgcv      spatial  tcltk
    class      foreign    lattice     nlme      splines  tools
    cluster    graphics   MASS        nnet      stats    translations
    codetools  grDevices  Matrix      parallel  stats4   utils
    
  • команда ls -la /usr/local/lib/R/

    total 12
    drwxrwsr-x 3 root staff 4096 touko 19 22:25 .
    drwxr-xr-x 5 root root  4096 touko 19 22:25 ..
    drwxrwsr-x 2 root staff 4096 touko 19 22:25 site-library
    
  • команда ls -la /usr/local/lib/

    total 20
    drwxr-xr-x  5 root root  4096 touko 19 22:25 .
    drwxr-xr-x 14 root root  4096 touko 19 22:13 ..
    drwxrwsr-x  4 root staff 4096 huhti 21 01:13 python2.7
    drwxrwsr-x  3 root staff 4096 huhti 21 01:08 python3.5
    drwxrwsr-x  3 root staff 4096 touko 19 22:25 R
    
  • команда R_LIBS_USER="/usr/local/lib/R/site-library/" R

     R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
     Copyright (C) 2015 The R Foundation for Statistical Computing
     Platform: x86_64-pc-linux-gnu (64-bit)
     ...
    
  • library(devtools) загружается

Дифференциальные инструменты

Причины предыдущих ошибок

  • Нет чистой системы: системы, которые были обновлены с 14.04, 15.10 и т. Д.
  • Перепутал разрешения / владельцев из-за предыдущего.
  • Собственные ошибки в процессе.
  • Нет резервных копий в случае сбоя.
  • ...
  • недостающие документы

Система: Ubuntu 16.04 64 бит в чистой установке.
Оборудование: Dell PC 2013, Macbook Air 2013-mid, ...

Лео Леопольд Герц 준영
источник
Я не могу воспроизвести это в моей системе Arch. Установив devtoolsчерез sudo R, позвольте мне запустить library(devtools)сеанс не-sudo R. Пожалуйста, добавьте выходные данные i) .Libraryзапуска из обычного Rсеанса и ii) из sudo Rи iii) проверки devtoolsподкаталога в пути, предоставленном этими командами. В моей системе это на /usr/lib64/R/library/devtools/.
Тердон
ОК, есть ли devtoolsподкаталог в /usr/lib/R/library?
Тердон
Я думаю, что установка на самом деле не была успешной. Попробуйте еще раз и обратите пристальное внимание на вывод. Вы действительно смогли запустить library(devtools)и успешно загрузить библиотеку?
Тердон
ОК, думаю, я знаю, в чем проблема. Еще одна вещь, что вы получаете, если вы бежите .libPaths()от R?
Тердон
1
Ааааа, хорошо, а у вас есть subdir devtools /usr/local/lib/R/site-library? Вы, вероятно, делаете. Если это так, см. Мой (недавно) обновленный ответ.
Тердон

Ответы:

11

httrимпортирует opensslпакет, который требуется как системное требование libssl-dev( sudo apt install libssl-dev)

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because openssl was not found. Try installing:
 * deb: libssl-dev (Debian, Ubuntu, etc)
...

curlПакет должен , как требования к системе libcurl4-openssl-dev:

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because libcurl was not found. Try installing:
 * deb: libcurl4-openssl-dev (Debian, Ubuntu, etc)
...

Итак, для установки вам нужно будет запустить:

sudo apt-get install libssl-dev
sudo apt-get install libcurl4-openssl-dev

Затем запустите оболочку R с помощью sudo Rи:

install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install_github('tpoisot/digitize')
система охлаждения реактора
источник
Я принимаю этот ответ, потому что это был хороший стартер. После devtools, install.packages('readbitmap')пожалуйста, смотрите тело для окончательной версии.
Лео Леопольд Герц 준영
2

Как правило, вы не просто меняете права доступа к системным каталогам! Для этого и нужен root-доступ. Поместите разрешения обратно так , как вы нашли их , и в следующий раз запустить sudo Rи install.packagesиз полученного, корень R оболочки.

Теперь причина, по которой вы не можете установить, находится прямо в выводе, который вы показываете:

ERROR: dependencies ‘httr’, ‘git2r’ are not available for package ‘devtools’

Видимо, как объясняет rcs , на Ubuntu вам нужно установить libssl-devи libcurl4-openssl-devсначала.


Следующая проблема заключается в том, что установка R вашего корневого пользователя имеет /usr/local/lib/R/site-libraryв качестве первого каталога в выходных данных, .libPathsа это не в пути вашего обычного пользователя. Так как это первая запись для root, вот где была установлена ​​ваша библиотека:

 Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

Итак, простое решение - создать файл с именем ~/.Rprofileи добавить в него следующую строку:

.libPaths("/usr/local/lib/R/site-library/")

В качестве альтернативы или дополнения вы можете добавить строку

   .libPaths("/home/masi/Rlibs")

Это позволит вам /home/masi/Rlibs в будущем устанавливать библиотеки в каталог (выбирайте любое имя по вашему желанию), что позволит избежать необходимости sudo R.


В качестве альтернативы, вы можете установить переменную среды R_LIBS_USERв /usr/local/lib/R/site-library/(или /home/masi/Rlibsили везде , где ваши библиотеки были установлены). Просто добавьте эту строку в ваш ~/.profile:

R_LIBS_USER=/usr/local/lib/R/site-library/
Тердон
источник
@Masi ты пробовал мои предложения выше? Вы можете проверить, что это проблема, запустив, R_LIBS_USER="/usr/local/lib/R/site-library/" Rа затем, в R, запустить library(devtools).
Тердон
Если вы выполните .libPaths("/home/masi/Rlibs")после .libPaths("/usr/local/lib/R/site-library/")этого заменит исходную настройку. Если вы хотите добавить каталог библиотеки, он должен быть.libPaths(c(.libPaths(), "/home/masi/Rlibs") )
42-