Como instalo um pacote R a partir da fonte?


392

Um amigo me enviou ao longo desta grande tutorial sobre webscraping NYTimes com R . Eu realmente adoraria tentar. No entanto, o primeiro passo é instalar um pacote chamado RJSONIO da fonte.

Conheço R razoavelmente bem, mas não tenho ideia de como instalar um pacote a partir da fonte.

Estou executando o Mac OSX.


11
Isso está intimamente relacionado: stackoverflow.com/questions/11105131/…
GSee

Respostas:


487

Se você possui o arquivo localmente, use install.packages()e defina o repos=NULL:

install.packages(path_to_file, repos = NULL, type="source")

Onde path_to_filerepresentaria o caminho completo e o nome do arquivo:

  • No Windows, ele será algo parecido com isto: "C:\\RJSONIO_0.2-3.tar.gz".
  • No UNIX que será parecido com este: "/home/blah/RJSONIO_0.2-3.tar.gz".

2
Isso também funciona se file_name_and_pathfor o repositório de origem local de um pacote R.
Faheem Mitha

11
Observe que a INSTALL_optsopção pode ser usada para passar as opções para R CMD INSTALL. Por exemplo, "--no-multiarch"
Andy Barbour

2
install.packages ("/ tmp / shiny_0.13.1.tar.gz", repos = NULL, type = "source") eu recebo este erro: -ksh: erro de sintaxe: `('inesperado
iaav

3
Como o @Cerin apontou, você precisa cuidar da extensão. Ocorreu um erro "(como 'lib' não está especificado)" no R com arquivos .zip. Tudo funciona bem depois de alterar a extensão para .tar.
Mohamed Hasan

2
Vale ressaltar que, porque repos = NULLessa abordagem não instalará dependências, por exemplo, do CRAN. esta resposta sugere devtools::install_local(path_to_file)qual para mim é mais simples (menos argumentos a fornecer) e melhor (instala dependências também).
mac

97

Faça o download do pacote de origem, abra Terminal.app, navegue até o diretório em que você possui o arquivo e execute:

R CMD INSTALL RJSONIO_0.2-3.tar.gz

Observe que isso só será bem-sucedido quando: a) o pacote não precisar de compilação ou b) as ferramentas de sistema necessárias para compilação estiverem presentes. Consulte: https://cran.r-project.org/bin/macosx/tools/


3
Tentei isso e ocorreu um erro: Madjoro-MacBook-Pro: ~ Madjoro $ R CMD INSTALAR RJSONIO_0.2-3.tar.gz Aviso: pacote inválido 'RJSONIO_0.2-3.tar.gz' Erro: ERRO: sem pacotes especificado

11
Você deve especificar o caminho correto para o arquivo .tar.gz e as ferramentas XCode ( developer.apple.com/TOOLS/Xcode ) são necessárias.
rcs

11
Existe uma maneira de criar o .zip binário a partir da fonte?
haridsv

5
Encontrou a solução, você precisa usar a opção --binary.
haridsv

Quantas vezes você veio aqui porque digitou instalar em vez de INSTALAR?
Brandon Bertelsen

50

Você pode instalar diretamente do repositório (observe o type="source"):

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source")

3
Tentei isso e ocorreu um erro: * Instalando o pacote de origem 'RJSONIO' ... ** libs ** arch - i386 sh: make: comando não encontrado ERRO: falha na compilação do pacote 'RJSONIO' RMate interrompido na linha 3 * Removendo ' /Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO 'Os pacotes baixados estão em' / private / var / folders / Ey / EyzhYjoKESmsmsZ6K87PeU +++ TI / -Tmp- / Rtmpe3C96p / uploaded_packages 'Atualizando HTML índice de pacotes em '.Library' Mensagem de aviso: Em install.packages ("RJSONIO", repos = " omegahat.org/R " ,: a instalação do pacote 'RJSONIO' tinha status de saída diferente de zero

6
Você tem as ferramentas de desenvolvedor instaladas? Eles vêm no DVD de instalação do Mac OS X. Como este pacote possui código C, você precisará de um compilador para instalá-lo a partir da fonte.
Eduardo Leoni

11
Eu suspeito que não tenho as ferramentas de desenvolvedor instaladas. Pelo menos, não me lembro de instalá-los. Obrigado!

4
Se você estiver fazendo isso no Windows, poderá obter as ferramentas do desenvolvedor em murdoch-sutherland.com/Rtools ... Ao instalar, marque a caixa que diz para atualizar seu caminho (pode ser um pouco difícil de ler ... . verifiquei apenas a caixa desmarcada que vem para cima)
Dan Goldstein

27

Uma dica suplementarmente útil (mas trivial) para instalar versões mais antigas de pacotes a partir do código-fonte.

Primeiro, se você chamar "install.packages", ele sempre instala o pacote mais recente do repo. Se você deseja instalar a versão mais antiga dos pacotes, por exemplo, para compatibilidade, é possível chamar install.packages ("url_to_source", repo = NULL, digite = "source"). Por exemplo:

install.packages("http://cran.r-project.org/src/contrib/Archive/RNetLogo/RNetLogo_0.9-6.tar.gz", repo=NULL, type="source")

Sem baixar manualmente os pacotes para o disco local e alternar para a linha de comando ou instalar a partir do disco local, achei muito conveniente e simplifique a chamada (uma etapa).

Mais: você pode usar este truque com o dev_mode da biblioteca devtools, para gerenciar diferentes versões dos pacotes:

Referencia: doc devtools


9

No cran , você pode instalar diretamente de um endereço de repositório do github. Então, se você quiser o pacote em https://github.com/twitter/AnomalyDetection:

library(devtools)
install_github("twitter/AnomalyDetection")

faz o truque.


8

Além disso, você pode criar o pacote binário usando a opção --binary.

R CMD build --binary RJSONIO_0.2-3.tar.gz

21
R CMD build --binaryestá obsoleto; use em R CMD INSTALL --buildvez disso
f3lix 10/04/12
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.