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.

Thomas
fonte
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".
Shane
fonte
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/

rcs
fonte
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")
Eduardo Leoni
fonte
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

ReneWang
fonte
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.

Dodgie
fonte
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
haridsv
fonte
21
R CMD build --binaryestá obsoleto; use em R CMD INSTALL --buildvez disso
f3lix 10/04/12