Come installo un pacchetto R dal sorgente?


Risposte:


487

Se il file è presente localmente, utilizzare install.packages()e impostare repos=NULL:

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

Dove path_to_filerappresenterebbe il percorso completo e il nome del file:

  • In Windows sarà simile a questa: "C:\\RJSONIO_0.2-3.tar.gz".
  • Su UNIX che sarà simile a questa: "/home/blah/RJSONIO_0.2-3.tar.gz".

2
Questo funziona anche se file_name_and_pathè il repository di origine locale di un pacchetto R.
Faheem Mitha,

1
Nota che l' INSTALL_optsopzione può essere utilizzata per passare le opzioni a R CMD INSTALL. Ad esempio, "--no-multiarch"
Andy Barbour,

2
install.packages ("/ tmp / shiny_0.13.1.tar.gz", repos = NULL, type = "source") ottengo questo errore: -ksh: errore di sintassi: `('' imprevisto
iaav

3
Come ha sottolineato @Cerin, devi occuparti dell'estensione. Ho avuto un errore "(poiché" lib "non è specificato)" da R con archivi .zip. Funziona tutto bene dopo aver modificato l'estensione in .tar.
Mohamed Hasan,

2
vale la pena notare che repos = NULLquesto approccio non installa dipendenze, ad esempio da CRAN. questa risposta suggerisce devtools::install_local(path_to_file)quale per me è più semplice (meno argomenti da fornire) e migliore (installa anche le dipendenze).
mac,

97

Scarica il pacchetto sorgente, apri Terminal.app, vai alla directory in cui hai attualmente il file, quindi esegui:

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

Si noti che ciò avrà esito positivo solo se: a) il pacchetto non necessita di compilazione oppure b) sono presenti gli strumenti di sistema necessari per la compilazione. Vedi: https://cran.r-project.org/bin/macosx/tools/


3
Ho provato questo e ho ricevuto un errore: Madjoro-MacBook-Pro: ~ Madjoro $ R CMD INSTALL RJSONIO_0.2-3.tar.gz Avvertenza: pacchetto non valido 'RJSONIO_0.2-3.tar.gz' Errore: ERRORE: nessun pacchetto specificato

1
Devi specificare il percorso corretto per il file .tar.gz e sono richiesti gli strumenti XCode ( developer.apple.com/TOOLS/Xcode ).
rcs,

1
C'è un modo per compilare il file .zip binario dal sorgente?
Haridsv,

5
Trovato la soluzione, è necessario utilizzare l'opzione --binary.
Haridsv,

Quante volte sei venuto qui perché hai digitato install invece di INSTALL?
Brandon Bertelsen

50

Puoi installarlo direttamente dal repository (nota il type="source"):

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

3
Ho provato questo e ho ricevuto un errore: * Installazione del pacchetto sorgente 'RJSONIO' ... ** libs ** arch - i386 sh: make: comando non trovato ERRORE: compilazione fallita per il pacchetto 'RJSONIO' RMate interrotto alla riga 3 * Rimozione ' /Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO 'I pacchetti scaricati sono in' / private / var / cartelle / Ey / EyzhYjoKESmsmsZ6K87PeU +++ TI / -Tmp- / Rtmpe3C96p / download_packages 'HTML indice dei pacchetti in '.Library' Messaggio di avviso: In install.packages ("RJSONIO", repos = " omegahat.org/R " ,: l' installazione del pacchetto "RJSONIO" aveva uno stato di uscita diverso da zero

6
Hai gli strumenti per sviluppatori installati? Vengono nel dvd di installazione di Mac OS X. Poiché questo pacchetto ha un codice C, è necessario un compilatore per installarlo dal sorgente.
Eduardo Leoni,

1
Sospetto di non aver installato gli strumenti per sviluppatori. Almeno, non ricordo di averli installati. Grazie!

4
Se lo stai facendo su Windows, puoi ottenere gli strumenti per sviluppatori da murdoch-sutherland.com/Rtools ... assicurati di installare la casella che dice che aggiorna il tuo percorso (potrebbe essere un po 'difficile da leggere ... Ho appena spuntato la casella deselezionata che compare)
Dan Goldstein,

27

Un suggerimento utilissimo (ma banale) per l'installazione di versioni precedenti di pacchetti dal sorgente.

Innanzitutto, se si chiama "install.packages", installa sempre l'ultimo pacchetto dal repository. Se vuoi installare la versione precedente dei pacchetti, supponiamo che per compatibilità, puoi chiamare install.packages ("url_to_source", repo = NULL, type = "source"). Per esempio:

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

Senza scaricare manualmente i pacchetti sul disco locale e passare alla riga di comando o installare dal disco locale, ho scoperto che è molto conveniente e semplifica la chiamata (in un solo passaggio).

Inoltre: puoi usare questo trucco con dev_mode della libreria devtools, al fine di gestire diverse versioni dei pacchetti:

Riferimento: doc devtools


9

Da cran , è possibile installare direttamente da un indirizzo repository github. Quindi se vuoi il pacchetto su https://github.com/twitter/AnomalyDetection:

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

fa il trucco.


8

Inoltre, puoi creare il pacchetto binario usando l'opzione --binary.

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

21
R CMD build --binaryè deprecato; usa R CMD INSTALL --buildinvece
f3lix il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.