manage-renv-dependencies
À propos
Cette compétence Claude gère les dépendances des packages R en utilisant renv pour créer des environnements reproductibles. Elle prend en charge l'initialisation, les workflows de capture/restauration, le dépannage des problèmes courants et l'intégration CI/CD. Utilisez-la lors de la configuration de nouveaux projets R, de l'ajout/mise à jour de packages, de la restauration d'environnements sur de nouvelles machines, ou de l'intégration de renv avec des pipelines CI/CD.
Installation rapide
Claude Code
Recommandénpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/manage-renv-dependenciesCopiez et collez cette commande dans Claude Code pour installer cette compétence
Documentation
name: manage-renv-dependencies locale: de source_locale: en source_commit: 6f65f316 translator: claude translation_date: "2026-03-17" description: > R-Paketabhaengigkeiten mit renv fuer reproduzierbare Umgebungen verwalten. Behandelt Initialisierung, Snapshot/Restore-Workflow, Fehlersuche bei haeufigen Problemen und CI/CD-Integration. Anwenden bei der Initialisierung der Abhaengigkeitsverwaltung fuer ein neues R-Projekt, beim Hinzufuegen oder Aktualisieren von Paketen, beim Wiederherstellen einer Umgebung auf einem neuen Rechner, bei der Fehlersuche bei Wiederherstellungsfehlern oder bei der Integration von renv mit CI/CD-Pipelines. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: r-packages complexity: intermediate language: R tags: r, renv, dependencies, reproducibility, lockfile
renv-Abhaengigkeiten verwalten
Reproduzierbare R-Paketumgebungen mit renv einrichten und pflegen.
Wann verwenden
- Initialisierung der Abhaengigkeitsverwaltung fuer ein neues R-Projekt
- Hinzufuegen oder Aktualisieren von Paketabhaengigkeiten
- Wiederherstellen einer Projektumgebung auf einem neuen Rechner
- Fehlersuche bei renv-Wiederherstellungsfehlern
- Integration von renv mit CI/CD-Pipelines
Eingaben
- Erforderlich: R-Projektverzeichnis
- Optional: Vorhandene
renv.lock-Datei (fuer Wiederherstellung) - Optional: GitHub PAT fuer private Pakete
Vorgehensweise
Schritt 1: renv initialisieren
renv::init()
Dies erstellt:
renv/-Verzeichnis (Bibliothek, Einstellungen, Aktivierungsskript)renv.lock(Abhaengigkeits-Snapshot)- Aktualisiert
.Rprofileum renv beim Laden zu aktivieren
Erwartet: Projektlokale Bibliothek erstellt. renv/-Verzeichnis und renv.lock vorhanden. .Rprofile mit Aktivierungsskript aktualisiert.
Bei Fehler: Wenn es haengt, die Netzwerkverbindung pruefen. Wenn es bei einem bestimmten Paket fehlschlaegt, dieses Paket zuerst manuell mit install.packages() installieren und dann renv::init() erneut ausfuehren.
Schritt 2: Abhaengigkeiten hinzufuegen
Pakete wie gewohnt installieren:
install.packages("dplyr")
renv::install("github-user/private-pkg")
Dann einen Snapshot erstellen um den Zustand festzuhalten:
renv::snapshot()
Erwartet: renv.lock mit neuen Paketen und deren Versionen aktualisiert. renv::status() zeigt keine nicht-synchronisierten Pakete.
Bei Fehler: Wenn renv::snapshot() Validierungsfehler meldet, renv::dependencies() ausfuehren um zu pruefen welche Pakete tatsaechlich verwendet werden, dann renv::snapshot(force = TRUE) um die Validierung zu umgehen.
Schritt 3: Auf einem anderen Rechner wiederherstellen
renv::restore()
Erwartet: Alle Pakete in den exakten Versionen aus renv.lock installiert.
Bei Fehler: Haeufige Probleme: GitHub-Pakete schlagen fehl (GITHUB_PAT in .Renviron setzen), Systemabhaengigkeiten fehlen (unter Linux mit apt-get installieren), Timeouts bei grossen Paketen (options(timeout = 600) vor der Wiederherstellung setzen) oder Binaerpakete nicht verfuegbar (renv kompiliert aus Quellcode; sicherstellen dass Build-Werkzeuge installiert sind).
Schritt 4: Abhaengigkeiten aktualisieren
# Ein bestimmtes Paket aktualisieren
renv::update("dplyr")
# Alle Pakete aktualisieren
renv::update()
# Snapshot nach Aktualisierungen
renv::snapshot()
Erwartet: Zielpakete auf ihre neuesten kompatiblen Versionen aktualisiert. renv.lock spiegelt nach dem Snapshot die neuen Versionen wider.
Bei Fehler: Wenn renv::update() fuer ein bestimmtes Paket fehlschlaegt, es direkt mit renv::install("package@version") installieren und dann einen Snapshot erstellen.
Schritt 5: Status pruefen
renv::status()
Erwartet: "No issues found" oder eine klare Liste nicht-synchronisierter Pakete mit umsetzbaren Hinweisen.
Bei Fehler: Wenn der Status Pakete meldet die verwendet aber nicht erfasst sind, renv::snapshot() ausfuehren. Wenn Pakete erfasst aber nicht installiert sind, renv::restore() ausfuehren.
Schritt 6: .Rprofile fuer bedingte Aktivierung konfigurieren
if (file.exists("renv/activate.R")) {
source("renv/activate.R")
}
Dies stellt sicher dass das Projekt auch funktioniert wenn renv nicht installiert ist (CI-Umgebungen, Mitarbeiter).
Erwartet: R-Sitzungen aktivieren renv automatisch beim Start im Projektverzeichnis. Sitzungen ohne installiertes renv starten weiterhin fehlerfrei.
Bei Fehler: Wenn .Rprofile Fehler verursacht, sicherstellen dass die file.exists()-Pruefung vorhanden ist. Nie source("renv/activate.R") bedingungslos aufrufen.
Schritt 7: Git-Konfiguration
Diese Dateien versionieren:
renv.lock # Immer committen
renv/activate.R # Immer committen
renv/settings.json # Immer committen
.Rprofile # Committen (enthaelt renv-Aktivierung)
Diese ignorieren (bereits in renvs .gitignore):
renv/library/ # Maschinenspezifisch
renv/staging/ # Temporaer
renv/cache/ # Maschinenspezifischer Cache
Erwartet: renv.lock, renv/activate.R und renv/settings.json werden von Git versioniert. Maschinenspezifische Verzeichnisse (renv/library/, renv/cache/) werden ignoriert.
Bei Fehler: Wenn renv/library/ versehentlich committet wurde, mit git rm -r --cached renv/library/ entfernen und zu .gitignore hinzufuegen.
Schritt 8: CI/CD-Integration
In GitHub Actions die renv-Cache-Action verwenden:
- uses: r-lib/actions/setup-renv@v2
Dies stellt automatisch aus renv.lock mit Caching wieder her.
Erwartet: CI-Pipeline stellt Pakete aus renv.lock mit aktiviertem Caching wieder her. Nachfolgende Durchlaeufe sind durch gecachte Pakete schneller.
Bei Fehler: Wenn die CI-Wiederherstellung fehlschlaegt, pruefen dass renv.lock committet und aktuell ist. Fuer private GitHub-Pakete sicherstellen dass GITHUB_PAT als Repository-Secret gesetzt ist.
Validierung
-
renv::status()meldet keine Probleme -
renv.lockist in die Versionskontrolle committet -
renv::restore()funktioniert bei einem sauberen Checkout -
.Rprofileaktiviert renv bedingt - CI/CD verwendet
renv.lockfuer die Abhaengigkeitsaufloesung
Haeufige Stolperfallen
renv::init()im falschen Verzeichnis ausfuehren: Immer zuerstgetwd()verifizieren- renv und Systembibliothek mischen: Nach
renv::init()nur die Projektbibliothek verwenden - Snapshot vergessen: Nach der Installation von Paketen immer
renv::snapshot()ausfuehren --vanilla-Flag:Rscript --vanillaueberspringt.Rprofile, sodass renv nicht aktiviert wird- Grosse Lock-Dateien in Diffs: Normal --
renv.lockist als diffbares JSON konzipiert - Bioconductor-Pakete:
renv::install("bioc::PackageName")verwenden und sicherstellen dass BiocManager konfiguriert ist
Verwandte Skills
create-r-package-- beinhaltet renv-Initialisierungsetup-github-actions-ci-- CI-Integration mit renvsubmit-to-cran-- Abhaengigkeitsverwaltung fuer CRAN-Pakete
Dépôt GitHub
Compétences associées
llamaguard
AutreLlamaGuard est le modèle de Meta, doté de 7 à 8 milliards de paramètres, conçu pour modérer les entrées et sorties des LLM selon six catégories de sécurité comme la violence et les discours haineux. Il offre une précision de 94 à 95 % et peut être déployé avec vLLM, Hugging Face ou Amazon SageMaker. Utilisez cette compétence pour intégrer facilement le filtrage de contenu et des garde-fous de sécurité dans vos applications d'IA.
cost-optimization
AutreCette compétence de Claude aide les développeurs à optimiser les coûts du cloud grâce au redimensionnement des ressources, aux stratégies d'étiquetage et à l'analyse des dépenses. Elle fournit un cadre pour réduire les dépenses cloud et mettre en œuvre une gouvernance des coûts sur AWS, Azure et GCP. Utilisez-la lorsque vous devez analyser les coûts d'infrastructure, redimensionner les ressources ou respecter des contraintes budgétaires.
quantizing-models-bitsandbytes
AutreCette compétence quantifie les LLMs en précision 8 bits ou 4 bits à l'aide de bitsandbytes, permettant une réduction de 50 à 75 % de la mémoire utilisée avec une perte de précision minime. Elle est idéale pour exécuter des modèles plus volumineux sur une mémoire GPU limitée ou pour accélérer l'inférence, prenant en charge des formats comme INT8, NF4 et FP4. La compétence s'intègre à HuggingFace Transformers et permet l'entraînement QLoRA ainsi que l'utilisation d'optimiseurs en 8 bits.
dispatching-parallel-agents
AutreCette compétence Claude déploie plusieurs agents pour enquêter et résoudre simultanément 3 problèmes indépendants ou plus. Elle est conçue pour des scénarios impliquant des défaillances non liées qui peuvent être résolues sans état partagé ni dépendances. La capacité fondamentale est la résolution de problèmes en parallèle, en assignant un agent par domaine problématique indépendant afin de maximiser l'efficacité.
