닉스 쉘 : 고립 된 환경으로 개발 워크 플로를 간소화하십시오
다른 프로젝트에서 상충되는 소프트웨어 버전을 저글링하는 데 지쳤습니까? 닉스 쉘은 강력한 솔루션을 제공합니다! 이 도구를 사용하면 특정 프로젝트의 요구에 맞게 조정 된 고립 된 개발 환경을 만들어 매끄럽고 충돌이없는 워크 플로를 보장합니다.
이러한 고립 된 환경은 프로젝트 간의 간섭을 방지하여 소프트웨어 버전이 충돌 할 때 종종 실망스러운 "종속성 지옥"을 제거합니다. Nix-Shell은 환경 생성 및 전환을 단순화하여 다양한 컴퓨터에서 일관된 설정을 보장하고 팀 협업 효율성을 높입니다.
이 안내서는 Linux에서 Nix-Shell을 사용하여 격리 된 개발 환경을 만들고 관리하는 단계별 연습을 제공합니다.
목차
NIX는 의존성 관리에 대한 기능적이고 선언적인 접근 방식을 사용하는 강력한 패키지 관리자이며 빌드 시스템입니다. 기능적 프로그래밍 패러다임 내에서 패키지를 값으로 취급합니다.
Nix 패키지 관리자와 함께 번들로 제공되는 명령 줄 도구 인 Nix-Shell은 Nix 표현식을 활용하여 고립 된 개발 환경을 생성합니다. 이러한 환경은 주어진 프로젝트에 필요한 모든 도구, 라이브러리 및 종속성을 캡슐화합니다.
닉스 쉘은 각각 의존성을 독립적으로 구축하고 간섭을 방지함으로써 "의존성 지옥"을 근절하고 개발 및 생산 환경에서 의존성에 대한 세분화 된 제어를 제공합니다. 이 격리 및 재현성은 다양한 시스템에서 일관된 설정을 보장하고 원활한 개발자 협업을 용이하게합니다.
닉스 쉘은 프로젝트 종속성을 관리하여 갈등의 재현 가능한 환경을 생성하여 충돌을 방지합니다.
먼저 프로젝트의 종속성을 정의하는 닉스 표현식을 만듭니다. 이것은 일반적으로 프로젝트의 루트 디렉토리에있는 default.nix
또는 shell.nix
라는 파일입니다.
샘플 프로젝트를 만들어 봅시다, myproject
:
$ mkdir myproject $ cd myproject $ nano shell.nix
shell.nix
에 다음을 추가하십시오.
{pkgs? 수입<nixpkgs> {}} : pkgs.mkshell { buildInputs = [ pkgs.python38 pkgs.nodejs pkgs.ruby ]; }</nixpkgs>
이것은 Python 3.8, node.js 및 Ruby의 환경을 정의합니다. 이 디렉토리에서 nix-shell
실행하면이 디렉토리를 분리하여 설치합니다.
보다 간결한 버전 :
{pkgs? 수입<nixpkgs> {}} : pkgs.mkshell {buildInputs = with pkgs.buildPackages; [Python38 Nodejs Ruby]; }</nixpkgs>
파일을 저장하고 닫습니다.
빠르고 임시 환경
임시 환경의 경우
nix-shell -p package1 package2 ...
사용하십시오. 예를 들어:Nix -Shell -p python39packages.numpy python39packages.scipy로그인 후 복사
다음을 사용하여 고립 된 환경을 입력하십시오.
$ nix-shell
또는
$ nix-shell shell.nix
최대 분리를 위해 --pure
사용하십시오.
$ nix-shell--pure shell.nix
지정된 종속성으로 쉘 세션이 생성됩니다.
닉스 쉘 환경 내에서 개발 도구를 평소와 같이 사용하십시오. 분리 된 환경은 호스트 시스템에 관계없이 일관된 종속성을 보장합니다.
설치된 버전 확인 :
[nix -shell : ~/myProject] $ python -v [nix -shell : ~/myProject] $ node -v [nix -shell : ~/myProject] $ Ruby -v
exit
또는 CTRL D
. 종료하면 임시 환경이 제거되어 시스템에 영향을 미치지 않고 쉘 설정을 이전 상태로 되돌립니다. 프로젝트 파일은 변경되지 않았습니다. NIX 상점에서 사용되지 않은 패키지는 쓰레기 수집 ( nix-collect-garbage -d
)을 통해 제거 할 수 있습니다.
Q : 닉스 쉘은 무엇입니까? A : 특정 소프트웨어 패키지를 갖춘 임시 고립 된 쉘 환경을 만드는 명령 줄 도구.
Q : 어떻게 설치합니까? A : Nix 패키지 관리자의 일부입니다. 닉스를 먼저 설치하십시오.
Q : 고립 된 환경을 만드는 방법은 무엇입니까? A : 종속성을 지정하는 shell.nix
파일을 사용하거나 Ad-Hoc 환경에 nix-shell -p ...
사용하십시오.
Q : 어떤 OS를 지원합니까? A : 대부분의 유닉스와 같은 시스템 (Linux, MacOS); Windows 사용자는 WSL을 사용할 수 있습니다.
Q : 출구에서 어떻게됩니까? A : 환경이 제거됩니다. 쉘 설정은 되돌립니다. 프로젝트 파일은 남아 있습니다.
Q : "의존성 지옥"을 어떻게 피합니까? A : NIX의 기능적 접근 방식은 고립 된 패키지 빌드를 보장하여 충돌을 방지합니다.
Q : 환경 상태를 저장할 수 있습니까? A : shell.nix
파일은 재현 가능합니다. 보다 복잡한 시나리오의 경우 Nix의 패키지 및 구성 기능을 탐색하십시오.
Q : 패키지를 추가/제거하려면 어떻게해야합니까? A : shell.nix
파일의 buildInputs
목록을 수정하거나 -p
플래그를 조정하십시오.
Q : 쓰레기 수집을 어떻게 수행합니까? A : nix-collect-garbage -d
사용하십시오.
Nix-Shell은 고립 된 프로젝트 작업 공간을 제공하여 개발을 간소화합니다. 이는 충돌을 방지하고 기계의 일관된 환경을 보장하여 종속성 관리보다는 코딩에 집중할 수 있습니다.
자원:
관련 기사 :
위 내용은 Linux에서 Nix-Shell을 사용하여 개발 환경을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!