Como instalar os devtools do R e digitalizar?

8

Preciso de devtools porque preciso da função install_github para instalar o pacote não-CRAN digitalizado aqui . Eu instalei Rpor

sudo apt-get install r-cran-robustbase

Não instalei os pacotes do R imediatamente, como propõe a resposta de terdon, mas consegui corrigir as permissões:

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

que eu acho que é a configuração padrão. Eu tive que fazer o que a resposta da rcs propõe, para instalar com sucesso devtoolse tpoisot/digitizeapenas com

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')

A saída do último comando pode ser

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

Faça, install_github('tpoisot/digitize', force = TRUE)mas você pode obter

...
'/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)

Não consegui encontrar uma maneira de instalar digitalizar sem sudo. Faça isso sudo Re repita o mesmo e você obtém

...
'/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)

Adicione masiao grupo existente staffpara trabalhar sem sudono R; que você precisa também em uma nova instalação

sudo usermod -a -G staff masi

Testes de instalação

  1. Eu sigo o guia aqui . Eu começo Rem $HOME/Pictures/sem sudoe usar sua imagem de teste aqui .

  2. Selecione quatro pontos nos eixos com o mouse cal = digitize::ReadAndCal('Rintro-snail1.jpg')

insira a descrição da imagem aqui

  1. Faça data.points = digitize::DigitData(col = 'red')e escolha manualmente os pontos que são seus pontos de dados

insira a descrição da imagem aqui

  1. Fecho a janela Plot clicando duas vezes.

  2. Faça df = digitize::Calibrate(data.points, cal, 0.1, 0.4, 0.0, 0.6)e vendodf

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

    Fazendo 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
    

Detalhes da instalação

  • Dentro Re semsudo

    > .Library
    [1] "/usr/lib/R/library"
    > > .libPaths()
    [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
    [3] "/usr/lib/R/library"  
    
  • Comando ls /usr/lib/R/library/que não lista devtools. Por quê?

    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
    
  • Comando 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
    
  • Comando 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
    
  • Comando 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) fica carregado

Ferramentas diferenciais

Razões para erros anteriores

  • Nenhum sistema limpo: sistemas que foram atualizados a partir de 14.04, 15.10, etc.
  • Permissões / proprietários desarrumados por causa da coisa anterior.
  • Próprios erros no processo.
  • Não há backups em caso de falha.
  • ...
  • documentos ausentes

Sistema: Ubuntu 16.04 64 bits em uma instalação limpa
Hardware: Dell PC 2013, Macbook Air 2013-mid, ...

Léo Léopold Hertz 준영
fonte
Não consigo reproduzir isso no meu sistema Arch. Instalando devtoolsatravés sudo R, deixe-me executar a library(devtools)partir de uma sessão R não-sudo. Adicione a saída de i) .Libraryexecutar a partir de uma Rsessão normal e ii) de sudo Re iii) verifique se há um devtoolssubdiretório no caminho fornecido por esses comandos. No meu sistema, está em /usr/lib64/R/library/devtools/.
terdon
OK, existe um devtoolssubdiretório /usr/lib/R/library?
terdon
Meu palpite é que a instalação não foi realmente bem-sucedida então. Tente novamente e preste muita atenção à saída. Você realmente conseguiu executar library(devtools)e carregar a biblioteca com sucesso?
terdon
OK, acho que sei qual é o problema. Mais uma coisa, o que você ganha se fugir .libPaths()do R?
terdon
1
Argh, OK, e você tem um subdiretório de devtools /usr/local/lib/R/site-library? Você provavelmente faz. Em caso afirmativo, consulte minha resposta (recentemente) atualizada.
terdon

Respostas:

11

httrimporta o opensslpacote que precisa como requisito do sistema libssl-dev( sudo apt install libssl-dev)

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

O curlpacote precisa como requisito do sistema libcurl4-openssl-dev:

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

Portanto, para instalar, você precisará executar:

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

Em seguida, inicie um shell R com sudo Re:

install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install_github('tpoisot/digitize')
rcs
fonte
Eu aceito esta resposta porque foi uma boa iniciação. Depois devtools, você precisa install.packages('readbitmap'), consulte o corpo para a versão final.
Léo Léopold Hertz 준영
2

Como regra geral, você não altera apenas as permissões dos diretórios do sistema! É para isso que serve o acesso root. Coloque as permissões de volta da maneira como as encontrou e da próxima vez em que executar sudo Re a install.packagespartir do shell R raiz resultante.

Agora, o motivo pelo qual você não pode instalar está aí na saída que você mostra:

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

Aparentemente, como explicado pelo rcs , no Ubuntu, você precisa instalar libssl-deve libcurl4-openssl-devprimeiro.


O próximo problema é que a instalação R do seu usuário raiz tem /usr/local/lib/R/site-librarycomo o primeiro diretório na saída de .libPathse que não está nos caminhos do seu usuário comum. Como é a primeira entrada para root, é onde a sua biblioteca foi instalada:

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

Portanto, uma solução simples é criar um arquivo chamado ~/.Rprofilee adicionar esta linha a ele:

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

Como alternativa, ou adicionalmente, você pode incluir uma linha como

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

Isso permitirá que você instale bibliotecas no diretório /home/masi/Rlibs (escolha o nome que desejar) no futuro e, assim, evite a necessidade sudo R.


Como alternativa, você pode definir a variável de ambiente R_LIBS_USERcomo /usr/local/lib/R/site-library/( /home/masi/Rlibsou onde quer que suas bibliotecas estejam sendo instaladas). Basta adicionar esta linha ao seu ~/.profile:

R_LIBS_USER=/usr/local/lib/R/site-library/
terdon
fonte
@Masi você tentou minhas sugestões acima? Você pode testar se esse é o problema executando R_LIBS_USER="/usr/local/lib/R/site-library/" Re, em R, execute library(devtools).
terdon
Se você executar .libPaths("/home/masi/Rlibs")depois .libPaths("/usr/local/lib/R/site-library/")disso, substituirá a configuração original. Se você deseja adicionar um diretório de biblioteca, deve ser:.libPaths(c(.libPaths(), "/home/masi/Rlibs") )
42-7