¿Cómo instalo un paquete R desde la fuente?

Respuestas:

487

Si tiene el archivo localmente, use install.packages()y configure repos=NULL:

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

Donde path_to_filerepresentaría la ruta completa y el nombre del archivo:

  • En Windows se verá algo como esto: "C:\\RJSONIO_0.2-3.tar.gz".
  • En UNIX que se verá como esto: "/home/blah/RJSONIO_0.2-3.tar.gz".
Shane
fuente
2
Esto también funciona si file_name_and_pathes el repositorio de origen local de un paquete R.
Faheem Mitha
1
Tenga en cuenta que la INSTALL_optsopción se puede utilizar para pasar opciones a R CMD INSTALL. Por ejemplo, "--no-multiarch"
Andy Barbour
2
install.packages ("/ tmp / shiny_0.13.1.tar.gz", repos = NULL, type = "source") me sale este error: -ksh: error de sintaxis: `('inesperado
iaav
3
Como señaló @Cerin, debes ocuparte de la extensión. Tuve un error "(ya que 'lib' no está especificado)" de R con archivos .zip. Todo funciona bien después de cambiar la extensión a .tar.
Mohamed Hasan
2
Vale la pena señalar eso porque repos = NULLeste enfoque no instalará dependencias, por ejemplo, de CRAN. esta respuesta sugiere devtools::install_local(path_to_file)que para mí es más simple (menos argumentos para proporcionar) y mejor (también instala dependencias).
mac
97

Descargue el paquete fuente, abra Terminal.app, navegue hasta el directorio donde tiene actualmente el archivo y luego ejecute:

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

Tenga en cuenta que esto solo tendrá éxito cuando: a) el paquete no necesita compilación ob) las herramientas del sistema necesarias para la compilación están presentes. Ver: https://cran.r-project.org/bin/macosx/tools/

rcs
fuente
3
Intenté esto y obtuve un error: Madjoro-MacBook-Pro: ~ Madjoro $ R CMD INSTALL RJSONIO_0.2-3.tar.gz Advertencia: paquete no válido 'RJSONIO_0.2-3.tar.gz' Error: ERROR: sin paquetes especificado
1
Debe especificar la ruta correcta al archivo .tar.gz y se requieren las herramientas XCode ( developer.apple.com/TOOLS/Xcode ).
rcs
1
¿Hay alguna manera de construir el .zip binario desde la fuente?
haridsv
55
Encontró la solución, debe usar la opción binaria.
haridsv
¿Cuántas veces has venido aquí porque escribiste instalar en lugar de INSTALAR?
Brandon Bertelsen
50

Puede instalar directamente desde el repositorio (tenga en cuenta lo siguiente type="source"):

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source")
Eduardo Leoni
fuente
3
Intenté esto y obtuve un error: * Instalando el paquete fuente 'RJSONIO' ... ** libs ** arch - i386 sh: make: comando no encontrado ERROR: la compilación falló para el paquete 'RJSONIO' RMate se detuvo en la línea 3 * Eliminando ' /Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO 'Los paquetes descargados están en' / private / var / carpetas / Ey / EyzhYjoKESmsmsZ6K87PeU +++ TI / -Tmp- / Rtmpe3C96p / descargar_paquetes 'Actualizando HTML índice de paquetes en '.Library' Mensaje de advertencia: En install.packages ("RJSONIO", repos = " omegahat.org/R " ,: la instalación del paquete 'RJSONIO' tenía un estado de salida distinto de cero
66
¿Tiene instaladas las herramientas de desarrollador? Vienen en el DVD de instalación de Mac OS X. Como este paquete tiene código C, necesitará un compilador para instalarlo desde la fuente.
Eduardo Leoni
1
Sospecho que no tengo instaladas las herramientas de desarrollador. Al menos, no recuerdo haberlos instalado. ¡Gracias!
44
Si está haciendo esto en Windows, puede obtener las herramientas de desarrollador de murdoch-sutherland.com/Rtools ... asegúrese de que al instalar marque la casilla que dice actualizar su ruta (puede ser un poco difícil de leer ... (solo marque la casilla no marcada que aparece)
Dan Goldstein
27

Una sugerencia adicionalmente útil (pero trivial) para instalar versiones anteriores de paquetes desde la fuente.

Primero, si llama "install.packages", siempre instala el último paquete de repo. Si desea instalar la versión anterior de los paquetes, por compatibilidad, puede llamar a install.packages ("url_to_source", repo = NULL, type = "source"). Por ejemplo:

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

Sin descargar manualmente los paquetes en el disco local y cambiar a la línea de comandos o instalar desde el disco local, descubrí que es muy conveniente y simplifico la llamada (un paso).

Además: puede usar este truco con dev_mode de la biblioteca devtools, para administrar diferentes versiones de paquetes:

Referencia: doc devtools

ReneWang
fuente
9

Desde cran , puede instalar directamente desde una dirección de repositorio de github. Entonces, si quieres el paquete en https://github.com/twitter/AnomalyDetection:

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

Hace el truco.

Dodgie
fuente
8

Además, puede compilar el paquete binario usando la opción --binary.

R CMD build --binary RJSONIO_0.2-3.tar.gz
haridsv
fuente
21
R CMD build --binaryes obsoleto; utilizar R CMD INSTALL --builden su lugar
f3lix