![Guix용 nix-shell과 동일한 도구가 있나요?](https://linux55.com/image/183630/Guix%EC%9A%A9%20nix-shell%EA%B3%BC%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%EB%8F%84%EA%B5%AC%EA%B0%80%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
매뉴얼 페이지에서는 다음과 같이 nix-shell
설명합니다.
Nix는 nix-shell 명령을 통해 일종의 가상 환경을 제공하는 데 사용될 수 있습니다.
Python 개발자가 일반적으로 Python 패키지에 대한 가상 환경을 생성한 다음 활성화하는 것과 마찬가지로 nix-shell
이는 사용자가 가상 셸 환경을 다운로드하고 활성화할 수 있는 도구인 Nix 패키지 관리자에서 사용 가능한 모든 패키지에 대한 가상 환경을 생성하는 데 사용할 수 있습니다. , 사용자나 시스템 환경을 오염시키지 않고 특정 소프트웨어를 개발하는 데 필요한 패키지가 포함되어 있습니다.
제 질문은: nix-shell
Guix 패키지 관리자에 상응하는 도구가 있습니까?
답변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 guix
direnv의 사용자 정의 기능입니다.간략한 기록.