R é unha entorna e linguaxe de programación cun enfoque á análise estatística. Esta linguaxe permite a instalación de paquetes de software elaborados por outros membros para extender a súa configuración básica. Nesta entrada definimos un conxunto de paquetes así como as dependencias que necesitan ser cubertas para a súa instalación dentro do sistema Debian e Fedora. Os paquetes están definidos como:
O primeiro é instalar os paquetes necesarios para poder levar a cabo a operación. En Debian:
apt-get -y install libxml2-dev libcurl4-openssl-dev default-jre default-jdk libssl-dev libsodium-dev libjq-dev libv8-dev libfontconfig1-dev libudunits2-dev gdal-config libprotobuf-dev unixodbc-dev libgdal-dev libzmq3-dev protobuf-compiler
E en Fedora:
sudo dnf install openssl-devel libcurl-devel curl libsodium-devel udunits2-devel zeromq-devel openjpeg2-devel jq-devel v8-devel protobuf-compiler turbojpeg-devel openjpeg-libs libjpeg-turbo-devel libjpeg-turbo gdal gdal-devel gdal-libs proj proj-devel geos-devel udunits2-devel sqlite-devel unixODBC-devel
Recordar, antes de instalar os paquetes, ter correctamente configurado Java. Para elo executar como administrador:
R CMD javareconf
Unha vez instalado todo o necesario levamos a cabo o seguinte proceso en R:
paquetes <- c("abind","alphavantager","anytime","aplpack","arm","askpass","assertive","assertive.base","assertive.code","assertive.data","assertive.data.uk","assertive.data.us","assertive.datetimes","assertive.files","assertive.matrices","assertive.models","assertive.numbers","assertive.properties","assertive.reflection","assertive.sets","assertive.strings","assertive.types","assertthat","backports","base","base64enc","BH","bit","bit64","bitops","blob","bookdown","boot","brew","brio","broom","bslib","cachem","callr","car","carData","cellranger","checkmate","class","classInt","cli","clipr","cluster","coda","codetools","colorspace","colourvalues","commonmark","compiler","config","conquer","corrplot","covr","cowplot","cpp11","crayon","credentials","crosstalk","crul","curl","d3Tree","data.table","datasets","DBI","dbplyr","desc","devtools","diffobj","digest","dplyr","DT","dtplyr","dygraphs","e1071","effects","ellipsis","estimability","evaluate","fansi","farver","fastmap","filelock","flexdashboard","forcats","forecast","foreign","formattable","Formula","fracdiff","fs","furrr","future","future.apply","gargle","generics","geojson","geojsonio","geojsonlint","geojsonR","geojsonsf","geometries","geoR","geosphere","gert","getPass","ggfortify","gghighlight","ggplot2","ggpmisc","ggpp","ggpubr","ggrepel","ggsci","ggsignif","gh","gitcreds","globals","glue","googledrive","googlePolylines","googlesheets4","gower","graphics","grDevices","grid","gridBase","gridExtra","gtable","gtools","haven","here","hexbin","highr","Hmisc","hms","htmlTable","htmltools","htmlwidgets","httpcode","httpuv","httr","ids","igraph","ini","insight","installr","ipred","IRdisplay","IRkernel","isoband","janitor","JavaGD","JGR","jpeg","jqr","jquerylib","jsonify","jsonlite","jsonvalidate","kableExtra","KernSmooth","keyring","knitr","labeling","Lahman","later","lattice","latticeExtra","lava","lazyeval","leafem","leaflet","leaflet.providers","leafpop","leaps","learnr","lifecycle","listenv","lme4","lmodel2","lmtest","lubridate","lwgeom","magrittr","mailR","manipulateWidget","mapproj","maps","maptools","mapview","markdown","MASS","Matrix","matrixcalc","MatrixModels","matrixStats","memoise","methods","mgcv","mi","mime","miniUI","minqa","mitools","mnormt","modelr","multcomp","munsell","mvtnorm","nabor","nlme","nloptr","nnet","nortest","nycflights13","numDeriv","odbc","openair","openssl","openxlsx","operator.tools","osrm","packrat","padr","parallel","parallelly","patchwork","pbapply","pbdZMQ","pbkrtest","PerformanceAnalytics","pillar","pkgbuild","pkgconfig","pkgload","plogr","plotly","plumber","plyr","png","polynom","praise","prettyunits","processx","prodlim","progress","progressr","promises","protolite","proxy","ps","psych","purrr","quadprog","Quandl","quantmod","quantreg","R.methodsS3","R.oo","R.utils","R6","randomcoloR","RandomFields","RandomFieldsUtils","rapidjsonr","rappdirs","raster","rcmdcheck","Rcmdr","RcmdrMisc","RColorBrewer","Rcpp","RcppArmadillo","RcppEigen","RCurl","rdrop2","readODS","readr","readstata13","readxl","recipes","relimp","rematch","rematch2","remotes","renv","repr","reprex","reticulate","rex","rgdal","rgeos","rgl","riingo","rio","rJava","RJDBC","RJDemetra","rlang","rmarkdown","RODBC","roxygen2","rpart","rprojroot","rsample","rsconnect","RSQLite","rstatix","rstudioapi","Rtsne","rversions","rvest","rzmq","s2","sandwich","sass","satellite","scales","scico","seasonal","selectr","sem","servr","sessioninfo","sf","sfheaders","shiny","shinyjs","shinythemes","slider","snakecase","sodium","sortable","sourcetools","sp","sparklyr","SparseM","spatial","splancs","splines","splus2R","SQUAREM","statmod","stats","stats4","stplanr","stringi","stringr","survey","survival","svglite","sys","systemfonts","tcltk","tcltk2","tensorflow","testthat","TH.data","tibble","tidyquant","tidymodels","tidyr","tidyselect","tidyverse","timeDate","timeSeries","timetk","tinytex","tmvnsim","tools","treemap","triebeard","tseries","TTR","tzdb","unikn","units","urca","urltools","usethis","utf8","utils","uuid","V8","vctrs","viridis","viridisLite","vroom","waldo","warp","webshot","whisker","withr","wk","x13binary","xfun","XLConnect","xlsx","xlsxjars","xml2","xopen","xtable","xts","yaml","zip","zoo")
No caso de openSUSE algúns paquetes dependentes de JAVA van fallar na súa compilación. Isto é debido a que dependen dun paquete que no repositorio EPEL de Fedora denomínase v8-devel
. Este paquete non está dispoñible en openSUSE, salvo para versións anteriores e pertencentes a repositorios de terceiros. Para solucionar isto, seguimos a solución proposta que se amosa na páxina de ropensci.org. Nesta páxina amósase a opción de instalar V8 directamente en R. Para elo executaremos en R os seguintes comandos:
Sys.setenv(DOWNLOAD_STATIC_LIBV8=1)
install.packages("V8")
Recordar volver a executar o comando de reconfiguración de JAVA. Posteriormente executamos:
for(i in paquetes){ if(!i %in% installed.packages()){ cat(paste0("Instalando ",i,"\n")) install.packages(i) }else{ cat(paste0("Paquete ",i," instalado\n")) } }