> 시스템 튜토리얼 > 리눅스 > Nix 패키지 관리자로 시작하기 : 초보자 가이드 2024

Nix 패키지 관리자로 시작하기 : 초보자 가이드 2024

Joseph Gordon-Levitt
풀어 주다: 2025-03-19 09:06:21
원래의
311명이 탐색했습니다.

이 자세한 자습서는 Linux의 Nix 패키지 관리자를 사용하여 패키지 설치, 제거, 업데이트 및 업그레이드와 같은 패키지 관리 작업을 수행하는 방법을 설명합니다.

우리는 간단한 소개와 함께이 안내서를 시작하고 예제가있는 일반적으로 사용되는 닉스 명령이 이어집니다.

목차

Nix 패키지 관리자에 대한 간단한 소개

Nix 는 Linux 및 UNIX 시스템에 소프트웨어를 쉽고 신뢰할 수있는 패키지 관리자입니다. 소프트웨어 충돌과 같은 일반적인 문제를 해결하고 모든 소프트웨어 설치가 예측 가능하고 안전한 지 확인합니다.

Nix를 사용하면 컴퓨터에 서로 다른 버전의 프로그램을 가질 수 있습니다. 즉, 어떤 것도 깨는 것에 대해 걱정하지 않고 소프트웨어를 업데이트, 추가 또는 제거 할 수 있습니다.

Nix는 소프트웨어를 처리하는 방법에 대해 현명합니다. 각 프로그램이 실행 해야하는 모든 비트와 조각을 추적합니다. 이렇게하면 프로그램을 설치할 때 다른 프로그램을 엉망으로 만들지 않습니다. 새로운 소프트웨어 업데이트로 문제가 발생하면 Nix를 사용하면 이전의 방식으로 쉽게 돌아갈 수 있습니다.

NIX 패키지 관리자는 개별 사용자뿐만 아니라 개발자와 서버 관리자에게도 좋습니다. 모두 동일한 소프트웨어 설정을 사용하여 모든 사람을 같은 페이지에 유지하는 데 도움이됩니다. 이렇게하면 소프트웨어를 한 컴퓨터에서 다른 컴퓨터로 이동할 때 놀라움이 줄어 듭니다.

Nix는 선택할 수있는 큰 소프트웨어 모음을 보유하고 있으며 모두 사용자 커뮤니티가 유지 관리합니다. 혼자 일하든 팀과 함께 소프트웨어를 관리하기위한 확실한 선택입니다.

Nix에 대한 자세한 내용은 이전 안내서를 참조하십시오.

  • NIX - Linux 및 Unix의 강력한 패키지 관리자

Nix 패키지 관리자로 시작합니다

Nix 패키지 관리자를 설치했는지 확인하십시오. Nix를 아직 설치하지 않은 경우 아래에 주어진 Nix 설치 안내서를 참조하십시오.

  • Linux에 Nix 패키지 관리자를 설치하는 방법

Nix 패키지 관리자가 설정되면이를 사용하여 응용 프로그램을 즉시 설치하고 관리 할 수 ​​있습니다.

닉스에는 많은 명령이 있습니다. 패키지 관리의 주요 명령은 Nix-Env 입니다. 이 명령은 나열, 설치, 업데이트, 롤백, 제거, 쿼리 패키지에 사용됩니다. 예제와 함께 몇 가지 명령을 보자.

: 경우, 이미 알지 못하는 경우 NIX를 사용하여 모든 패키지 관리 작업을 수행하기 위해 루트 또는 SUDO 사용자 일 필요는 없습니다.

닉스 채널 작업

NIX 채널은 NIX 패키지 관리자 생태계에서 중요한 역할을합니다.

NIXPKGS 저장소에는 모든 패키지, NIXOS 모듈 및 표현식이 포함되어 있습니다. NIXPKGS의 마스터 브랜치에서 직접 패키지를 설치할 수는 있지만, 철저한 테스트 전에 커밋이 마스터로 병합되어 있기 때문에이 접근법은 위험 할 수 있습니다.

채널은 Nixpkgs에서 최신 "검증 된" git 커밋을 나타냅니다. 각 채널에는 "검증 된"의 의미에 대한 고유 한 정의가 있습니다.

새 GIT 커밋이 확인되면 해당 채널이 업데이트됩니다. 채널 사용자는 바이너리 캐시의 검증 된 커밋과 이진 패키지 모두의 혜택을받습니다.

이것을 간단한 단어로 말하면 Nix 채널은 닉스 표현 세트와 매니페스트를 포함하는 장소를 가리키는 URL 일뿐입니다.

