MCP HubMCP Hub
스킬 목록으로 돌아가기

manage-renv-dependencies

pjt222
업데이트됨 2 days ago
7 조회
17
2
17
GitHub에서 보기
기타apiautomation

정보

이 Claude Skill은 renv를 사용하여 재현 가능한 환경을 생성함으로써 R 패키지 의존성을 관리합니다. 초기화, 스냅샷/복원 워크플로우, 일반적인 문제 해결, 그리고 CI/CD 통합을 처리합니다. 새로운 R 프로젝트 설정, 패키지 추가/업데이트, 새 머신에서 환경 복원, 또는 CI/CD 파이프라인과 renv 통합 시에 사용하세요.

빠른 설치

Claude Code

추천
기본
npx skills add pjt222/agent-almanac -a claude-code
플러그인 명령대체
/plugin add https://github.com/pjt222/agent-almanac
Git 클론대체
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/manage-renv-dependencies

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서


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 .Rprofile um 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.lock ist in die Versionskontrolle committet
  • renv::restore() funktioniert bei einem sauberen Checkout
  • .Rprofile aktiviert renv bedingt
  • CI/CD verwendet renv.lock fuer die Abhaengigkeitsaufloesung

Haeufige Stolperfallen

  • renv::init() im falschen Verzeichnis ausfuehren: Immer zuerst getwd() 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 --vanilla ueberspringt .Rprofile, sodass renv nicht aktiviert wird
  • Grosse Lock-Dateien in Diffs: Normal -- renv.lock ist als diffbares JSON konzipiert
  • Bioconductor-Pakete: renv::install("bioc::PackageName") verwenden und sicherstellen dass BiocManager konfiguriert ist

Verwandte Skills

  • create-r-package -- beinhaltet renv-Initialisierung
  • setup-github-actions-ci -- CI-Integration mit renv
  • submit-to-cran -- Abhaengigkeitsverwaltung fuer CRAN-Pakete

GitHub 저장소

pjt222/agent-almanac
경로: i18n/de/skills/manage-renv-dependencies
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

연관 스킬

llamaguard

기타

LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.

스킬 보기

cost-optimization

기타

이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.

스킬 보기

quantizing-models-bitsandbytes

기타

이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.

스킬 보기

dispatching-parallel-agents

기타

이 Claude Skill은 3개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.

스킬 보기