class: center, middle, inverse, title-slide # Instalación de paquetes desde código fuente ### Joselyn Chávez
11 de agosto de 2021 --- class: middle, center ## Este material posee una licencia tipo Creative Commons Attribution-ShareAlike 4.0 International License. ## Para conocer más sobre esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/ --- class: middle, center ## Material disponible en: ### https://comunidadbioinfo.github.io/cdsb2021_workflows ## Basado en el RStudioConf2020 workshop <br> What They Forgot, disponible en: ### https://rstd.io/wtf-2020-rsc --- # ¿A qué nos referimos con paqueterías de código fuente? En algunas ocasiones necesitaremos instalar paquetes que no se encuentran compilados, por ejemplo: - Paquetes en desarrollo de CRAN o Bioconductor. - Versiones anteriores de paquetes de CRAN o Bioconductor. - Paquetes que no se encuentran depositados en CRAN o Bioconductor, sino en repositorios personales como GitHub. - Paquetes que estás desarrollando de forma local. El paquete **remotes** será de gran utilidad. ??? De forma usual, los paquetes que instalamos desde algún repositorio como CRAN o Bioconductor son paquetes binarios que ya se encuentran compilados previamente. Existen algunas funciones que nos permiten instalar paquetes desde código fuente. Anteriormente, se solían utilizar las funciones install_* del paquete devtools; sin embargo, recientemente se creó el paquete **remotes** que contiene las mismas funciones pero está específicamente diseñado para ayudarnos a trabajar con paquetes desde código fuente. --- # ¿En dónde podemos encontrar el código fuente de un paquete? Si el paquete se encuentra disponible en CRAN, puedes encontrar el link al código fuente en la sección URL. <img src="data:image/png;base64,#img/source.png" width="50%" style="display: block; margin: auto;" /> --- # ¿En dónde podemos encontrar el código fuente de un paquete? Si el paquete se encuentra disponible en Bioconductor, puedes encontrar el link al código fuente en la sección Package Archives <img src="data:image/png;base64,#img/biocsource.png" width="50%" style="display: block; margin: auto;" /> Si el paquete se encuentra en GitHub o GitLab, necesitarás conocer el nombre de usuario y el nombre del paquete. --- # Instalando la última versión en desarrollo <br><br> - Si el paquete se encuentra depositado en CRAN podemos usar la función ```r remotes::install_dev("pkgname") ``` Por ejemplo, para instalar la versión en desarrollo de dplyr usaremos el comando ```r remotes::install_dev("dplyr") ``` --- # Instalando la última versión en desarrollo <br><br> - Si el paquete se encuentra en Bioconductor usaremos la siguiente función: ```r remotes::install_bioc("pkgname") ``` Por ejemplo, para instalar la versión en desarrollo de regutools, el paquete desarrollado por miembros de la CDSB, usaremos el comando ```r remotes::install_bioc("regutools") ``` --- class: chapter-slide # Es tu turno! Realiza la Actividad 1<br>10 min --- # Instalando paquetes desde GitHub Para poder instalar un paquete desde GitHub necesitaremos conocer el usuario del creador y el nombre del repositorio. ```r remotes::install_github("usuario/repositorio") ``` Por ejemplo, para instalar el paquete starwarssay desarrollado por Erick Cuevas (Erickcufe) utilizaremos el siguiente comando: ```r remotes::install_github("Erickcufe/starwarssay") ``` ??? Independientemente de si el paquete se encuentra en CRAN, Bioconductor, o ninguno de ellos, podemos instalar un paquete depositado en una cuenta de GitHub. Para poder instalar un paquete desde GitHub necesitaremos conocer el usuario del creador y el nombre del repositorio donde se encuentra depositado el paquete. Con esta información usaremos la siguiente función: --- class: chapter-slide # Es tu turno! Realiza la Actividad 2<br>5 min --- # Instalando versiones anteriores <br><br> - Si el paquete se encuentra depositado en CRAN usaremos la función ```r remotes::install_version("pkgname",version = "version") ``` Por ejemplo, para instalar la versión 1.0.0 de dplyr usaremos el comando ```r remotes::install_version("dplyr",version = "1.0.0") ``` --- # Instalando versiones anteriores <br><br> - Si el paquete se encuentra en Bioconductoor usaremos el paquete BiocManager ```r BiocManager::install(pkgs = "pkgname", version = "version") ``` Por ejemplo, para instalar la versión 1.1.1 de regutools usaremos el comando ```r BiocManager::install(pkgs = "regutools", version = "1.1.1") ``` --- # Instalando un paquete local <br> Ya sea que hagas un fork/clone de un paquete o si tienes un paquete en desarrollo, esta función te ayudará a instalar el paquete de manera local. ```r remotes::install_local() ``` Genera un directorio temporal para instalar un paquete de prueba ```r dir <- tempfile() dir.create(dir) ``` --- # Instalando un paquete local <br> Usaremos esta función para descargar el código fuente del paquete **testthat**. ```r pkg <- download.packages("testthat", dir, type = "source") ``` Al guardar los datos de la descarga en una variable, almacena la ubicación temporal. ```r remotes::install_local(pkg[, 2]) ``` --- class: chapter-slide # Es tu turno! Realiza la Actividad 3<br>10 min --- # Contribuyendo código Una ventaja de descargar el paquete de forma local es que puedes realizar cambios, probar que funciona de manera local y después contribuir (haciendo un pull-request). ¿Recuerdas el paquete **saludo**? - Clona el repositorio en tu computadora. ``` git clone https://github.com/ComunidadBioInfo/saludo.git ``` --- # Contribuyendo código - Instala el paquete desde su ubicación local ```r remotes::install_local("rutalocal") ``` Por ejemplo, si lo clonaste en Descargas el comando se verá similar a ```r remotes::install_local("~/Downloads/saludo/") ``` Ahora puedes abrir el proyecto del paquete y agregar tu código. --- class: chapter-slide # Es tu turno! Realiza la Actividad 4<br>15 min