채널 유형

몇 가지 채널이 있으며 크고 작은 채널 뿐만 아니라 안정적 이고 불안정한 채널 로 광범위하게 분류 할 수 있습니다.

안정/불안정 :

  • 안정적인 채널 : 버그 수정 및 보안 취약점에 대한 보수적 인 업데이트를 제공합니다. 초기 릴리스 후에 주요 업데이트는 소개되지 않습니다. 새로운 안정 채널은 6 개월마다 출시됩니다.
  • 불안정한 채널 : NIXPKGS의 주요 개발 지점 (불안정한)에 해당하는 이들은 최신 테스트 된 업데이트를 롤링 기준으로 제공합니다.

크고 작은 것 :

  • 대형 채널 : 이들은 NIXPKG의 전체 폭에 대한 이진 빌드를 제공합니다.
  • 작은 채널 : 대형 채널과 비슷하지만 바이너리가 적습니다. 더 빨리 업데이트하지만 더 많은 건물이 소스에서 필요합니다.

기본 채널

기본적으로 NIXPKGS 채널은 NIX를 설치할 때 "구독"채널 목록에 자동으로 추가됩니다.

구독 채널을 봅니다

가입 채널 목록은 ~/.nix-channels 파일에 저장됩니다. 내용을 보면 확인할 수 있습니다.

 $ cat ~/.nix 채널
https://nixos.org/channels/nixpkgs-unstable <strong>nixpkgs</strong>
로그인 후 복사

보시다시피, Nix는 기본적으로 nixpkgs 채널을 추가했습니다.

채널을 추가하십시오

아래와 같이 시스템에 수동으로 채널을 추가 할 수도 있습니다.

 $ nix-channel-add https://nixos.org/channels/nixos-23.11
로그인 후 복사

공식 채널은 https://nixos.org/channels 에 나열되어 있습니다.

채널 업데이트

채널 구독 (추가) 후 채널 목록을 업데이트하여 명령을 사용하여 사용 가능한 최신 NIX 표현식을 얻으십시오.

 $ nix 채널-업데이트
로그인 후 복사
로그인 후 복사
로그인 후 복사

이 명령은 모든 채널을 업데이트합니다. 특정 채널 (nixos-23.11)을 업데이트하려면 다음과 같습니다.

 $ nix 채널 -Update nixos-23.11
로그인 후 복사

목록 채널

표준 출력에서 ​​모든 가입 채널의 이름과 URL을 인쇄하려면 실행하십시오.

 $ nix-channel-list
로그인 후 복사

샘플 출력 :

 <strong>nixpkgs</strong> https://nixos.org/channels/nixpkgs-unstable
<strong>닉스</strong> https://nixos.org/channels/nixos-23.11
로그인 후 복사

아시다시피, 이제 나는 nixpkgs-unstablenixos-23.11 의 두 채널을 추가했습니다. nixpkgs와 nixos는 nixpkgs-unstable 및 nixos-23.11의 별칭 일뿐입니다.

채널을 제거하십시오

구독 채널을 제거하려면 NIXOS-23.11 과 같이 실행하십시오.

 $ nix-channel-remove nixos-23.11
로그인 후 복사

채널을 제거한 후 명령을 사용하여 채널 목록을 업데이트합니다.

 $ nix 채널-업데이트
로그인 후 복사
로그인 후 복사
로그인 후 복사

검색/쿼리 패키지

nix-env-Query 명령은 닉스 패키지 관리자의 패키지에 대한 정보를 제공합니다.

목적 :

Nix-env -Query 작업에는 중 하나에 대한 정보가 표시됩니다.

  • 활성 프로파일의 현재 세대에 설치된 경로 (-설치).
  • 활성 닉스 표현식 (-available)에 설치할 수있는 파생물.

상징적 이름이 지정된 이름 중 하나와 일치하는 파생에 대한 정보 만 인쇄합니다.

깃발 및 옵션 :

Nix-env -Query 명령을 사용할 수있는 일반적인 플래그 및 옵션은 다음과 같습니다.

  • -설치 : 설치된 매장 경로에 대한 정보를 표시합니다 (기본 동작).
  • --ailable 또는 -a : 설치 가능한 파생에 대한 정보가 표시됩니다.
  • -status 또는 -s : 파생 상태를 인쇄합니다 (시스템에 설치, 존재, 사용 가능한 대체).
  • --attr-path 또는 -p : 파생의 속성 경로를 인쇄합니다 (명백한 선택에 사용).
  • -no-name : 파생 이름의 인쇄를 억제합니다.
  • -컴포지션 버전 또는 -C : 설치된 버전을 사용 가능한 버전과 비교합니다.
  • -XML : 인쇄는 자동화 된 처리를 위해 XML 형식을 인쇄합니다.
  • --json : 인쇄는 자동화 된 처리를 위해 JSON 형식으로 인쇄합니다.
  • -준비 전용 또는 -B : 등록 된 대체물 (사전 제작 된 이진)에 대한 파생물 만 표시합니다.
  • -시스템 : 시스템 전체 프로필에서 작동합니다.
  • -drv-path , -out-path , -description , --meta : 추가 정보 플래그.

