ETQ Agent INSEE je veux installer le package sur AUS sans problème
ETQ Agent INSEE je veux installer le package sur AUS sans problème
Validation
-
Je valide que le package {conj.region} s'installe avec ses dépendances et sans message d'erreur du type "had non-zero exit status" ou "statut de sortie non-nul" ou "aucun package nommé ‘conj.region’ n'est trouvé" en lançant le code suivant dans AUS:
if (!requireNamespace("remotes")) install.packages("remotes")
# Nettoyage avant installation
{
suppressMessages(try(
utils::remove.packages(pkgs = c("websocket", "conj.region")),
silent = TRUE
))
}
# Install deps
# No Remotes ----
# Attachments ----
to_install <- c("bookdown", "dplyr", "flextable", "fs", "ggplot2", "knitr", "pagedown", "rmarkdown", "rstudioapi", "stringr", "testthat", "tidyr", "withr")
for (i in to_install) {
message(paste("looking for ", i))
if (!requireNamespace(i)) {
message(paste(" installing", i))
install.packages(i)
}
}
# Install package
install.packages("conj.region", repos = c(
"https://nexus.insee.fr/repository/r-local",
getOption("repos")),
type = "source"
)
# Test installation
library(conj.region)
Comment Technique
ETQ Agent INSEE je veux installer le package sur AUS sans problème. C'est à dire sans avoir a gérer les erreurs liées à l'installation des dépendances.
Le problème était que si on fait un
install.packages(
"conj.region",
repos = c(
"https://nexus.insee.fr/repository/r-local",
getOption("repos")
),
type = "source",
dependencies = TRUE
)
Toutes les dépendances même celles déjà installées sont réinstallés depuis les sources.
Or le package {websocket}
a besoin d'un accès internet pour compiler les librairies C++ incluses.
Il est donc nécessaire d'installer les dépendances en tant que binairea windows et le package depuis la source .tar.gz
La stratégie adoptée est de :
- Télécharger le .tar.gz du package dans un dossier temporaire
- Installer les dépendances au format binaire windows avec
remotes::install_deps()
- Installer le package depuis le .tar.gz
Edited by Marc Henninger