Guix용 nix-shell과 동일한 도구가 있나요?

Guix용 nix-shell과 동일한 도구가 있나요?

매뉴얼 페이지에서는 다음과 같이 nix-shell설명합니다.

Nix는 nix-shell 명령을 통해 일종의 가상 환경을 제공하는 데 사용될 수 있습니다.

Python 개발자가 일반적으로 Python 패키지에 대한 가상 환경을 생성한 다음 활성화하는 것과 마찬가지로 nix-shell이는 사용자가 가상 ​​셸 환경을 다운로드하고 활성화할 수 있는 도구인 Nix 패키지 관리자에서 사용 가능한 모든 패키지에 대한 가상 환경을 생성하는 데 사용할 수 있습니다. , 사용자나 시스템 환경을 오염시키지 않고 특정 소프트웨어를 개발하는 데 필요한 패키지가 포함되어 있습니다.

제 질문은: nix-shellGuix 패키지 관리자에 상응하는 도구가 있습니까?

답변1

가지다guix shell지금.

$ guix shell hello

hello패키지가 설치된 새로운 환경을 제공합니다 . 이는 "드롭인" 대체품입니다 guix environment --ad-hoc.

더 원한다면종속성( 예 를 들어 hello개발을 시작하려면) 필요한 것은 다음과 같습니다.

$ guix shell -D hello

답변2

나는 당신이 찾고 있다고 생각합니다 guix environment --ad-hoc. 예를 들어:

guix environment --ad-hoc python python-pandas

그러면 Python과 Pandas가 설치된 임시 Guix 구성 파일이 생성되지만 Guix의 다른 패키지도 설치됩니다. 특히 Python의 경우 이를 포함하여 python이를 알 수 있도록 해야 합니다 python-pandas. 위의 내용은 현재 사용자 및 시스템 프로필의 기존 환경 변수 및 패키지에 계속 액세스할 수 있는 임시 프로필을 제공합니다.

보다 격리된(따라서 재현 가능한) 환경을 위해 다음을 --pure사용하여 기존 환경 변수, 사용자 프로필 및 시스템 프로필을 숨길 수 있습니다.

guix environment --pure --ad-hoc [packages]

완전히 컨테이너화된 격리를 위해 파일 시스템 및 네트워크 액세스를 제한할 수 있습니다.

guix environment --container --ad-hoc [packages]

마지막 두 옵션에서는 더 많은 기본 패키지를 명시적으로 지정해야 합니다. 즉, coreutils더 많은 노력이 필요하지만 재현성은 더 높습니다.

바라보다GUIX 환경 호출더 알아보기.

direnv또한 저는 다양한 프로젝트에 대해 이러한 구성 파일과 기타 환경 변수를 자동으로 활성화/비활성화하는 프로그램을 사용합니다 . .envrc다음과 같이 프로젝트에 대한 파일을 만듭니다 .

use guix --ad-hoc python python-matplotlib python-html5lib python-mypy python-flake8
source ~/.virtualenvs/base-django-py38/bin/activate
export DJANGO_SETTINGS_MODULE=project.settings.dev

이것은 use guixdirenv의 사용자 정의 기능입니다.간략한 기록.

관련 정보