구독 채널에서 사용 가능한 패키지 목록을 보려면 실행하십시오.

 $ nix-env-Query-available
로그인 후 복사

또는 곧 :

 $ nix -env -qa
로그인 후 복사

여기서 -Q 옵션은 쿼리 작동을 나타내고 -a는 사용 가능한 모든 (즉, 설치 가능) 패키지를 나타냅니다.

샘플 출력 :

 0AD-0.0.26
0AD-DATA-0.0.26
0verkill-unstable-2011-01-13
0x-unstable-2022-07-11
0xproto-1.603
0xtools-1.2.4
1OOM-1.0
1Password-8.10.27
1Password-8.10.28-21. 베타
1Password-Cli-2.26.1
2048-Cli-unstable-2019-12-10
2048-Cli-unstable-2019-12-10
2048 터미널-unstable-2022-06-13
20kly-1.5.0
2BWM-0.3
2FA-1.2.0
3270font-3.0.1
389-DS-Base-2.4.3
3dpong-0.5
3llo-1.3.1
3MUX-1.1.0
3proxy-0.9.4
4th-3.64.1
[...]
로그인 후 복사

Nix 패키지 관리자로 시작하기 : 초보자 가이드 2024

특정 패키지를 쿼리하려면 명령이 다음과 같습니다.

 $ nix -env -qa firefox
로그인 후 복사

산출:

 Firefox-115.9.1esr
Firefox-124.0.1
Firefox-124.0.1
Firefox-124.0.1
Firefox-125.0B3
Firefox-125.0B3
로그인 후 복사

다음 명령을 사용하여 특정 패키지를 검색 할 수도 있습니다.

 $ nix -env -qap | Grep Python3-3
로그인 후 복사

샘플 출력 :

 [...]
nixpkgs.python312 python3-3.12.2
nixpkgs.python313 python3-3.13.0a5
nixpkgs.python313 풀일 python3-3.13.0a5
nixpkgs.python39 python3-3.9.19
nixpkgs.python39 풀린 python3-3.9.19
로그인 후 복사

정규 표현식을 사용한 쿼리 패키지

정규 표현식을 사용하여 패키지를 쿼리/목록 할 수 있습니다. 다음은 정규 표현의 몇 가지 예입니다.

크롬

패키지 이름 Chromium 및 모든 버전과 일치합니다.

크롬 -123.0.6312.86

패키지 이름 Chromium 및 버전 123.0.6312.86과 일치합니다.

예:

 $ nix-env -qa 크롬 -123.0.6312.86
로그인 후 복사

gtk \\

패키지 이름 gtk 와 일치합니다. 캐릭터는 백 슬래시를 사용하여 수량 자로 해석되는 것을 방지해야하며, 쉘이 그것을 통과하도록 보장하기 위해 다른 백 슬래시와 함께 뒤 슬래시를 탈출해야합니다.

. \*

패키지 이름과 일치합니다. 이것은 대부분의 명령의 기본값입니다.

'.*지퍼.*'

문자열 지퍼가 포함 된 모든 패키지 이름과 일치합니다. DOTS를 참고하십시오. '*Zip*'는 작동하지 않습니다. 정규 표현식에서 문자*는 정량 자로 해석되므로.

'.*(Firefox | Chromium).*'

Strings Firefox 또는 Chromium 이 포함 된 모든 패키지 이름과 일치합니다.

설치된 패키지 목록

설치된 모든 패키지를 나열하려면 간단히 실행하십시오.

 $ nix -env -q
로그인 후 복사

샘플 출력 :

 닉스 -2.21.1
로그인 후 복사

새로운 시스템이므로 시스템에는 NIX 패키지 관리자 만 표시됩니다.

사용 가능한 패키지의 상태를 볼 수도 있습니다. 아래 예를보십시오.

 $ nix -env -qas gcc
로그인 후 복사

샘플 출력 :

 IPS GCC-13.2.0
로그인 후 복사

