TL;DR
- Linux 호스트에서 R 에이전트 하네스를 실행할 때 bubblewrap은 선택한 서비스와 디렉터리만 허용하는 비특권 샌드박싱을 제공해 전체 Docker 컨테이너의 경량 대안이 됨.
--unshare-all로 격리한 뒤--share-net으로 네트워크를 공유하고, 필요한 디렉터리만 읽기 전용 또는 쓰기 가능으로 연결하는 구성임.- Debian·Ubuntu에서 R을 사용하려면
/etc/alternatives,/etc/R, 컴파일러 설정에 따라~/.R/Makevars를 추가로 연결해야 함. - 이 방식으로 에이전트가 R을 사용해 패키지 소스와 빌드를 확인하고 버그를 분류할 수 있으며, ollama 기반 로컬 모델과 클라우드 서비스 모두에 적용 가능함.
- Docker와 r2u는 R 패키지 의존성 설치를 간편하게 하는 유용한 선택지이며, bubblewrap은 기존 소프트웨어 스택을 활용하는 낮은 위험도의 실행 방식을 제공함.
bubblewrap을 이용한 R 샌드박싱
- bubblewrap은 Linux 호스트에서 비특권 샌드박싱을 제공하는 경량 도구로, 에이전트 하네스에 적합하며 전체 Docker 컨테이너를 대체할 수 있는 선택지임.
unshare-all로 기본적으로 모든 것을 차단하고, 필요한 서비스와 디렉터리만 선택적으로 허용하는 방식임.- 주 워크스테이션에서 기존에 설치된 소프트웨어 스택을 활용하면서 비교적 낮은 위험도로 실행 환경을 구성할 수 있음.
- Docker도 계속 유용하며, r2u를 사용하면 R 패키지 의존성을 간편하게 설치할 수 있음. ‘easy, fast, reliable: pick all three’라는 r2u의 문구에 부합하는 경험임.
- bubblewrap은 예를 들어 debian-inference 사이트에 기록된
opencode실행에 적합한 선택지임.
R 실행을 위한 추가 디렉터리
- R을 실행할 때는 기본 예시에 다음 경로를 추가해야 함.
/etc/alternatives: Debian·Ubuntu 시스템에서 LAPACK·BLAS 해석을 관리하는 경로임./etc/R: R 설정 파일이 있는 경로임.~/.R/Makevars: 컴파일러 설정이 필요한 경우 연결하는 경로임./etc/alternatives경로는 debian-inference 사이트에 현재 문서화되어 있음.- 현재 래퍼는
/usr를 읽기 전용으로 연결하고/bin,/lib,/lib64를 해당usr경로에 연결함. /etc/ssl,/etc/resolv.conf,~/.gitconfig,/etc/R,/etc/alternatives,~/.R/Makevars는 읽기 전용으로 연결하며,opencode의 설정·캐시·데이터 경로는 쓰기 가능하게 연결함./proc와/dev를 제공하고/tmp는 임시 파일 시스템으로 구성함. 현재 작업 디렉터리를 쓰기 가능하게 연결한 뒤 해당 경로에서 실행함.- 네트워크를 공유하고 부모 프로세스 종료 시 샌드박스도 종료하도록 설정한 뒤
/usr/local/bin/opencode를 실행 인자로 호출하는 구성임. - 래퍼에서 참조하는 문서 URL: https://inference.debian.net/doc
R 에이전트와 모델에서의 활용
- 이 구성으로 실행한 에이전트는 R을 사용해 패키지 소스와 빌드를 확인하고 버그를 분류할 수 있음.
- ollama로 제공되는 로컬 모델과 여러 클라우드 기반 서비스 모두에서 같은 방식으로 활용 가능함.
- 본문은 Dirk Eddelbuettel의 Thinking inside the box 블로그에 실린 R4 시리즈 60번째 글임.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요