manage-renv-dependencies
Über
Diese Claude-Skill verwaltet R-Paketabhängigkeiten mit renv, um reproduzierbare Umgebungen zu erstellen. Sie behandelt Initialisierung, Snapshot/Wiederherstellungs-Workflows, Fehlerbehebung bei häufigen Problemen und CI/CD-Integration. Nutzen Sie sie beim Einrichten neuer R-Projekte, beim Hinzufügen/Aktualisieren von Paketen, beim Wiederherstellen von Umgebungen auf neuen Rechnern oder bei der Integration von renv in CI/CD-Pipelines.
Schnellinstallation
Claude Code
Empfohlennpx 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-dependenciesKopieren Sie diesen Befehl und fügen Sie ihn in Claude Code ein, um diese Fähigkeit zu installieren
Dokumentation
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
GitHub Repository
Verwandte Skills
llamaguard
AndereLlamaGuard ist Metas 7-8B-Parameter-Modell zur Moderation von LLM-Eingaben und -Ausgaben in sechs Sicherheitskategorien wie Gewalt und Hassrede. Es bietet eine Genauigkeit von 94-95 % und kann mit vLLM, Hugging Face oder Amazon SageMaker eingesetzt werden. Nutzen Sie diese Skill, um Inhaltsfilterung und Sicherheitsguardrails einfach in Ihre KI-Anwendungen zu integrieren.
cost-optimization
AndereDiese Claude Skill unterstützt Entwickler bei der Optimierung von Cloud-Kosten durch Ressourcen-Dimensionierung, Tagging-Strategien und Ausgabenanalysen. Sie bietet einen Rahmen zur Senkung von Cloud-Ausgaben und zur Implementierung von Kosten-Governance für AWS, Azure und GCP. Nutzen Sie sie, wenn Sie Infrastrukturkosten analysieren, Ressourcen richtig dimensionieren oder Budgetvorgaben einhalten müssen.
quantizing-models-bitsandbytes
AndereDiese Fähigkeit quantisiert LLMs auf 8-Bit- oder 4-Bit-Präzision mittels bitsandbytes und erreicht dabei eine Speicherreduzierung von 50–75 % bei minimalem Genauigkeitsverlust. Sie ist ideal für den Betrieb größerer Modelle mit begrenztem GPU-Speicher oder zur Beschleunigung von Inferenzvorgängen und unterstützt Formate wie INT8, NF4 und FP4. Die Fähigkeit integriert sich in HuggingFace Transformers und ermöglicht QLoRA-Training sowie 8-Bit-Optimierer.
dispatching-parallel-agents
AndereDiese Claude-Fähigkeit verteilt mehrere Agenten, um drei oder mehr unabhängige Probleme gleichzeitig zu untersuchen und zu beheben. Sie ist für Szenarien konzipiert, die unabhängige Fehler umfassen, die ohne gemeinsamen Zustand oder Abhängigkeiten gelöst werden können. Die Kernfähigkeit ist die parallele Problemlösung, bei der pro unabhängigem Problembereich ein Agent zugewiesen wird, um die Effizienz zu maximieren.