여기서 "i"는 지정된 패키지가 설치되었음을 나타냅니다. "P"는 패키지가 시스템에 존재한다는 것을 나타내며, "S"는 패키지에 대한 소위 대체물이 있음을 나타냅니다.

GCC 패키지가 설치되지 않은 경우 다음을 볼 수 있습니다.

 -PS GCC-13.2.0
로그인 후 복사

패키지 설치

닉스에서는 모든 패키지가 닉스 스토어 (일반적으로 디렉토리 /닉스 /스토어) 에 저장됩니다.

패키지를 설치하려면 그냥 실행하십시오.

 $ nix-env-설치 GCC
로그인 후 복사

또는 (곧),

 $ nix -env -i gcc
로그인 후 복사

위의 명령은 최신 사용 가능한 GCC 패키지를 설치합니다.

위 명령의 샘플 출력은 다음과 같습니다.

 'GCC-13.2.0'설치
이 3 가지 경로는 가져올 것입니다 (1.58 MIB 다운로드, 7.24 MIB 포장 풀기) :
  /nix/store/3cfxjb2nkjkfiv0dq54kkfy5ysjnfs3k-gcc-13.2.0-cecksum
  /nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc-13.2-info
  /nix/store/smq6f1jz9a5l6l5yjis4s85mq01xww33-23.2.0-man
'https : //cache.nixos.org'에서 '/nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc-13.2.info'...
'/nix/store/smq6f1jzz9a5l6l5yjis4s85mq01xww33-gcc-13.2.0-man'에서 'https : //cache.nixos.org'...
복사 경로 '/nix/store/3cfxjb2nkjkfiv0dq54kkfy5ysjnfs3k-gcc-13.2.0-checksum'에서 'https : //cache.nixos.org'...
'/nix/store/xx629d9kbbdnnyf4ihzhlmalfz6nm3g-user-environment.drv'...
로그인 후 복사

GCC가 설치되어 있는지 또는 명령을 사용하지 않는지 확인하십시오.

 $ gcc -v
로그인 후 복사

샘플 출력 :

 내장 사양을 사용합니다.
Collect_GCC = GCC
collect_lto_wrapper =<strong><mark> /nix/store/rqga421d43q40blrrgmiw820p01a4nba-gcc-13.2.0</mark> /libexec/gcc/x86_64-unknown-linux-gnu/13.2.0/lto-wrapper
대상 : x86_64-unknown-linux-gnu
Configured with: ../gcc-13.2.0/configure --prefix=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gcc-13.2.0 --with-gmp-include=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0-dev/include --with-gmp-lib=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0/lib --with-mpfr-include=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpfr-4.2.1-dev/include --with-mpfr-lib=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpfr-4.2.1/lib --with-mpc=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libmpc-1.3.1 --with-native-system-header-dir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.38-44-dev/include --with-build-sysroot=/ --with-gxx-include-dir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gcc-13.2.0/include/c /13.2.0/ --program-prefix = --enable-lto-disable-libstdcxx-pch-without-included-gettext-with-system-zlib-enable-static-enable-languages ​​= c, c-disable-multilib-enable-plugin-disable-libccc1 --with-isl=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-isl-0.20 --disable-bootstrap --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu
스레드 모델 : posix
지원되는 LTO 압축 알고리즘 : Zlib
<strong>GCC 버전 13.2.0 (GCC)</strong></strong>
로그인 후 복사

위의 출력에서 ​​알 수 있듯이 GCC는 RQGA421D43Q40BLRRGMIW820P01A4NBA-GCC-13.2.0 이라는 하위 디렉토리에 있습니다.

여기서는 디렉토리 RQGA421D43Q40BLRRGMIW820P01A4NBA-GCC-13.2.0을 고유 식별자로 호출합니다. 이 하위 디렉토리는 GCC 패키지의 필요한 모든 종속성 및 라이브러리를 보유합니다.

