Mise à jour des dépendances R et amélioration du processus de build

Cette mise à jour apporte plusieurs améliorations : 
- Ajout d'un script R dédié pour l'installation des packages (install_R_packages.R)
- Refactorisation du Dockerfile pour une meilleure gestion des dépendances R et système
- Amélioration du script start-jupyterhub.sh avec gestion dynamique de docker-compose et vérification des timestamps
- Mise à jour de la documentation dans Readme.md pour refléter les nouvelles images Docker et les changements de structure
- Ajout de 'reserve' dans .gitignore
This commit is contained in:
Eric Coissac
2026-02-12 11:36:22 +01:00
parent 684195a04f
commit f6933978e9
5 changed files with 146 additions and 35 deletions

View File

@@ -0,0 +1,43 @@
#!/usr/bin/env Rscript
# Installer pak (lui-même en binaire si possible)
install.packages("pak", repos = sprintf("https://r-lib.github.io/p/pak/stable/%s/%s/%s", .Platform$pkgType, R.Version()$os, R.Version()$arch))
pak::pkg_install("cli")
# Détection automatique du système et installation de tous les paquets en binaire
pak::pkg_install(c(
"IRkernel",
"tidyverse",
"vegan",
"ade4",
"BiocManager",
"remotes",
"igraph",
"Rdpack"
))
# ------------------------------------------------------------
# Paquets Bioconductor (toujours via BiocManager)
# ------------------------------------------------------------
pak::pkg_install("bioc::biomformat")
# ------------------------------------------------------------
# Paquets depuis GitHub / dépôts git
# ------------------------------------------------------------
pak::pkg_install("metabaRfactory/metabaR")
pak::pkg_install("git::https://forge.metabarcoding.org/obitools/ROBIUtils.git")
pak::pkg_install("git::https://forge.metabarcoding.org/obitools/ROBITaxonomy.git")
pak::pkg_install("git::https://forge.metabarcoding.org/obitools/ROBITools.git")
pak::pkg_install("git::https://forge.metabarcoding.org/MetabarcodingSchool/biodiversity-metrics.git")
# ------------------------------------------------------------
# Installation du noyau Jupyter pour IRkernel
# ------------------------------------------------------------
# Si on est root -> installation système, sinon -> user
if (Sys.info()["user"] == "root") {
IRkernel::installspec(user = FALSE)
} else {
IRkernel::installspec(user = TRUE)
}
cat("\n✅ Tous les paquets R ont été installés avec succès.\n")