목차
닉스 쉘은 무엇입니까?
닉스 쉘 사용의 이점
닉스 쉘로 개발 환경을 만들고 관리합니다
닉스 표현식으로 종속성을 정의합니다
빠르고 임시 환경
닉스 쉘에 액세스
닉스 쉘 내에서 작동합니다
닉스 쉘을 빠져 나갑니다
자주 묻는 질문 (FAQ)
결론
시스템 튜토리얼 리눅스 Linux에서 Nix-Shell을 사용하여 개발 환경을 만드는 방법

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

Mar 19, 2025 am 10:11 AM

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

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

이러한 고립 된 환경은 프로젝트 간의 간섭을 방지하여 소프트웨어 버전이 충돌 할 때 종종 실망스러운 "종속성 지옥"을 제거합니다. 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으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

가장 잘 사용되는 Linux는 무엇입니까? 가장 잘 사용되는 Linux는 무엇입니까? Apr 03, 2025 am 12:11 AM

Linux는 서버 관리, 임베디드 시스템 및 데스크탑 환경으로 사용되는 것이 가장 좋습니다. 1) 서버 관리에서 Linux는 웹 사이트, 데이터베이스 및 응용 프로그램을 호스팅하는 데 사용되어 안정성과 안정성을 제공합니다. 2) 임베디드 시스템에서 Linux는 유연성과 안정성으로 인해 스마트 홈 및 자동차 전자 시스템에서 널리 사용됩니다. 3) 데스크탑 환경에서 Linux는 풍부한 응용 프로그램과 효율적인 성능을 제공합니다.

Linux의 5 가지 기본 구성 요소는 무엇입니까? Linux의 5 가지 기본 구성 요소는 무엇입니까? Apr 06, 2025 am 12:05 AM

Linux의 5 가지 기본 구성 요소는 다음과 같습니다. 1. 커널, 하드웨어 리소스 관리; 2. 기능과 서비스를 제공하는 시스템 라이브러리; 3. 쉘, 사용자가 시스템과 상호 작용할 수있는 인터페이스; 4. 파일 시스템, 데이터 저장 및 구성; 5. 시스템 리소스를 사용하여 기능을 구현합니다.

기본 리눅스 관리 란 무엇입니까? 기본 리눅스 관리 란 무엇입니까? Apr 02, 2025 pm 02:09 PM

Linux 시스템 관리는 구성, 모니터링 및 유지 보수를 통해 시스템 안정성, 효율성 및 보안을 보장합니다. 1. TOP 및 SystemCTL과 같은 마스터 쉘 명령. 2. APT 또는 YUM을 사용하여 소프트웨어 패키지를 관리하십시오. 3. 효율성을 향상시키기 위해 자동 스크립트를 작성하십시오. 4. 권한 문제와 같은 일반적인 디버깅 오류. 5. 모니터링 도구를 통해 성능을 최적화하십시오.

Linux를 가장 많이 사용하는 것은 무엇입니까? Linux를 가장 많이 사용하는 것은 무엇입니까? Apr 09, 2025 am 12:02 AM

Linux는 서버, 임베디드 시스템 및 데스크탑 환경에서 널리 사용됩니다. 1) 서버 필드에서 Linux는 안정성 및 보안으로 인해 웹 사이트, 데이터베이스 및 응용 프로그램을 호스팅하기에 이상적인 선택이되었습니다. 2) 임베디드 시스템에서 Linux는 높은 사용자 정의 및 효율성으로 인기가 있습니다. 3) 데스크탑 환경에서 Linux는 다양한 사용자의 요구를 충족시키기 위해 다양한 데스크탑 환경을 제공합니다.

Linux 기본 사항을 배우는 방법? Linux 기본 사항을 배우는 방법? Apr 10, 2025 am 09:32 AM

기본 Linux 학습 방법은 다음과 같습니다. 1. 파일 시스템 및 명령 줄 인터페이스 이해, 2. LS, CD, MKDIR, 3. 파일 생성 및 편집과 같은 파일 작업 배우기, 4. 파이프 라인 및 GREP 명령과 같은 고급 사용법, 5. 연습 및 탐색을 통해 지속적으로 기술을 향상시킵니다.

Linux는 얼마입니까? Linux는 얼마입니까? Apr 04, 2025 am 12:01 AM

LinuxisFundamentallyFree, "FreeAsinFreedom"을 구현하는 "FreeAsInfreedom"을 구현하고, 연구, 공유 및 modifythesoftware. 그러나, 비용 mayarisefromprofessionalsupport, CommercialDisplegions, ProprietaryHardwaredrivers, andLearningResources.despiteSepoten

Linux 장치 란 무엇입니까? Linux 장치 란 무엇입니까? Apr 05, 2025 am 12:04 AM

Linux 장치는 서버, 개인용 컴퓨터, 스마트 폰 및 임베디드 시스템을 포함한 Linux 운영 체제를 실행하는 하드웨어 장치입니다. 그들은 Linux의 힘을 활용하여 웹 사이트 호스팅 및 빅 데이터 분석과 같은 다양한 작업을 수행합니다.

리눅스의 단점은 무엇입니까? 리눅스의 단점은 무엇입니까? Apr 08, 2025 am 12:01 AM

Linux의 단점에는 사용자 경험, 소프트웨어 호환성, 하드웨어 지원 및 학습 곡선이 포함됩니다. 1. 사용자 경험은 Windows 또는 MacOS만큼 친절하지 않으며 명령 줄 인터페이스에 의존합니다. 2. 소프트웨어 호환성은 다른 시스템만큼 좋지 않으며 많은 상용 소프트웨어의 기본 버전이 부족합니다. 3. 하드웨어 지원은 Windows만큼 포괄적이지 않으며 드라이버를 수동으로 컴파일 할 수 있습니다. 4. 학습 곡선은 가파르고 명령 줄 운영을 마스터하는 데 시간과 인내가 필요합니다.

See all articles