다른 버전의 GCC를 설치하면 NIX는 새 하위 지시 사항 (예 : /nix/store/rfhfyuq ......43d8jfuh-gcc-xxx와 같은 새로운 하위 디렉토리를 생성하고 해당 디렉토리에 GCC를 설치합니다. 이런 식 으로이 두 버전의 GCC는 서로 충돌하지 않습니다.

Nix를 사용하지 않고 패키지를 테스트합니다

NIX 패키지 관리자의 또 다른 주목할만한 기능은 패키지를 시스템에 설치하지 않고도 테스트 할 수 있다는 것입니다. 패키지를 설치하지 않고 테스트하는 방법을 알아 보려면 다음 안내서를 참조하십시오.

  • Linux에서 패키지를 설치하지 않고 테스트하는 방법

닉스 쉘로 개발 환경을 만듭니다

Nix-Shell을 사용하면 각 프로젝트에 대한 맞춤형 개발 환경을 만들 수 있으며 필요한 모든 도구 및 라이브러리가 완성됩니다. Nix 패키지 관리자의 일부입니다.

재현 가능하고 고립 된 개발 환경을 만드는 방법을 배우려면 다음 안내서를 참조하십시오.

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

업그레이드 패키지

패키지를 다음 사용 가능한 버전으로 업그레이드하려면 다음과 같이 실행하십시오.

 $ nix-env-업그레이드 vim
로그인 후 복사

또는, 그냥 :

 $ nix -env -u vim
로그인 후 복사

위의 명령은 "최신"버전이있는 경우 VIM 패키지 만 업그레이드합니다.

또한 다음 명령을 실행하여 설치된 모든 패키지를 한 번에 업그레이드 할 수 있습니다.

 $ nix -env -u
로그인 후 복사

닉스를 업데이트하십시오

다음 지침은 특히 NIXOS 사용자를위한 것입니다.

닉스 채널을 업데이트하십시오

먼저, 최신 패키지 정의를 갖도록 채널을 업데이트하십시오. 다음 명령 으로이 작업을 수행 할 수 있습니다.

 $ nix 채널-업데이트
로그인 후 복사
로그인 후 복사
로그인 후 복사

이 명령은 시스템 패키지 및 구성 정의를 포함하는 Nixos 채널을 포함하여 구독 한 모든 채널을 업데이트합니다.

업데이트 적용

채널이 업데이트되면 시스템에 업데이트를 적용합니다. 이는 채널의 최신 패키지를 사용하여 시스템 구성을 재구성하여 수행됩니다. 그렇게하려면 실행 :

 $ sudo nixos-rebuild switch
로그인 후 복사

Nixos-Rebuild Switch 명령은 채널의 최신 패키지를 사용하여 구성 파일 (/etc/nixos/configuration.nix)을 기반으로 시스템 구성을 재구성합니다. 재건 후 즉시 새 구성으로 전환됩니다.

추가 팁 :

  • 사용 가능한 업데이트 확인 : 다른 Linux 배포판에서와 같이 사용 가능한 업데이트를 확인하기위한 직접 NIXOS 명령이 없습니다. 그러나 업데이트는 채널 컨텐츠를 기반으로하기 때문에 Sudo Nix-Channel-Update를 실행하면 최신 정의가 있는지 확인합니다.
  • 업그레이드 특정 패키지 : Nix-Env에서 관리하는 특정 패키지를 업그레이드하려면 Nix-Env -u 또는 nix-env -u '*를 사용하여 모든 사용자 설치 패키지를 업데이트 할 수 있습니다.

NIXOS 업데이트는 일반적으로 선언적 구성과 NIX의 재현성 덕분에 매끄럽고 잘 테스트되었습니다. 항상 시스템 구성 파일이 원활한 업데이트 경험을 위해 최신 및 버전 제어인지 확인하십시오.

롤백 패키지

이것은 Nix 패키지 관리자의 환상적인 기능입니다. 패키지를 롤백하는 방법을보기 전에 프로필, 사용자 환경 및 세대가 무엇인지 이해해야합니다.

NIX에서 프로파일, 사용자 환경 및 세대는 안전하고 재현 가능한 방식으로 패키지 및 구성을 관리 할 수있는 관련 개념입니다.

프로필

프로필은 특정 목적 또는 사용자를위한 패키지 및 구성 모음입니다. 프로파일을 사용하면 여러 사용자가 서로 영향을 미치지 않고 사용자 정의 설정을 가질 수 있습니다. 다양한 환경이나 응용 프로그램 세트를 효과적으로 관리하는 다른 프로파일을 전환 할 수 있습니다.

프로파일의 두 가지 주요 유형이 있습니다.

  • 사용자 프로파일 : 각 사용자 계정에는/nix/var/nix/profiles/user/$ user에 위치한 자체 프로필이 있습니다. 이 프로파일에는 사용자가 개인 용도로 설치 한 패키지가 포함되어 있습니다.
  • 시스템 프로파일 : 시스템 전체 프로파일은/nix/var/nix/profiles/system에 있습니다. 일반적으로 시스템 관리자가 관리하는 시스템에서 전 세계적으로 사용할 수있는 패키지가 포함되어 있습니다.

사용자 환경

사용자 환경은 특정 패키지 세트 및 Nix Store (예 : /nix/store/3aw2pdyx2jfc...-user-env)에 설치된 종속성입니다.

Nix-Env를 사용하여 패키지를 설치, 업그레이드 또는 제거 할 때마다 생성됩니다. 사용자 환경은 기본적으로 자체적으로 포장되며 NIX 스토어에 고유 한 암호화 해시가 디렉토리 이름으로 저장됩니다.

사용자 환경은 Symlinks를 통해 사용자 프로파일에 연결되어 다른 사용자가 간섭없이 다른 구성을 가질 수 있습니다.

세대

세대는 특정 시점에서 사용자 환경 (설치 한 패키지 세트)의 스냅 샷입니다. Nix-Env를 사용하여 패키지를 설치, 업그레이드 또는 제거 할 때마다 새로운 세대가 생성됩니다.

각 세대는 고유 한 암호화 해시 이름 (예 : /nix/store/3aw2pdyx2jfc...-user-env)으로/nix/store 디렉토리에 저장됩니다. 이러한 생성 디렉토리를 가리키는/nix/var/nix/profiles (예 : 기본 -2 링크, 기본 -3- 링크)에 Symlinks가 있습니다.

세대의 주요 장점은 Nix-env-rollback 및 nix-env-스위치 생성 명령과 같은 명령을 사용하여 다른 패키지 구성을 쉽게 롤백하거나 전환 할 수 있다는 것입니다.

이것을 간단한 단어로 넣으려면 :

  • 프로파일은 사용자 또는 시스템을위한 패키지 및 구성 모음입니다.
  • 사용자 환경은 NIX 스토어에 저장된 특정 설치 패키지 세트입니다.
  • 세대는 패키지를 설치, 업그레이드 또는 제거 할 때마다 생성 된 사용자 환경의 스냅 샷으로 구성간에 쉽게 롤백과 전환이 가능합니다.

이 접근법은 시스템 신뢰성, 재현성 및 현재 설정을 위험에 빠뜨리지 않고 다른 패키지 구성으로 안전하게 실험 할 수있는 능력을 촉진합니다.

세대를 나열하는 방법

사용 가능한 세대 목록을 보려면 :

 $ nix-env-목록 생성
로그인 후 복사

이 명령에는 현재 프로필에 사용 가능한 모든 세대가 나와 있습니다. 출력은 생성 번호, NIX 스토어의 경로를 보여주고 현재 어떤 생성이 활성화되어 있는지 나타냅니다.

예제 출력 :

 1 2024-04-01 15:06:49   
   2 2024-04-01 15:17:14   
   3 2024-04-01 15:56:46 (현재)
로그인 후 복사

이전 세대에 대한 롤백

패키지를 설치했지만 유용하지 않거나 제대로 작동하지 않습니다. 동일한 패키지의 하위 버전이 필요합니다. 당신은 무엇을 하시겠습니까? 단순한. 명령을 사용하여 이전 작업 버전으로 롤백합니다.

 $ nix-env-롤백
로그인 후 복사

이 명령은 현재 사용자 환경을 이전 세대로 되돌립니다. 예를 들어, 현재 3 세대에 있고 Nix-Env-Rollback을 실행하는 경우 2 세대로 전환됩니다.

스위치 세대

명령을 사용하여 다른 세대간에 전환 할 수 있습니다.

 $ nix-env-스위치 생성 <no></no>
로그인 후 복사

이 명령을 사용하면 특정 세대로 전환 할 수 있습니다. 예를 들어, Nix-env-스위치 생성 2는 이전 세대가 아닌 경우에도 사용자 환경을 Generation 2로 전환합니다.

요약하면, 세대는 패키지 구성을 관리하고 롤백하는 방법을 제공합니다. -list-generations는 어떤 세대를 사용할 수 있는지 보여줍니다. nix-env-rollback 명령은 마지막 변경을 취소하는 편리한 방법이며-스위치 생성을 통해 특정 세대를 선택할 수 있습니다.

이 세대 관리 접근 방식은 현재 설정에 영향을 미치지 않고 잘못된 변경 사항을 쉽게 되돌리거나 새로운 구성을 테스트 할 수있어 시스템 신뢰성을 촉진합니다.

패키지 제거

Unstalla 패키지를 위해 실행 :

 $ nix -env -e gcc
로그인 후 복사

위의 명령은 시스템에서 GCC 라는 패키지를 제거합니다.

아래와 같이 여러 패키지를 제거 할 수 있습니다.

 $ nix -env -e gcc vim
로그인 후 복사

샘플 출력 :

 제거 'vim-9.1.0148'
'GCC-13.2.0'제거
건물 경로 '/nix/store/mxpikbq3l08379h8ik8mrj3fcw6mhy4- 사용자-환경' '
사용자 환경에서 6 개의 상징 링크를 만들었습니다
로그인 후 복사

사용하지 않은 패키지 제거 (Garbage Collection)

Nix에서는 Nix-Env를 사용하여 (-u) 또는 제거 (-e) 프로그램을 업데이트 할 때 시스템은 실제로 Nix Store (예 :/nix/store/directory)에서 이전 버전을 삭제하지 않습니다. 대신, 제거 된 프로그램에 대한 링크없이 프로필을 새로 설정합니다. 다시 말해, 프로필에서 심볼 링크 만 제거됩니다.

그러나 디스크 공간이 부족하지 않고도 새로운 프로그램을 계속 추가 할 수 없기 때문에 Nixos는 Garbage Collection 이라는 사용하지 않는 프로그램을 정리할 수있는 방법이 있습니다. 쓰레기 수집가는 프로필이나 버전 (세대)이 더 이상 필요하지 않은 프로그램을 제거합니다.

그러나 이전 버전의 설정에 여전히 프로그램이 필요한 경우 제거되지 않습니다. 이 기능은 필요한 경우 이전 설정으로 돌아갈 수있는 데 중요합니다.

쓰레기 수집가가 업무를 수행하도록 돕기 위해 더 이상 사용하지 않는 오래된 버전을 제거하는 것이 좋습니다. 당신이 할 수있는 방법은 다음과 같습니다.

프로필의 현재 버전을 제외한 모든 이전 버전을 삭제하십시오.

 $ nix-env-델리 세대 오래된
로그인 후 복사

예를 들어 버전 10, 11 및 14와 같이 더 이상 필요하지 않은 특정 버전을 제거하십시오.

 $ nix-env-Delete-Generations 10 11 14
로그인 후 복사

30 일이 넘는 버전 삭제 :

 $ nix-env-Delete-Generations 30d
로그인 후 복사

오래된 버전을 청소 한 후 쓰레기 수집기를 실행하여 사용하지 않은 프로그램을 제거하십시오.

 $ nix-store-gc
로그인 후 복사

실제로 실행하기 전에 쓰레기 수집가가 삭제할 파일을 확인할 수 있습니다.

 $ nix-store-gc --print-dead
로그인 후 복사

그리고 어떤 파일이 남아 있는지 확인하기 위해 :

 $ nix-store-gc --print-live
로그인 후 복사

Nix-Collect-Garbage 청소를위한 편리한 도구가 있으며, 모든 프로파일에서 모든 기존 버전을 한 번에 제거 할 수 있습니다. -d 옵션과 함께 사용하십시오.

 $ nix-collect-garbage -d
로그인 후 복사

이 명령은 오래된 버전을 제거한 다음 쓰레기 수집기를 실행하여 불필요한 프로그램을 정리함으로써 시스템을 정리하는 쉬운 방법입니다.

예제 출력 :

 쓰레기 수집가 뿌리 찾기 ...
쓰레기 삭제 ...
'/nix/store/s4jr4dc9gghldr3xza23rw0gm9kp21kl-nix-prefetch-scripts.drv'삭제
'/nix/store/km2gyzlvs9vkrr52wxfyhinv4r52ksrj-nix-prefetch-bzr.drv 삭제'삭제
'/nix/store/7mi73sdc1p349vmpb5nyxsrv8ayk5hly-bazaar-2.7.0.drv 삭제'삭제

[...]

'/nix/store/8ckmcs9hx1qm0yxdnv892vrvx49zm1sq-setup-hook-2.0.sh'삭제
'/nix/store/trash'삭제
사용하지 않은 링크 삭제 ...
참고 : 현재 하드 링크는 -0.00 MIB를 저장합니다
1447 매장 경로 삭제, 12.65 MIB Freed
로그인 후 복사

이것은 실제로 제거되지 않은 패키지를 제거합니다.

시스템에서 사용되지 않은 패키지를 제거하려면이 명령을 주기적으로 실행해야합니다.

닉스 명령 치트 시트

다음은 닉스 패키지 관리자 명령을위한 깔끔한 치트 시트입니다. 인쇄하고 책상 근처에 보관하여 쉽게 참조하십시오.

행동 명령
패키지를 설치하십시오 nix-env -i nix -env -i firefox
패키지 제거 nix-env -e Nix -env -e Firefox
패키지 검색 nix -env -qap Nix -env -qap 파이썬
업데이트 패키지 nix-env -u Nix -env -u Firefox
설치된 패키지 목록 닉스 엔브 -Q 닉스 엔브 -Q
롤백 변경 닉스-엔브-롤백 닉스-엔브-롤백
쓰레기 수집 Nix-Collect-Garbage -D Nix-Collect-Garbage -D
닉스 명령 치트 시트

이 치트 시트는 Nix로 패키지를 관리하는 데 사용할 기본 명령을 다루며 시스템 시작 및 유지 관리에 대한 간단한 가이드를 제공합니다.

자주 묻는 질문

다음은 Nix 패키지 관리자에 대한 가장 자주 묻는 질문 (FAQ)입니다.

Q : 닉스 란 무엇입니까?

A : NIX는 재현성, 신뢰성 및 이식성에 중점을 둔 Linux 및 UNIX 시스템의 강력한 패키지 관리자입니다. 이를 통해 사용자는 다양한 버전의 소프트웨어와 종속성을 쉽게 설치, 관리 및 전환 할 수 있습니다.

Q : Nix를 사용하여 패키지를 어떻게 설치합니까?

A : 패키지를 설치하려면 Nix -env -i 명령과 패키지 이름을 사용하십시오. 예를 들어, Nix -env -i Firefox는 Firefox 웹 브라우저를 설치합니다.

Q : 패키지를 어떻게 제거 할 수 있습니까?

A : 패키지를 제거하려면 Nix -Env -e 명령을 사용한 다음 패키지 이름을 사용하십시오. 예를 들어, Nix -env -e Thunderbird는 Thunderbird 이메일 클라이언트를 제거합니다.

Q : 사용 가능한 패키지를 어떻게 검색합니까?

A : 패키지를 검색하려면 nix -env -qap 을 사용하십시오. 예를 들어, Python과 관련된 패키지를 찾으려면 Nix -Env -Qap Python을 사용할 수 있습니다.

Q : 특정 패키지를 업데이트 할 수 있습니까?

A : 그렇습니다. 특정 패키지를 업데이트하려면 nix-env -u 을 실행하십시오. 설치된 모든 패키지를 업데이트하려면 Nix -Env -u를 사용하시기 만하면됩니다.

Q : 설치 한 패키지를 어떻게 알 수 있습니까?

A : 설치된 모든 패키지를 나열하려면 nix -env -Q 명령을 사용하십시오.

Q : 채널에서 사용 가능한 모든 패키지를 어떻게 나열 할 수 있습니까?

A : 채널에서 사용 가능한 모든 패키지를 나열하려면 Nix -Env -Qa를 실행하십시오.

Q : 이전 상태로 되돌리거나 "롤백"변경은 어떻게하나요?

A : Nix는 "세대"의 변화를 추적합니다. 이전 세대로 롤백하려면 nix-env-rollback을 사용하십시오. Nix-Env-목록 생성으로 사용 가능한 세대를 나열 할 수 있습니다.

Q : 닉스 시스템을 깨끗하게 유지하려면 어떻게해야합니까?

A : Nix-Collect-Garbage -D를 사용하여 사용되지 않은 패키지를 제거하고 공간을 확보하십시오. 이 명령은 프로필에서 참조되지 않은 패키지를 정리합니다.

결론

NIX 패키지 관리자는 Linux 및 UNIX 시스템에서 소프트웨어 패키지를 관리하는 강력하고 유연한 방법을 제공합니다.

패키지 처리에 대한 접근 방식은 충돌이나 종속성 문제없이 다양한 버전의 소프트웨어를 설치, 업데이트 및 전환 할 수 있도록합니다.

Nix는 특히 개념에 새로운 사람들에게는 약간의 학습 곡선을 가질 수 있지만 정확하고 재현 가능한 패키지 관리의 이점은 중요합니다.

개발자, 시스템 관리자이든 호기심 많은 사용자이든 NIX를 배우는 데 시간을 내면 소프트웨어 환경에 대한 제어를 크게 향상시키고 워크 플로우를 간소화 할 수 있습니다.

그게 다야. Nix 패키지 관리자의 기본 사용 에 대한 명확한 아이디어를 얻었 으면 좋겠습니다. 우리가 여기서 다룬 것은 닉스를 시작하기에 충분해야합니다.

물론 많은 명령이 있습니다. 더 많은 NIX 명령을 배우려면 아래에 제공된 NIX 공식 설명서를 참조하는 것이 좋습니다.

의지:

  • 닉스 매뉴얼

위 내용은 Nix 패키지 관리자로 시작하기 : 초보자 가이드 2024의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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