> 시스템 튜토리얼 > 리눅스 > Linux에서 Nix-Shell을 사용하여 개발 환경을 만드는 방법

Linux에서 Nix-Shell을 사용하여 개발 환경을 만드는 방법

Jennifer Aniston
풀어 주다: 2025-03-19 10:11:08
원래의
626명이 탐색했습니다.

닉스 쉘 : 고립 된 환경으로 개발 워크 플로를 간소화하십시오

다른 프로젝트에서 상충되는 소프트웨어 버전을 저글링하는 데 지쳤습니까? 닉스 쉘은 강력한 솔루션을 제공합니다! 이 도구를 사용하면 특정 프로젝트의 요구에 맞게 조정 된 고립 된 개발 환경을 만들어 매끄럽고 충돌이없는 워크 플로를 보장합니다.

이러한 고립 된 환경은 프로젝트 간의 간섭을 방지하여 소프트웨어 버전이 충돌 할 때 종종 실망스러운 "종속성 지옥"을 제거합니다. Nix-Shell은 환경 생성 및 전환을 단순화하여 다양한 컴퓨터에서 일관된 설정을 보장하고 팀 협업 효율성을 높입니다.

이 안내서는 Linux에서 Nix-Shell을 사용하여 격리 된 개발 환경을 만들고 관리하는 단계별 연습을 제공합니다.

목차

  • 닉스 쉘 사용의 이점
  • 닉스 쉘로 개발 환경을 만들고 관리합니다
    • 닉스 표현식으로 종속성을 정의합니다
      • 빠르고 임시 환경
    • 닉스 쉘에 액세스
    • 닉스 쉘 내에서 작동합니다
    • 닉스 쉘을 빠져 나갑니다
  • 자주 묻는 질문 (FAQ)
  • 결론

닉스 쉘은 무엇입니까?

NIX는 의존성 관리에 대한 기능적이고 선언적인 접근 방식을 사용하는 강력한 패키지 관리자이며 빌드 시스템입니다. 기능적 프로그래밍 패러다임 내에서 패키지를 값으로 취급합니다.

Nix 패키지 관리자와 함께 번들로 제공되는 명령 줄 도구 인 Nix-Shell은 Nix 표현식을 활용하여 고립 된 개발 환경을 생성합니다. 이러한 환경은 주어진 프로젝트에 필요한 모든 도구, 라이브러리 및 종속성을 캡슐화합니다.

닉스 쉘은 각각 의존성을 독립적으로 구축하고 간섭을 방지함으로써 "의존성 지옥"을 근절하고 개발 및 생산 환경에서 의존성에 대한 세분화 된 제어를 제공합니다. 이 격리 및 재현성은 다양한 시스템에서 일관된 설정을 보장하고 원활한 개발자 협업을 용이하게합니다.

닉스 쉘 사용의 이점

  • 격리 : 각 닉스 쉘 환경은 시스템 및 기타 환경에서 분리되어 의존성 충돌을 방지합니다.
  • 재현성 : 환경은 코드로 정의되어 NIX를 실행하는 모든 시스템에서 일관된 재생산을 보장합니다.
  • 원자 업그레이드 및 롤백 : 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 
로그인 후 복사

Linux에서 Nix-Shell을 사용하여 개발 환경을 만드는 방법

닉스 쉘을 빠져 나갑니다

exit 또는 CTRL D . 종료하면 임시 환경이 제거되어 시스템에 영향을 미치지 않고 쉘 설정을 이전 상태로 되돌립니다. 프로젝트 파일은 변경되지 않았습니다. NIX 상점에서 사용되지 않은 패키지는 쓰레기 수집 ( nix-collect-garbage -d )을 통해 제거 할 수 있습니다.

자주 묻는 질문 (FAQ)

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에서 Conda를 사용하여 Nodejs 가상 환경을 만듭니다
  • Linux에서 Conda를 사용하여 Rust Virtual Environment를 만듭니다
  • Linux에서 Conda를 사용하여 Golang 가상 환경을 만듭니다
  • PIP를 사용하여 Python 패키지를 관리하는 방법
  • PIPX - 고립 된 환경에서 Python 애플리케이션을 설치하고 실행합니다.
  • PIPENV - 공식적으로 권장되는 파이썬 포장 도구

위 내용은 Linux에서 Nix-Shell을 사용하여 개발 환경을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